teasiu 发表于 2013-5-13 08:54:02

GRUB2.02 for DOS/UEFI/ISO/PXE项目(winly)2016最新版

本帖最后由 teasiu 于 2019-8-8 09:45 编辑

2016,智能路由器横行的年代,怎能缺少pxe网络启动呢。

2016年1月16日,更新增加winly网启版,即pxe启动(下载与使用的第6小节提供下载)

----神雕 (低调的走过)

==================================
我启动这个项目,是因为越来越多的人开始转投向GRUB2,却不知道如何入手,
为了让更多的人了解和使用它,就摸索摸索吧。

特点:
1、源码编译,(GNU/linux SliTaz + GRUB2)
2、内嵌启动模块,(newc格式的cpio)
3、外置中文字体和菜单 (unicode)
4、外置风格包

支持:
1、windows全系列
2、linux全系列
3、镜像文件
4、DOS文件

关于winly项目的简介:
WinLy全称是Windows base Live Linux Installer
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的可扩展性和代码公开
您可以自由修改和扩展任何代码,编辑成你喜欢的样子。

6、项目长期下载有效地址:https://sourceforge.net/projects/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图片格式

四、菜单的编写(请搜索和提问)
================================================

下载和使用:
1、bios主版windows下直接安装:


备注:这个是安装启动代码到磁盘的,需要配合下面的手动包放到磁盘根目录.

另一种安装方法:

================================
2、bios主板手动解包安装:
包含4个文件
1、内核文件 winlyldr
2、mbr引导文件 winlyldr.mbr
3、菜单文件winly.cfg
4、字体文件unicode.pf2


================================
3、多重启动UEFI/DOS的光盘iso


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

================================
5、风格包
    将文件解压到winly文件夹里,在菜单文件winly.cfg添加这几行
insmod gfxmenu
insmod png
set theme=($root)/winly/themes/winly/theme.txt
export theme

================================
6、网启版winly
将winly.0放置于tftp服务端的根目录,启动文件设置为winly.0
将附件的模块包解压后放置于tftp服务端的根目录,表现为/boot/grub/



如果你的电脑运行较慢,或者你不喜欢有图片风格的界面,那么你可以替换一下这个文档,将会超快。

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

关于菜单的编辑,
菜单学习资料,请参考:
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=305290
菜单示范:



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
}17楼网友2011cwj6958提供的菜单,请参考:

http://bbs.wuyou.net/forum.php?m ... 5112&fromuid=378921

制作教程及源码+脚本:

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

一、编译环境准备(仅在linux下)
      1、如果你没有安装使用过linux,推荐你下载一个免安装完全运行于内存的微型linux--->GNU SliTaz linux
      中文定制版下载地址:
http://pan.baidu.com/s/1mgKdR40这个是已经有编译环境所需的一切软件,进去Documents里面已经包括了我修改过的源码,直接运行编译脚本即可。


       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
二、我们在这里探讨如何编译和实现定制自己的启动软件。(主要探讨platform是i386-pc和64x-efi的)

   第一步是configure,
configure --with-platform=pc --target=i386
   第二步是make,千万不要make install,那会安装到你的当前目录,我们只需要make,然后把make后的文档提取出来。
   第三步,就是提取make后的文档。
mkdir -p boot/grub/i386-pc##建立你的启动目录
mkdir -p boot/grub/locale
cp ../winly/zh_CN.mo boot/grub/locale##这个语言翻译文件你只需要在其他地方找(比如ubuntu里面),然后放进去
cp ../winly/grub.cfg boot/grub##这个是启动菜单,你需要自己建立,注意,这个菜单是内置菜单,你需要指向一个外置菜单,里面添加configfile到外置的winly.cfg
cp ../winly/grubevn boot/grub##这个视乎你的需求
cp ../winly/unicode.pf2 boot/grub ##这个多国语言字体是显示中文必须的。
cd grub-core
cp *.mod *.img *.lst ../boot/grub/i386-pc##将grub-core文件夹下的所有生成的模块和挂载清单复制到你的启动目录
cd ..第四步,把启动目录的上百个文档打包,然后启动时映射这个包并读取。
find boot | cpio -o -H newc > winly.pkg#这个boot文件夹就是刚才你建立的启动文件夹。
第五步,关键技术来了,如何制作winlyldr并在启动时实现映射winly.pkg这个模块包
   首先,在grub-core下面建立一个first.cfg文档,文档里面的内容如下:
