当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 29 篇帖子 ]  前往页数 1, 2  下一页
作者 内容
1 楼 
 文章标题 : GRUB2 for DOS/UEFI/ISO/PXE项目(winly)正式启动(含制作教程及源码)
帖子发表于 : 2013-05-21 9:52 

注册: 2010-10-29 18:27
帖子: 30
送出感谢: 0 次
接收感谢: 6
我启动这个项目,是因为越来越多的人开始转投向GRUB2,却不知道如何入手,
为了让更多的人了解和使用它,就摸索摸索吧。

关于winly项目的简介:
WinLy全称是Windows base Live Linux Installer 作者teasiu@163.com
1、WinLy是启动引导器。
WinLy使用开源世界的GRUB2启动软件来引导,GRUB2是非常优秀的一款启动软件。

2、WinLy是安全软件。
WinLy使用的代码是开源代码,仅以分享的精神制作,不存在任何商业目的。
Winly的工作原理是:通过您本身windows系统的启动加载器NTLDR或BOOTMGR加载,所以,不会妨碍也不会损坏您的windows正常启动。

3、WinLy是易用软件。
适用windowsNT系列,Win2000、WinXP、Win7/8均能安装并成功引导。

4、winly支持UEFI和传统的bios启动
无论你是旧式电脑主板还是新型电脑主板,winly均能助你无忧启动。

5、winly的可扩展性和代码公开
您可以自由修改和扩展任何代码,编辑成你喜欢的样子。

===================================================
原理说明:
一、bios主板的引导
1、磁盘引导
先引导winly.mbr(mbr引导) -->winlyldr(核心) -->winly.cfg(菜单)-风格包 -->启动系统

2、光驱引导
先引导winly.bin(iso引导含核心) -->winly.cfg(菜单)-风格包 -->启动系统

3、引导windows
通过命令ntlrd /ntldr引导windowsNT5,
通过命令ntlrd /bootmgr引导windowsNT6+,
通过命令chainloader device引导分区pbr

二、EFI主板的引导
1、32-bit引导文件
/EFI/boot/bootia32.efi(核心) -->winly.cfg(菜单)-风格包 -->启动系统
2、64-bit引导文件
/EFI/boot/bootx64.efi(核心) -->winly.cfg(菜单)-风格包 -->启动系统
3、引导windows
通过命令chainloader /EFI/microsoft/boot/bootmgfw.efi引导windows的启动文件

三、中文字体支持/风格/背景等
1、中文字体支持文件unicode.pf2
2、风格文件修改文档theme.txt
3、背景支持jpg,vga,png图片格式

四、菜单的编写(请搜索和提问)
示范
代码:
menuentry "【1】启动slitaz微型linux中文定制版"  --class slitaz --class os {
linux /boot/bzImage rw root=/dev/null vga=normal autologin
initrd /boot/rootfs.gz
}
menuentry "【2】启动bios主板的windowsPE系统" --class windows --class os {
ntldr /bootmgr
}
menuentry "【4】启动UEFI主板的32-bit PE系统(如果有)" --class windows --class os {
search --no-floppy --file --set=root /EFI/microsoft/boot/bootia32.efi
chainloader /EFI/microsoft/boot/bootia32.efi
}
menuentry "【5】启动UEFI主板的64-bit PE系统(如果有)" --class windows --class os {
search --no-floppy --file --set=root /EFI/microsoft/boot/bootx64.efi
chainloader /EFI/microsoft/boot/bootx64.efi
}
menuentry "【6】启动UEFI主板的windows系统(如果有)" --class windows --class os {
search --no-floppy --file --set=root /EFI/microsoft/boot/bootmgfw.efi
chainloader /EFI/microsoft/boot/bootmgfw.efi
}
menuentry "【7】启动已安装的其他linux引导(如果有)" --class gnu-linux --class os {
insmod gzio
insmod part_msdos
insmod ext2
insmod ntfs
insmod probe
search --no-floppy --file --set=root /vmlinuz
configfile ($root)/boot/grub/grub.cfg
}
menuentry "【reboot】重启" --class windows --class os{
   reboot
}
menuentry "【halt】关闭计算机" --class windows --class os{
   halt
}