loopback winly /winly.pkg##指令启动的第一时间,首先回放winly.pkg到虚拟的winly磁盘
set prefix=(winly)/boot/grub##指定启动模块的位置到这个虚拟winly磁盘的/boot/grub
set pager=1##设定手动翻页
然后,我们来生成启动的内核i386-pc-core.img
cd grub-core
../grub-mkimage -O i386-pc -d . -c first.cfg -o i386-pc-core.img -v biosdisk blocklist newc cpio fat iso9660 part_msdos ext2 ntfs loopback#-v的部分,必须要包括newc,cpio,loopback模块,否则无法映射虚拟磁盘。
最后,生成在i386-pc启动的winlyldr
cat lnxboot.img i386-pc-core.img > winlyldr那么,你就有了如下的启动结构的文档了:
winlyldr-->winly.pkg-->外置的winly.cfg-->再延伸到外置风格包

未完部分待续。。。






2011cwj6958 发表于 2013-5-13 17:46:13

本帖最后由 2011cwj6958 于 2013-5-13 18:35 编辑

版主的   WinLy4.1 Grub2 for dos 提供的代码真是强大,可以启动不同版本到现在的最新版本Linux。
ubuntu LiveCD模式代码还可以启动ubuntu系列的不同版本,edubuntukubuntu xubuntu lubuntu mythbuntu 以及最新的UbuntuKylin。

我的ubuntu.cfg子菜单

menuentry "启动开拓者ktz5_1 LiveCD模式"--class ubuntu {
      insmod ntfs
            set root='(hd0,2)'
      loopback loop (hd0,2)/ktz5_1.iso
      linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/ktz5_1.iso locale=zh_CN.UTF-8 splash
      initrd (loop)/casper/initrd.lz
}
menuentry "启动开拓者ktz-ubuntu-9.10 LiveCD模式"--class ubuntu {
      insmod ntfs
            set root='(hd0,2)'
      loopback loop (hd0,2)/ktz-ubuntu.iso
      linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/ktz-ubuntu.iso locale=zh_CN.UTF-8 splash
      initrd (loop)/casper/initrd.lz
}
menuentry "启动ubuntu-10.10 LiveCD模式"--class ubuntu {
      insmod ntfs
            set root='(hd0,2)'
      loopback loop (hd0,2)/ubuntu.iso
      linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/ubuntu.iso locale=zh_CN.UTF-8 splash
      initrd (loop)/casper/initrd.lz
}
menuentry "启动edubuntu-10.10 LiveCD模式"--class edubuntu {
      insmod ntfs
            set root='(hd0,2)'
      loopback loop (hd0,2)/edubuntu.iso
      linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/edubuntu.iso locale=zh_CN.UTF-8 splash
      initrd (loop)/casper/initrd.lz
}
menuentry "启动edubuntu-11.04 LiveCD模式"--class edubuntu {
      insmod ntfs
            set root='(hd0,2)'
      loopback loop (hd0,2)/edubuntu1.iso
      linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/edubuntu1.iso locale=zh_CN.UTF-8 splash
      initrd (loop)/casper/initrd.lz
}
menuentry "启动kubuntu-10.10 LiveCD模式"--class kubuntu {
      insmod ntfs
            set root='(hd0,2)'
      loopback loop (hd0,2)/kubuntu.iso
      linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/kubuntu.iso locale=zh_CN.UTF-8 splash
      initrd (loop)/casper/initrd.lz
}
menuentry "启动kubuntu-11.04 LiveCD模式"--class kubuntu {
      insmod ntfs
            set root='(hd0,2)'
      loopback loop (hd0,2)/kubuntu1.iso
      linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/kubuntu1.iso locale=zh_CN.UTF-8 splash
      initrd (loop)/casper/initrd.lz
}
menuentry "启动xubuntu-10.10 LiveCD模式"--class xubuntu {
      insmod ntfs
            set root='(hd0,2)'
      loopback loop (hd0,2)/xubuntu.iso
      linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/xubuntu.iso locale=zh_CN.UTF-8 splash
      initrd (loop)/casper/initrd.lz
}
menuentry "启动xubuntu-11.04 LiveCD模式"--class xubuntu {
      insmod ntfs
            set root='(hd0,2)'
      loopback loop (hd0,2)/xubuntu1.iso
      linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/xubuntu1.iso locale=zh_CN.UTF-8 splash
      initrd (loop)/casper/initrd.lz
}
menuentry "启动lubuntu-10.10 LiveCD模式"--class lubuntu {
      insmod ntfs
            set root='(hd0,2)'
      loopback loop (hd0,2)/lubuntu.iso
      linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=lubuntu.iso locale=zh_CN.UTF-8 splash
      initrd (loop)/casper/initrd.lz
}
menuentry "启动lubuntu-11.04 LiveCD模式"--class lubuntu {
      insmod ntfs
            set root='(hd0,2)'
      loopback loop (hd0,2)/lubuntu1.iso
      linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=lubuntu1.iso locale=zh_CN.UTF-8 splash
      initrd (loop)/casper/initrd.lz
}
menuentry "启动mythbuntu-10.10 LiveCD模式"--class mythbuntu {
      insmod ntfs
            set root='(hd0,2)'
      loopback loop (hd0,2)/mythbuntu.iso
      linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/mythbuntu.iso locale=zh_CN.UTF-8 splash
      initrd (loop)/casper/initrd.lz
}
menuentry "启动mythbuntu-11.04 LiveCD模式"--class mythbuntu {
      insmod ntfs
            set root='(hd0,2)'
      loopback loop (hd0,2)/mythbuntu1.iso
      linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/mythbuntu1.iso locale=zh_CN.UTF-8 splash
      initrd (loop)/casper/initrd.lz
}
menuentry "启动kanas-ubuntu-10.10 LiveCD模式"--class ubuntu {
      insmod ntfs
            set root='(hd0,2)'
      loopback loop (hd0,2)/kanas-ubuntu.iso
      linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/kanas-ubuntu.iso locale=zh_CN.UTF-8 splash
      initrd (loop)/casper/initrd.lz
}
menuentry "启动BUYIOS.iso LiveCD模式"--class ubuntu {
      insmod ntfs
            set root='(hd0,1)'
      loopback loop (hd0,1)/BUYIOS.iso
      linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/BUYIOS.iso locale=zh_CN.UTF-8 splash
      initrd (loop)/casper/initrd.lz
}
menuentry "启动UbuntuKylin LiveCD模式"--class ubuntu {
      insmod ntfs
            set root='(hd0,1)'
      loopback loop (hd0,1)/raring-desktop-amd64.iso
      linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=/raring-desktop-amd64.iso locale=zh_CN.UTF-8 splash
      initrd (loop)/casper/initrd.lz
}

我的mint.cfg子菜单
menuentry "启动Lindows7 LiveCD模式"--class linuxmint {
      insmod ntfs
            set root='(hd0,2)'
      loopback loop (hd0,2)/Lindows7.iso
      linux (loop)/casper/vmlinuz file=/cdrom/preseed/mint.seed boot=casper persistent iso-scan/filename=/Lindows7.iso splash
      initrd (loop)/casper/initrd.lz
}

menuentry "启动kanas-mint LiveCD模式"--class linuxmint {
      insmod ntfs
            set root='(hd0,2)'
      loopback loop (hd0,2)/kanas-mint.iso
      linux (loop)/casper/vmlinuz file=/cdrom/preseed/mint.seed boot=casper persistent iso-scan/filename=/kanas-mint.iso splash
      initrd (loop)/casper/initrd.lz
}

menuentry "启动linuxmint-9-kde LiveCD模式"--class linuxmint {
      insmod ntfs
            set root='(hd0,2)'
      loopback loop (hd0,2)/linuxmint-kde.iso
      linux (loop)/casper/vmlinuz file=/cdrom/preseed/mint.seed boot=casper persistent iso-scan/filename=/linuxmint-kde.iso splash
      initrd (loop)/casper/initrd.lz
}

menuentry "启动linuxmint-9-gnome LiveCD模式"--class linuxmint {
      insmod ntfs
            set root='(hd0,2)'
      loopback loop (hd0,2)/linuxmint-gnome.iso
      linux (loop)/casper/vmlinuz file=/cdrom/preseed/mint.seed boot=casper persistent iso-scan/filename=/linuxmint-gnome.iso splash
      initrd (loop)/casper/initrd.lz
}
menuentry "启动linuxmint-10-kde LiveCD模式"--class linuxmint {
      insmod ntfs
            set root='(hd0,2)'
      loopback loop (hd0,2)/linuxmint-10-kde.iso
      linux (loop)/casper/vmlinuz file=/cdrom/preseed/mint.seed boot=casper persistent iso-scan/filename=/linuxmint-10-kde.iso splash
      initrd (loop)/casper/initrd.lz
}
menuentry "启动linuxmint-fluxbox LiveCD模式"--class linuxmint {
      insmod ntfs
            set root='(hd0,2)'
      loopback loop (hd0,2)/linuxmint-fluxbox.iso
      linux (loop)/casper/vmlinuz file=/cdrom/preseed/mint.seed boot=casper persistent iso-scan/filename=/linuxmint-fluxbox.iso splash
      initrd (loop)/casper/initrd.lz
}
menuentry "启动linuxmint-xfce LiveCD模式"--class linuxmint {
      insmod ntfs
            set root='(hd0,2)'
      loopback loop (hd0,2)/linuxmint-xfce.iso
      linux (loop)/casper/vmlinuz file=/cdrom/preseed/mint.seed boot=casper persistent iso-scan/filename=/linuxmint-xfce.iso splash
      initrd (loop)/casper/initrd.lz
}
menuentry "启动linuxmint-11-lxde LiveCD模式"--class linuxmint {
      insmod ntfs
            set root='(hd0,2)'
      loopback loop (hd0,2)/linuxmint-lxde.iso
      linux (loop)/casper/vmlinuz file=/cdrom/preseed/mint.seed boot=casper persistent iso-scan/filename=/linuxmint-lxde.iso splash
      initrd (loop)/casper/initrd.lz
}
menuentry "启动linuxmint-11-gnome LiveCD模式"--class linuxmint {
      insmod ntfs
            set root='(hd0,2)'
      loopback loop (hd0,2)/linuxmint-11-gnome.iso
      linux (loop)/casper/vmlinuz file=/cdrom/preseed/mint.seed boot=casper persistent iso-scan/filename=/linuxmint-11-gnome.iso splash
      initrd (loop)/casper/initrd.lz
}