======================================================

附件:
选区_004.png [5.27 KiB]
被下载 1185 次

附件:
选区_005.png
选区_005.png [ 16.56 KiB | 被浏览 37151 次 ]


附件:
选区_008.jpg
选区_008.jpg [ 69.57 KiB | 被浏览 37151 次 ]


附件:
选区_009.jpg
选区_009.jpg [ 64.98 KiB | 被浏览 37151 次 ]



下载和使用:
1、bios主版windows下直接安装:
附件:
WinLy4.4.zip [1.74 MiB]
被下载 1378 次

===========================

2、bios主板手动解包安装:
包含4个文件
1、内核文件 winlyldr
2、mbr引导文件 winlyldr.mbr
3、菜单文件winly.cfg
4、字体文件unicode.pf2
附件:
winlyldr.7z [1.09 MiB]
被下载 623 次


===========================
3、多重启动UEFI/DOS的光盘iso模版
http://burg4dos.googlecode.com/files/winly.iso.7z
附件:
选区_013.jpg
选区_013.jpg [ 117.62 KiB | 被浏览 37054 次 ]


===========================
4、UEFI主板手动解包到fat格式的磁盘或U盘根目录即可
已经包含了32位和64位的启动文件. 引导文件也可以更改名字如winlyx64.efi,然后自行编辑BSD进行引导。
附件:
EFI.7z [946.03 KiB]
被下载 1568 次

============================


制作教程及源码+脚本:

大家可能对如何制作更感兴趣,
是的,我为此编了一个简单的脚本,大家很容易就能亲自动手制作:

一、编译环境准备(仅在linux下)
1、如果你没有安装使用过linux,推荐你下载一个免安装完全运行于内存的微型linux--->GNU SliTaz linux
中文定制版下载地址:
http://code.google.com/p/linux-pe/downloads/list
安装环境依赖包:
代码:
wget http://burg4dos.googlecode.com/svn/trunk/makegrub2.tazpkg
wget http://download.tuxfamily.org/slitaz/packages/cooking/xz-dev-5.0.4.tazpkg
su 回车,输入root取得安装权限
tazpkg -i makegrub2.tazpkg
tazpkg -i xz-dev-5.0.4.tazpkg
tazpkg get-install automake
tazpkg get-install gettext


2、如果你已经有其他发行版linux,如UBUNTU,安装编译环境依赖包:
代码:
sudo apt-get install bison libopts25 libselinux1-dev autogen m4 autoconf help2man libopts25-dev flex libfont-freetype-perl automake autotools-dev libfreetype6-dev texinfo


二、下载我修改过的grub2.00源码
http://burg4dos.googlecode.com/svn/grub-2.00.tar.xz

三、将上面的源码和下面的脚本放在同一文件夹位置,运行下面的相应脚本,自动进行编译和生成成品
1、bios主板下的winlyldr
运行脚本方法:下载后解压,打开终端,输入 sh mkldr-all.sh
附件:
mkldr-all.sh.7z [1.17 KiB]
被下载 306 次