我的ylmf.cfg子菜单
menuentry "启动雨林木风Ylmf_OS_3.0 LiveCD模式"    --class ylmf {
      insmod ntfs
            set root='(hd0,2)'
      loopback loop (hd0,2)/Ylmf2.iso
      linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/Ylmf2.iso locale=zh_CN.UTF-8 noprompt noeject splash
      initrd (loop)/casper/initrd.img
}


menuentry "启动雨林木风ylmf_os4-20110222 LiveCD模式"    --class ylmf {
      insmod ntfs
            set root='(hd0,2)'
      loopback loop (hd0,2)/Ylmf3.iso
      linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/Ylmf3.iso locale=zh_CN.UTF-8 noprompt noeject splash
      initrd (loop)/casper/initrd.img
}


menuentry "启动雨林木风ylmf_os4-20110326 LiveCD模式"    --class ylmf {
      insmod ntfs
            set root='(hd0,2)'
      loopback loop (hd0,2)/Ylmf4.iso
      linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/Ylmf4.iso locale=zh_CN.UTF-8 noprompt noeject splash
      initrd (loop)/casper/initrd.img
}


menuentry "启动雨林木风ylmf_os4-20110510 LiveCD模式"    --class ylmf {
      insmod ntfs
            set root='(hd0,2)'
      loopback loop (hd0,2)/Ylmf5.iso
      linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/Ylmf5.iso locale=zh_CN.UTF-8 noprompt noeject splash
      initrd (loop)/casper/initrd.img
}


menuentry "启动雨林木风ylmf_os_4.0 LiveCD模式"    --class ylmf {
      insmod ntfs
            set root='(hd0,2)'
      loopback loop (hd0,2)/Ylmf6.iso
      linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/Ylmf6.iso locale=zh_CN.UTF-8 noprompt noeject splash
      initrd (loop)/casper/initrd.img
}

menuentry "启动雨林木风ylmf_os4-20110830LiveCD模式"    --class ylmf {
      insmod ntfs
            set root='(hd0,2)'
      loopback loop (hd0,2)/Ylmf7.iso
      linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/Ylmf7.iso locale=zh_CN.UTF-8 noprompt noeject splash
      initrd (loop)/casper/initrd.img
}
我的Deepin.cfg子菜单
menuentry "启动Deepin-9.12-final深度LiveCD模式"    --class ld {
      insmod ntfs
            set root='(hd0,2)'
      loopback loop (hd0,2)/deepin.iso
      linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/deepin.iso locale=zh_CN.UTF-8 noprompt noeject splash
      initrd (loop)/casper/initrd.lz
}

menuentry "启动LinuxDeepin v10.06.0 测试版深度Linux系统模式"    --class ld {
      insmod ntfs
            set root='(hd0,2)'
      loopback loop (hd0,2)/deepin1.iso
      linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/deepin1.iso locale=zh_CN.UTF-8 noprompt noeject splash
      initrd (loop)/casper/initrd.lz
}

menuentry "启动Deepin-10.06深度LiveCD模式"    --class ld {
      insmod ntfs
            set root='(hd0,2)'
      loopback loop (hd0,2)/deepin2.iso
      linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/deepin.iso locale=zh_CN.UTF-8 noprompt noeject splash
      initrd (loop)/casper/initrd.lz
}

menuentry "启动deepin-10.12-beta-i386深度LiveCD模式"    --class ld {
      insmod ntfs
            set root='(hd0,2)'
      loopback loop (hd0,2)/deepin3.iso
      linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/deepin3.iso locale=zh_CN.UTF-8 noprompt noeject splash
      initrd (loop)/casper/initrd.lz
}

menuentry "启动deepin-10.12-i386深度LiveCD模式"    --class ld {
      insmod ntfs
            set root='(hd0,2)'
      loopback loop (hd0,2)/deepin4.iso
      linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/deepin4.iso locale=zh_CN.UTF-8 noprompt noeject splash
      initrd (loop)/casper/initrd.lz
}

menuentry "启动Linux Deepin 11.06深度LiveCD模式"    --class ld {
      insmod ntfs
            set root='(hd0,2)'
      loopback loop (hd0,2)/deepin5.iso
      linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/deepin5.iso locale=zh_CN.UTF-8 noprompt noeject splash
      initrd (loop)/casper/initrd.lz
}
menuentry "启动deepin_11.06.1_i386深度LiveCD模式"    --class ld {
      insmod ntfs
            set root='(hd0,2)'
      loopback loop (hd0,2)/deepin6.iso
      linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/deepin6.iso locale=zh_CN.UTF-8 noprompt noeject splash
      initrd (loop)/casper/initrd.lz
}

我的puppy.cfg子菜单
menuentry "启动xbarbie_xfce-4.1-20081223-linux系统"--class puppy {
      insmod ntfs
            set root='(hd0,2)'
            linux /puppy/vmlinuz pmedia=hd
            initrd /puppy/initrd.gz
}
menuentry "启动小芭比413-openbox-2009系统"--class puppy {
      insmod ntfs
            set root='(hd0,2)'
            linux /puppy1/vmlinuz pmedia=hd
            initrd /puppy1/initrd.gz
}menuentry "启动puppy-420ebobo26291cn"--class puppy {
      insmod ntfs
            set root='(hd0,2)'
            linux /puppy2/vmlinuz pmedia=hd
            initrd /puppy2/initrd.gz
}menuentry "启动小芭比421-cn-linux系统"--class puppy {
      insmod ntfs
            set root='(hd0,2)'
            linux /puppy3/vmlinuz pmedia=hd
             initrd /puppy3/initrd.gz
}
menuentry "启动小芭比431之wine集成版系统"--class puppy {
      insmod ntfs
            set root='(hd0,2)'
            linux /puppy4/vmlinuz pmedia=hd
            initrd /puppy4/initrd.gz
}
menuentry "启动小芭比432-cn-linux系统"--class puppy {
      insmod ntfs
            set root='(hd0,2)'
            linux /puppy5/vmlinuz pmedia=hd
            initrd /puppy5/initrd.gz
}
menuentry "启动苏奇小芭比-linux系统"--class puppy {
      insmod ntfs
            set root='(hd0,2)'
            linux /puppy6/vmlinuz pmedia=hd
            initrd /puppy6/initrd.gz
}
menuentry "启动puppy520_cn_pps-linux系统"--class puppy {
      insmod ntfs
            set root='(hd0,2)'
             linux /puppy7/vmlinuz pmedia=hd
            initrd /puppy7/initrd.gz
}
menuentry "启动PUPPY525PAE-linux系统"--class puppy {
      insmod ntfs
            set root='(hd0,2)'
            linux /puppy8/vmlinuz pmedia=hd
            initrd /puppy8/initrd.gz
}
menuentry "启动Mac OS X风格的Macis Puppy 525 Linux系统"--class puppy {
      insmod ntfs
            set root='(hd0,2)'
            linux /mac/vmlinuz pmedia=hd
            initrd /mac/initrd.gz
}
menuentry "启动小芭比X离子版macis-531系统"--class puppy {
      insmod ntfs
            set root='(hd0,2)'
            linux /mac1/vmlinuz pmedia=hd
            initrd /mac1/initrd.gz
}
menuentry "启动启动qrky-130-linux系统"--class puppy {
      insmod ntfs
            set root='(hd0,2)'
            linux /qrky/vmlinuz pmedia=hd
            initrd /qrky/initrd.gz
}
menuentry "title 【c】 启动xuppy-FF系统"--class puppy {
      insmod ntfs
            set root='(hd0,2)'
            linux /xuppy/vmlinuz pmedia=hd
            initrd /xuppy/initrd.gz
}