代码:
#!/bin/sh
export EFI_ARCH=i386-pc
allmods=" "
allmods=$allmods" acpi.mod"
allmods=$allmods" all_video.mod"
allmods=$allmods" ata.mod"
allmods=$allmods" blocklist.mod"
allmods=$allmods" boot.mod"
allmods=$allmods" bsd.mod"
allmods=$allmods" btrfs.mod"
allmods=$allmods" bufio.mod"
allmods=$allmods" cat.mod"
allmods=$allmods" chain.mod"
allmods=$allmods" cmp.mod"
allmods=$allmods" cpio_be.mod"
allmods=$allmods" configfile.mod"
allmods=$allmods" crypto.mod"
allmods=$allmods" cryptodisk.mod"
allmods=$allmods" cpuid.mod"
allmods=$allmods" crc64.mod"
allmods=$allmods" cs5536.mod"
allmods=$allmods" echo.mod"
allmods=$allmods" ext2.mod"
allmods=$allmods" fat.mod"
allmods=$allmods" font.mod"
allmods=$allmods" gettext.mod"
allmods=$allmods" gptsync.mod"
allmods=$allmods" gzio.mod"
allmods=$allmods" halt.mod"
allmods=$allmods" help.mod"
allmods=$allmods" hfs.mod"
allmods=$allmods" hfsplus.mod"
allmods=$allmods" iso9660.mod"
allmods=$allmods" jpeg.mod"
allmods=$allmods" jfs.mod"
allmods=$allmods" keylayouts.mod"
allmods=$allmods" keystatus.mod"
allmods=$allmods" linux.mod"
allmods=$allmods" linux16.mod"
allmods=$allmods" loadenv.mod"
allmods=$allmods" loopback.mod"
allmods=$allmods" ls.mod"
allmods=$allmods" lsmmap.mod"
allmods=$allmods" lspci.mod"
allmods=$allmods" lzopio.mod"
allmods=$allmods" minicmd.mod"
allmods=$allmods" mmap.mod"
allmods=$allmods" multiboot.mod"
allmods=$allmods" newc.mod"
allmods=$allmods" ntfscomp.mod"
allmods=$allmods" ntldr.mod"
allmods=$allmods" ohci.mod"
allmods=$allmods" pci.mod"
allmods=$allmods" part_apple.mod"
allmods=$allmods" part_bsd.mod"
allmods=$allmods" part_gpt.mod"
allmods=$allmods" part_msdos.mod"
allmods=$allmods" part_plan.mod"
allmods=$allmods" part_sun.mod"
allmods=$allmods" part_sunpc.mod"
allmods=$allmods" part_dvh.mod"
allmods=$allmods" parttool.mod"
allmods=$allmods" password.mod"
allmods=$allmods" password_pbkdf2.mod"
allmods=$allmods" pata.mod"
allmods=$allmods" play.mod"
allmods=$allmods" png.mod"
allmods=$allmods" probe.mod"
allmods=$allmods" pxe.mod"
allmods=$allmods" pxechain.mod"
allmods=$allmods" reboot.mod"
allmods=$allmods" romfs.mod"
allmods=$allmods" scsi.mod"
allmods=$allmods" search.mod"
allmods=$allmods" search_fs_file.mod"
allmods=$allmods" search_fs_uuid.mod"
allmods=$allmods" search_label.mod"
allmods=$allmods" sendkey.mod"
allmods=$allmods" sfs.mod"
allmods=$allmods" sleep.mod"
allmods=$allmods" tar.mod"
allmods=$allmods" terminal.mod"
allmods=$allmods" terminfo.mod"
allmods=$allmods" test.mod"
allmods=$allmods" true.mod"
allmods=$allmods" udf.mod"
allmods=$allmods" ufs1.mod"
allmods=$allmods" ufs2.mod"
allmods=$allmods" uhci.mod"
allmods=$allmods" usb.mod"
allmods=$allmods" usb_keyboard.mod"
allmods=$allmods" usbms.mod"
allmods=$allmods" vbe.mod"
allmods=$allmods" vga.mod"
allmods=$allmods" vga_text.mod"
allmods=$allmods" video.mod"
allmods=$allmods" video_bochs.mod"
allmods=$allmods" video_cirrus.mod"
allmods=$allmods" video_fb.mod"
allmods=$allmods" videoinfo.mod"
allmods=$allmods" xnu.mod"
allmods=$allmods" xnu_uuid.mod"
mkdir /tmp
cp grub-2.00.tar.xz /tmp
cd /tmp
xz -d grub-2.00.tar.xz
tar xvf grub-2.00.tar
cd grub-2.00
mkdir bin_pc
cd bin_pc
mkdir grub-core
#cp ../map.mod grub-core
cp ../grub.cfg grub-core
../configure --with-platform=pc --target=i386 --prefix=""
make
sleep 3
mkdir -p boot/grub/${EFI_ARCH}
mkdir -p boot/grub/locale
cp ../po/zh_CN.mo boot/grub/locale
cp ../font.pf2 boot/grub
cp ../grub.cfg boot/grub
cd grub-core
rm fs.lst
cp $allmods *.lst ../boot/grub/${EFI_ARCH}
cd ..
find boot | cpio -o -H newc > memdisk.cpio
mv memdisk.cpio grub-core
cd grub-core
../grub-mkimage -O i386-pc -d . -o i386-pc-core.img -m memdisk.cpio -v biosdisk newc blocklist fat iso9660 pxe reiserfs memdisk cpio minicmd part_msdos ext2 ntfs loopback gfxmenu gfxterm reboot normal
cat lnxboot.img i386-pc-core.img > winlyldr
cat cdboot.img i386-pc-core.img > winly.bin
mv winlyldr /tmp
mv winly.bin /tmp
rm memdisk.cpio
cd ..
make distclean
echo "winlyldr文件已经生成,在/tmp下"
echo "winly.bin文件已经生成,在/tmp下,制作可启动iso请继续"
mkdir -p /tmp/iso
cp -af /tmp/grub-2.00/winly /tmp/iso
cd /tmp
cp winly.bin iso
cd iso
mkisofs -R -J -no-emul-boot -boot-info-table -boot-load-size 4 -b winly.bin -o /tmp/winly.iso /tmp/iso
echo "winly.iso文件已经生成,在/tmp下"