我的veket.cfg子菜单
menuentry "启动a-linux-1.0-linux系统"--class puppy {
      insmod ntfs
            set root='(hd0,2)'
            linux /veket/vmlinuz pmedia=hd
            initrd /veket/initrd.gz
}
menuentry "启动veket-2.39-linux系统"--class puppy {
      insmod ntfs
            set root='(hd0,2)'
            linux /veket1/vmlinuz pmedia=hd
            initrd /veket1/initrd.gz
}
menuentry "启动veket-3.11-linux系统"--class puppy {
      insmod ntfs
            set root='(hd0,2)'
            linux /veket2/vmlinuz pmedia=hd
            initrd /veket2/initrd.gz
}
menuentry "启动veket-5.29-linux系统"--class puppy {
      insmod ntfs
            set root='(hd0,2)'
             linux /veket3/vmlinuz pmedia=hd
            initrd /veket3/initrd.gz
}
menuentry "启动e-veket-linux系统"--class puppy {
      insmod ntfs
            set root='(hd0,2)'
            linux /e-veket/vmlinuz pmedia=hd
            initrd /e-veket/initrd.gz
}
menuentry "启动lucky8k-veket-1.2a系统"--class puppy {
      insmod ntfs
            set root='(hd0,2)'
            linux /lucky8k//vmlinuz pmedia=hd
            initrd /lucky8k//initrd.gz
}
menuentry "启动lucky8k-veket-378r系统"--class puppy {
      insmod ntfs
            set root='(hd0,2)'
            linux /lucky8kr/vmlinuz pmedia=hd
            initrd /lucky8kr/initrd.gz
}
menuentry "启动lucky8k儿童操作系统"--class puppy {
      insmod ntfs
            set root='(hd0,2)'
            linux /lucky8kr1/vmlinuz pmedia=hd
            initrd /lucky8kr1/initrd.gz
}
menuentry "启动微型芭比puppy桌面系统"--class puppy {
      insmod ntfs
            set root='(hd0,2)'
            linux /puppy/vmlinuz pmedia=hd
            initrd /puppy/initrd.gz
}

我的WXlinux.cfg子菜单
menuentry "运行无线破解 beini-1.0-rc5.2系统" --class windows {
      set root='(hd0,1)'
      linux16 /burg/memdisk iso raw
      initrd16 /TYPE/Beini2.iso
}
menuentry "无线破解bt6系统" --class windows {
      set root='(hd0,1)'
      linux16 /burg/memdisk iso raw
      initrd16 /TYPE/bt6.iso
}
menuentry "运行cdlinux0.9.6.1万能无线破解系统"--class puppy {
      insmod ntfs
            set root='(hd0,2)'
            linux /CDlinux/bzImage CDL_LANG=zh_CN.UTF-8 CDL_DIR=/CDlinux
initrd /CDlinux/initrd
}

menuentry "运行cdlinux0.9.6.1社区版"--class puppy {
      insmod ntfs
            set root='(hd0,2)'
            linux /CDlinux1/bzImage CDL_LANG=zh_CN.UTF-8 CDL_DIR=/CDlinux1
initrd /CDlinux1/initrd
}
menuentry "GeeXBox免费影音系统" --class windows {
      set root='(hd0,1)'
      linux16 /burg/memdisk iso raw
      initrd16 /TYPE/GeexBox.ISO
}
menuentry "启动GeexBox多媒体系统"--class puppy {
      insmod ntfs
            set root='(hd0,2)'
            linux/geexbox/vmlinuz root=/dev/ram0 rw lang=zh_CN remote=atiusb receiver=atiusb keymap=qwerty splash=silent vga=789 video=vesafb:ywrap,mtrr quiet
initrd /geexbox/initrd.gz
}
menuentry "启动easeboot vod视频点播系统"--class puppy {
      insmod ntfs
            set root='(hd0,2)'
            linux /easeboot/bzImage root=/dev/ram0 vga=771 ramdisk_size=100000
initrd /easeboot/rootfs.gz
}

menuentry "启动slitazcn Linux系统"--class puppy {
      insmod ntfs
            set root='(hd0,2)'
            linux /Slitaz/boot/bzImage root=/dev/ram0 vga=771 ramdisk_size=100000
initrd /Slitaz/boot/rootfs.gz
}
menuentry "启动slitazcn Linux开发版系统"--class puppy {
      insmod ntfs
            set root='(hd0,2)'
            linux /Slitaz1/boot/bzImage root=/dev/ram0 vga=771 ramdisk_size=100000
initrd /Slitaz1/boot/rootfs.gz
}

碧羽宣 发表于 2014-6-6 10:48:28

请问一下:
bios主板下光驱引导是这样
   先引导winly.bin(iso引导含核心) -->winly.cfg(菜单)-风格包 -->启动系统

那EFI主板有没有光驱引导
有的话,也是winly.bin-->winly.cfg
还是bootx64.efi-->winly.bin-->winly.cfg

2013hyun 发表于 2013-5-13 14:05:56

期待功能强大的,可以直接拿来用……。{:2_127:}

nytc006 发表于 2013-5-13 14:00:03

哦哦,这个要支持~

月光海洋 发表于 2013-5-13 11:29:27

支持楼上的…强贴应该要置顶

f111 发表于 2016-5-6 11:52:12

可以设置grub2引导win7跳过键盘自检吗?

teasiu 发表于 2016-1-16 01:53:53

网启版的grub2出来了,欢迎大家试用并提供修改意见

lfu0327 发表于 2013-5-22 00:27:00

我想請問~

支援鼠標嗎?

雖然只是短暫的選擇~但是可以提供更多的方便啊~

2011cwj6958 发表于 2015-5-5 05:47:58

teasiu 发表于 2015-5-5 00:16
此版本内核貌似不支持efi,需要定制一个新内核才行.

已经验证支持efi

grub2在U盘,slitaz.iso在硬盘第四分区Linux目录下
我的启动项
menuentry "启动slitaz微型linux中文定制版"--class slitaz --class os {
insmod ntfs
        search -s -f /linux/slitaz.iso
      loopback loop ($root)/linux/slitaz.iso
      linux (loop)/boot/bzImage boot=boot iso-scan/filename=/linux/slitaz.iso rw root=/dev/null vga=normal autologin
      initrd (loop)/boot/rootfs.gz
}

jianliulin 发表于 2013-5-14 09:02:37

到现在还不清楚grub2 for dos 项目具体是什么,它和burg,grub2 是什么关系?

haook 发表于 2013-5-13 09:48:39

GRUB2 for DOS非常好,有个问题想请教楼主:GRUB2本来就支持UEFI启动,不知楼主的GRUB2 for DOS是否支持UEFI启动,谢谢!

2012winServerPE 发表于 2013-5-13 09:58:01

这个还不明白,不过,我们需要一个简单的东西:

1. 支持BIOS 和UEFI
2.支持整体启动ISO,IMG
3.硬盘,光盘通用
4.简单的菜单写法.

如实现如下功能:
无论是BIOS还是UEFI的情况下,都可以通过通过MS的BCD来引导GRUB2

光盘可以使用光盘的XXX.MBR 硬盘可以使用你提供这个XXXX.MBR来引导(能统一更好)

进入菜单后,可以选择加载各种ISO,IMG(最好可以DIR ,然后可以手工输入名称)

yynq 发表于 2013-5-13 09:59:08

强烈支持!!热烈欢迎!!! 挺你!!!!!!!

2012winServerPE 发表于 2013-5-13 09:59:47

如果使用英文,没有那个字体文件行不行?

yynq 发表于 2013-5-13 10:02:12

是否有bean大师的map?

pokime99 发表于 2013-5-13 10:11:02

目前,GRUB4DOS,對BIOS啟動,已經相當完備,且持續更新中。但,對於UEFI啟動,GRUB4DOS已表明不支持,反倒GRUB2,在LINUX,已經能支持了,希望,GRUB2能強化,對UEFI的支持,如能直接啟動ISO、IMG的映像啟動。或者,可以從UFEI啟動,轉向引導G2LDR.MBR、GRLDR.MBR,再引導映像檔啟動。如能達成,GRUB2就能打開全新的康莊大道了。

yynq 发表于 2013-5-13 10:32:37

yynq 发表于 2013-5-13 10:13 static/image/common/back.gif
给神雕! 注意查收!!

不客气!!!

zhaohj 发表于 2013-5-13 10:45:52

支持神雕,先搞个PXE版本的玩玩吧。

yynq 发表于 2013-5-13 10:54:06

强烈建议本贴置顶

huangdi168 发表于 2013-5-13 14:45:37

强帖留名!!!!

2012卷心菜 发表于 2013-5-13 15:11:06

能不能提供一个简单点的东西:
带UEFI启动文件的,目录固定,如根目录的GRUB
可以启动指定名称(任意名称更好)的ISO,IMG ,如根目录的ISO,BOOT目录的IMG

(其实就是需要一个菜单,和比较完整的文件)

teasiu 发表于 2013-5-13 15:31:55

本帖最后由 2010teasiu 于 2013-5-13 15:38 编辑