2、bios主板可启动iso制作
同上
3、UEFI的32bit启动制作
附件:
mkia32efi.sh.7z [620 Bytes]
被下载 335 次

4、UEFI的64bit启动制作
附件:
mkx64efi.sh.7z [621 Bytes]
被下载 331 次

代码:
#!/bin/sh
export EFI_ARCH=x86_64
mkdir /tmp
cp grub-2.00.tar.xz /tmp
cd /tmp
xz -d grub-2.00.tar.xz
tar xvf grub-2.00.tar
cd grub-2.00
cp map.mod grub-core
mkdir bin_pc
cd bin_pc
../configure --with-platform=efi --target=${EFI_ARCH} --program-prefix="(memdisk)/boot/grub"
make
sleep 3
mkdir -p boot/grub/${EFI_ARCH}-efi
mkdir -p boot/grub/locale
#cp ../map.mod boot/grub/${EFI_ARCH}-efi
cp ../po/zh_CN.mo boot/grub/locale
cp ../font.pf2 boot/grub
cp ../grub.cfg boot/grub
cp grub-core/*.mod grub-core/*.lst boot/grub/${EFI_ARCH}-efi
rm boot/grub/${EFI_ARCH}-efi/normal.mod
rm boot/grub/${EFI_ARCH}-efi/newc.mod
rm boot/grub/${EFI_ARCH}-efi/memdisk.mod
rm boot/grub/${EFI_ARCH}-efi/cpio.mod
find boot | cpio -o -H newc > memdisk.cpio
mv memdisk.cpio grub-core
cd grub-core
../grub-mkimage -O ${EFI_ARCH}-efi -d . -o boot${EFI_ARCH}.efi -p "(memdisk)/boot/grub" -m memdisk.cpio -v newc memdisk cpio part_gpt part_msdos ntfs ntfscomp hfsplus fat ext2 normal chain boot configfile linux multiboot
mv boot${EFI_ARCH}.efi /tmp
rm memdisk.cpio
cd ..
make distclean
echo "boot${EFI_ARCH}.efi文件已经生成,在/tmp下"


最后由 teasiu 编辑于 2013-05-22 9:05,总共编辑了 3 次


_________________
评价: 7.41% pinfanshazhulao003
 
页首
 用户资料  
 
2 楼 
 文章标题 : Re: GRUB2 for DOS/UEFI/ISO/PXE项目(winly)正式启动(含制作教程及源码)
帖子发表于 : 2013-05-21 13:10 
头像

注册: 2006-12-15 9:32
帖子: 1249
系统: linux
送出感谢: 2
接收感谢: 14
很专业啊,支持,论坛里关于这方面的资料还是显得有点少


页首
 用户资料  
 
3 楼 
 文章标题 : Re: GRUB2 for DOS/UEFI/ISO/PXE项目(winly)正式启动(含制作教程及源码)
帖子发表于 : 2013-05-21 13:36 
头像

注册: 2011-06-07 14:20
帖子: 3866
系统: Mint18
送出感谢: 17
接收感谢: 65
支持,安装引导让很多新手畏难


_________________
wiki: ubuntu 技巧


页首
 用户资料  
 
4 楼 
 文章标题 : Re: GRUB2 for DOS/UEFI/ISO/PXE项目(winly)正式启动(含制作教程及源码)
帖子发表于 : 2013-05-21 14:23 
头像

注册: 2010-10-27 20:43
帖子: 371
送出感谢: 2
接收感谢: 15
欢迎神雕大侠光临。刚刚回帖时还说要网友们去无忧看看。
没想到这边已经置顶了。


_________________
牛是牛顿的牛 毛是朱毛的毛


页首
 用户资料  
 
5 楼 
 文章标题 : Re: GRUB2 for DOS/UEFI/ISO/PXE项目(winly)正式启动(含制作教程及源码)
帖子发表于 : 2013-05-29 9:02 

注册: 2010-10-29 18:27
帖子: 30
送出感谢: 0 次
接收感谢: 6
多系统引导实例,请参考:


http://bbs.wuyou.com/forum.php?mod=view ... tid=308169


页首
 用户资料  
 
6 楼 
 文章标题 : Re: GRUB2 for DOS/UEFI/ISO/PXE项目(winly)正式启动(含制作教程及源码)
帖子发表于 : 2013-05-29 11:53 
头像

注册: 2005-08-14 19:53
帖子: 4002
送出感谢: 1
接收感谢: 2
我用winly来启动arch,最近gummyboot无法引导archlinux。

但是winly在我这里不是宽屏,只是按照普屏显示在左边,右边有一部分黑的。

UEFI好处是主板就支持宽屏分辨率。我记得ubuntu的Grub2就可以全屏

还有如果能够想办法签名启用secure boot就好了。。。有个shim-signed不知道怎么自己签名。


页首
 用户资料  
 
7 楼 
 文章标题 : Re: GRUB2 for DOS/UEFI/ISO/PXE项目(winly)正式启动(含制作教程及源码)
帖子发表于 : 2013-05-29 16:06 

注册: 2010-10-29 18:27
帖子: 30
送出感谢: 0 次
接收感谢: 6
jarryson 写道:
我用winly来启动arch,最近gummyboot无法引导archlinux。

但是winly在我这里不是宽屏,只是按照普屏显示在左边,右边有一部分黑的。

UEFI好处是主板就支持宽屏分辨率。我记得ubuntu的Grub2就可以全屏

还有如果能够想办法签名启用secure boot就好了。。。有个shim-signed不知道怎么自己签名。

要支持自己的电脑宽频,就需要使用make install
认真看我的编译脚本,是没有make install的,所以,自己在当前电脑下编译一下,就搞定了。


页首
 用户资料  
 
8 楼 
 文章标题 : Re: GRUB2 for DOS/UEFI/ISO/PXE项目(winly)正式启动(含制作教程及源码)
帖子发表于 : 2013-05-29 16:26 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 274
grub当年想烧入flash,直接代替bios。
后来搞成2,搞得巨大复杂。。。


_________________
● 鸣学


页首
 用户资料  
 
9 楼 
 文章标题 : Re: GRUB2 for DOS/UEFI/ISO/PXE项目(winly)正式启动(含制作教程及源码)
帖子发表于 : 2013-05-29 16:37 

注册: 2010-10-29 18:27
帖子: 30
送出感谢: 0 次
接收感谢: 6
eexpress 写道:
grub当年想烧入flash,直接代替bios。
后来搞成2,搞得巨大复杂。。。

受教了。

再说点更多的消息,我等认真学习。


页首
 用户资料  
 
10 楼 
 文章标题 : Re: GRUB2 for DOS/UEFI/ISO/PXE项目(winly)正式启动(含制作教程及源码)
帖子发表于 : 2013-06-03 0:06 

注册: 2010-10-29 18:27
帖子: 30
送出感谢: 0 次
接收感谢: 6
不明白现在怎么都喜欢在win下使用esaybcd安装那个什么nerogrub引导。
感觉是一种退步的形式。

winly是将来修复启动引导的利器。


页首
 用户资料  
 
11 楼 
 文章标题 : Re: GRUB2 for DOS/UEFI/ISO/PXE项目(winly)正式启动(含制作教程及源码)
帖子发表于 : 2013-06-03 17:16 

注册: 2013-05-25 17:45
帖子: 1
系统: ubuntu13.04
送出感谢: 0 次
接收感谢: 0 次
顶啊!正要好好搞这个呢!另外回复楼上,我也搞不懂为什么有人用着win8,linux,苹果,却非要虚拟机装个xp。。


页首
 用户资料  
 
12 楼 
 文章标题 : Re: GRUB2 for DOS/UEFI/ISO/PXE项目(winly)正式启动(含制作教程及源码)
帖子发表于 : 2013-06-07 21:40 
头像

注册: 2009-03-05 16:31
帖子: 2794
送出感谢: 0 次
接收感谢: 11
eexpress 写道:
grub当年想烧入flash,直接代替bios。
后来搞成2,搞得巨大复杂。。。




_________________
http://adam8157.info/


页首
 用户资料  
 
13 楼 
 文章标题 : Re: GRUB2 for DOS/UEFI/ISO/PXE项目(winly)正式启动(含制作教程及源码)
帖子发表于 : 2013-06-07 23:14 
头像

注册: 2012-03-22 20:42
帖子: 2419
送出感谢: 144
接收感谢: 36
mark


_________________
@自由建客 @qy117121 @枫叶饭团 @cikekid @YeLee @jtshs256 @eexpress @ljj_jjl2008 @zhw2101024 @TeliuTe @月下叹逍遥 @leeaman @懒蜗牛Gentoo @灰色小狼 @photor @adagio @JiangHui @phoenixlzx @oneleaf


页首
 用户资料  
 
14 楼 
 文章标题 : Re: GRUB2 for DOS/UEFI/ISO/PXE项目(winly)正式启动(含制作教程及源码)
帖子发表于 : 2013-06-08 10:34 
头像

注册: 2007-11-25 13:29
帖子: 7291
地址: 新疆博乐
系统: 14.04/16.04/Fedroa22
送出感谢: 38
接收感谢: 102
学习,手上没有uefi的机子,有机会试一试
传统bios用easybcd确实很方便,窗口操作兼容性也很好


_________________
===新手请看===
Ubuntu 安装 | Ubuntu12.04/14.04/16.04 桌面操作指南
··Ubuntu16.04 安装图文教程(超简单)
····有时间就静下心来——折腾:)


页首
 用户资料  
 
15 楼 
 文章标题 : Re: GRUB2 for DOS/UEFI/ISO/PXE项目(winly)正式启动(含制作教程及源码)
帖子发表于 : 2013-06-08 12:30 
头像

注册: 2011-07-16 19:48
帖子: 811
系统: Arch
送出感谢: 2
接收感谢: 7
看起来确实有些压力,等到用得着的时候再来慢慢拜读


_________________
其实我是菜鸟、、、


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 29 篇帖子 ]  前往页数 1, 2  下一页

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 5 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译