2012卷心菜 发表于 2013-5-13 15:11 static/image/common/back.gif
能不能提供一个简单点的东西:
带UEFI启动文件的,目录固定,如根目录的GRUB
可以启动指定名称(任意名称更好 ...

比如你的iso是isolinux格式启动的,
就可以
    menuentry "启动xx.iso(示例)"
    {
       loopbak loop ($root)/xxx.iso   
       linux(loop)/xxxxx #这里参照你的isolinux.cfg的写法
       initrd (loop)/xxxxx                              
    }

loopback命令的意思是将你的iso文件虚拟回放到内存的(loop)位置。
$root是winly已经指定了的菜单的盘符的根目录


    menuentry "启动dos工具箱(示例)"
    {
            linux16 (位置)/memdisk img raw#这里需要下载一个memdisk在相对位置
            initrd16 (位置)/dos.img                                 
    }

2012卷心菜 发表于 2013-5-13 17:52:04

2010teasiu 发表于 2013-5-13 15:31 static/image/common/back.gif
比如你的iso是isolinux格式启动的,
就可以
    menuentry "启动xx.iso(示例)"


UEFI模式,怎么办?
可以启动到GRUB>
但是,没有INITRD等模块

2012卷心菜 发表于 2013-5-13 18:21:03

我的意思是,这个本来支持UEFI

那么,BIOS,UEFI是不是可以都来个模板

给个全一点的包,和一个通用一点的菜单

启动当前启动设备根目录的XXX.ISO, BOOT目录的XXX.IMG

这样,硬盘,光盘,U盘,通用,复制模板文件到硬盘,光盘,U盘,就可以了

PE,LINUX等,都可以整体启动嘛

2011cwj6958 发表于 2013-5-13 21:11:31

手动解包安装可以放在任意分区根目录,启动所在分区的winlyldr.mbr 可以引导。

2011cwj6958 发表于 2013-5-13 22:13:38

本帖最后由 2011cwj6958 于 2013-5-13 22:44 编辑

WinLy放在任意分区的启动方法

把WinLy4.1安装后产生的burg文件夹全部文件和buldr buldr.mbr文件放在任意分区根目录,引导buldr.mbr

把WinLy4.4手动解包安装winlyldr文件夹全部文件和winlyldr    winlyldr.mbr文件放在任意分区根目录,引导winlyldr.mbr

WinLy4.1放在UD分区的方法
把burg里面的fonts locale themes文件夹和burg.cfg文件, 再把bean的buldr文件一起拖入UD区,编辑fbinst菜单

也可以用FbinstTool软件新建bucfg.fba文件,把burg里面的fonts locale themes文件夹和burg.cfg文件, 再把bean的buldr文件一起拖入,编辑fbinst菜单   这个bucfg.fba文件可以可以用来制作UD 也可以和bean的buldr文件, buldr.mbr文件一起启动

WinLy做主引导安装方法
用BOOTICE安装主引导GRUB4DOS

xyzxp 发表于 2013-5-14 00:04:47

强烈支持一下。

fanet 发表于 2013-5-14 09:14:46

grub2 for dos 还是改名为grub2 for win, 简称grub2win

teasiu 发表于 2013-5-14 09:27:16

jianliulin 发表于 2013-5-14 09:02 static/image/common/back.gif
到现在还不清楚grub2 for dos 项目具体是什么,它和burg,grub2 是什么关系?

简单说是将grub2编译成在dos环境下启动的内核文件。

就是grub2-2.00

burg是grub2-1.98的进化版,burg已经被编译为多种环境下启动内核了,

我尝试编译grub2-2.00在多种环境下的内核。

teasiu 发表于 2013-5-14 09:29:06

本帖最后由 2010teasiu 于 2013-5-14 09:30 编辑

fanet 发表于 2013-5-14 09:14 static/image/common/back.gif
grub2 for dos 还是改名为grub2 for win, 简称grub2win

因为国外已经有1个grub2win项目,所以不想重复名称。

当然,该项目有点蹩脚。

所以,我直接采用winly的名称。base on grub2

winly

是我2年前创建的名称。
http://baike.baidu.com/view/6732678.htm

fujianabc 发表于 2013-5-14 14:54:15

2010teasiu 发表于 2013-5-13 15:31 static/image/common/back.gif
比如你的iso是isolinux格式启动的,
就可以
    menuentry "启动xx.iso(示例)"


loopback局限性太大,这个仿真只对grub2环境内有效,出了grub2就失效了,所以不能用于启动windows/winpe/dos等系统。

linux16和initrd16是16位命令,只能用于bios模式下的grub2,不能用于efi环境下的grub2

2011cwj6958 发表于 2013-5-15 12:06:37

本帖最后由 2011cwj6958 于 2013-5-15 12:08 编辑

winlyldr 问题
winlyldr 在大分辨率的电脑上字体太小,不美观。怎样自定义分辨率
在有背景图的菜单中菜单不明显,怎样修改菜单字体颜色。

2012xnmbz 发表于 2013-5-16 08:24:03

那就是说,EFI模式下,不能整体启动ISO,IMG了

yjstone 发表于 2013-5-16 22:02:27

无条件地支持!
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: GRUB2.02 for DOS/UEFI/ISO/PXE项目(winly)2016最新版