无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 249082|回复: 476
打印 上一主题 下一主题

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

    [复制链接]
跳转到指定楼层
1#
发表于 2013-5-13 08:54:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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下直接安装:

winlyinst_gui.zip (252.83 KB, 下载次数: 2142)
备注:这个是安装启动代码到磁盘的,需要配合下面的手动包放到磁盘根目录.

另一种安装方法:
WinLy4.4.zip (1.74 MB, 下载次数: 9354)
================================
2、bios主板手动解包安装:
包含4个文件
1、内核文件 winlyldr
2、mbr引导文件 winlyldr.mbr
3、菜单文件winly.cfg
4、字体文件unicode.pf2

winlyldr.zip (1.38 MB, 下载次数: 9036)
================================
3、多重启动UEFI/DOS的光盘iso
winly.iso.7z (2.84 MB, 下载次数: 10093)

================================
4、UEFI主板手动解包到fat格式的磁盘或U盘根目录即可
     已经包含了32位和64位的启动文件. 引导文件也可以更改名字如winlyx64.efi,然后自行编辑BSD进行引导。
winly-efi.7z (1.75 MB, 下载次数: 8494)
================================
5、风格包
    将文件解压到winly文件夹里,在菜单文件winly.cfg添加这几行
insmod gfxmenu
insmod png
set theme=($root)/winly/themes/winly/theme.txt
export theme
winly-theme.7z (1.85 MB, 下载次数: 5726)
================================
6、网启版winly
将winly.0放置于tftp服务端的根目录,启动文件设置为winly.0
将附件的模块包解压后放置于tftp服务端的根目录,表现为/boot/grub/

tftp.zip (1.93 MB, 下载次数: 4617)

如果你的电脑运行较慢,或者你不喜欢有图片风格的界面,那么你可以替换一下这个文档,将会超快。
grub.zip (395 Bytes, 下载次数: 1000)
================================

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



  1. menuentry "【1】启动slitaz微型linux中文定制版"  --class slitaz --class os {
  2. linux /boot/bzImage rw root=/dev/null vga=normal autologin
  3. initrd /boot/rootfs.gz
  4. }
  5. menuentry "【2】启动bios主板的windowsPE系统" --class windows --class os {
  6. ntldr /bootmgr
  7. }
  8. menuentry "【4】启动UEFI主板的32-bit PE系统(如果有)" --class windows --class os {
  9. search --no-floppy --file --set=root /EFI/microsoft/boot/bootia32.efi
  10. chainloader /EFI/microsoft/boot/bootia32.efi
  11. }
  12. menuentry "【5】启动UEFI主板的64-bit PE系统(如果有)" --class windows --class os {
  13. search --no-floppy --file --set=root /EFI/microsoft/boot/bootx64.efi
  14. chainloader /EFI/microsoft/boot/bootx64.efi
  15. }
  16. menuentry "【6】启动UEFI主板的windows系统(如果有)" --class windows --class os {
  17. search --no-floppy --file --set=root /EFI/microsoft/boot/bootmgfw.efi
  18. chainloader /EFI/microsoft/boot/bootmgfw.efi
  19. }
  20. menuentry "【7】启动已安装的其他linux引导(如果有)" --class gnu-linux --class os {
  21. insmod gzio
  22. insmod part_msdos
  23. insmod ext2
  24. insmod ntfs
  25. insmod probe
  26. search --no-floppy --file --set=root /vmlinuz
  27. configfile ($root)/boot/grub/grub.cfg
  28. }
  29. menuentry "【reboot】重启" --class windows --class os{
  30.         reboot
  31. }
  32. menuentry "【halt】关闭计算机" --class windows --class os{
  33.         halt
  34. }
复制代码
17楼网友2011cwj6958提供的菜单,请参考:

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

制作教程及源码+脚本:

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

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


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

未完部分待续。。。






weixin.jpeg (47.56 KB, 下载次数: 650)

weixin.jpeg

点评

一直在找找的我好辛苦,谢谢神雕大侠!!!  发表于 2017-4-20 08:12

评分

参与人数 2无忧币 +10 收起 理由
wuxin9712 + 5
北冥有鱼 + 5 赞一个!

查看全部评分

来自 2#
发表于 2013-5-13 17:46:13 | 只看该作者
本帖最后由 2011cwj6958 于 2013-5-13 18:35 编辑

版主的   WinLy4.1 Grub2 for dos 提供的代码真是强大,可以启动不同版本到现在的最新版本Linux。
ubuntu LiveCD模式代码还可以启动ubuntu系列的不同版本,edubuntu  kubuntu 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
}

点评

我的使用loopback命令就会提示没有此命令,别的命令正常怎么回事??求指教  发表于 2017-4-21 16:54
我想用winly在efi32的平板上整体启动呜啦啦的UD-WLL多功能系统,该怎么写菜单  详情 回复 发表于 2016-7-5 17:03
收藏!收藏!  发表于 2013-5-27 08:28

评分

参与人数 1无忧币 +5 收起 理由
北冥有鱼 + 5 赞一个!

查看全部评分

回复

使用道具 举报

推荐
发表于 2014-6-6 10:48:28 | 只看该作者
请问一下:
bios主板下光驱引导是这样
   先引导winly.bin(iso引导含核心) -->winly.cfg(菜单)-风格包 -->启动系统

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

使用道具 举报

推荐
发表于 2013-5-13 14:05:56 | 只看该作者
期待功能强大的,可以直接拿来用……。
回复

使用道具 举报

推荐
发表于 2013-5-13 14:00:03 | 只看该作者
哦哦,这个要支持~
回复

使用道具 举报

推荐
发表于 2013-5-13 11:29:27 | 只看该作者
支持楼上的…强贴应该要置顶
回复

使用道具 举报

推荐
发表于 2016-5-6 11:52:12 来自手机 | 只看该作者
可以设置grub2引导win7跳过键盘自检吗?
回复

使用道具 举报

推荐
 楼主| 发表于 2016-1-16 01:53:53 | 只看该作者
网启版的grub2出来了,欢迎大家试用并提供修改意见

点评

Can you make Winly PXE, UEFI custom build?  详情 回复 发表于 2016-1-17 19:59
回复

使用道具 举报

推荐
发表于 2013-5-22 00:27:00 | 只看该作者
我想請問~

支援鼠標嗎?

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

使用道具 举报

推荐
发表于 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
}

点评

我的grub2在esp区,slitaz5.iso在硬盘第三分区根目录下(esp,windows,D:) 我的启动项 menuentry "启动slitaz微型linux中文定制版" --class slitaz --class os { insmod ntfs search -s -f /slitaz5.i  详情 回复 发表于 2015-5-5 08:54
回复

使用道具 举报

推荐
发表于 2013-5-14 09:02:37 | 只看该作者
到现在还不清楚grub2 for dos 项目具体是什么,它和burg,grub2 是什么关系?
回复

使用道具 举报

13#
发表于 2013-5-13 09:48:39 | 只看该作者
GRUB2 for DOS非常好,有个问题想请教楼主:GRUB2本来就支持UEFI启动,不知楼主的GRUB2 for DOS是否支持UEFI启动,谢谢!

点评

grub4dos和grub不应该是一脉相承的么,只是过度一下不兼容的地方。 难道grub4dos和 grub2 4 dos,要做不同的分支么?  详情 回复 发表于 2013-7-13 07:08
已经制作UEFI版本,请下载使用  发表于 2013-5-17 08:09
这是要取代grub4dos了!  发表于 2013-5-13 10:18
未测试,但是可以制作支持版。  发表于 2013-5-13 10:07
回复

使用道具 举报

14#
发表于 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 ,然后可以手工输入名称)

点评

UEFI的文件名支持改名字,然后自行通过编辑BSD来引导。文件已经可以下载了。  发表于 2013-5-17 08:11
回复

使用道具 举报

15#
发表于 2013-5-13 09:59:08 | 只看该作者
强烈支持!!热烈欢迎!!! 挺你!!!!!!!
回复

使用道具 举报

16#
发表于 2013-5-13 09:59:47 | 只看该作者
如果使用英文,没有那个字体文件行不行?

点评

如果你愿意还可以使用文泉驿或者雅黑字体,要使用grub2包中的字体转换命令,去archlinux的wikiian,对你有帮助,还有就是man info等!  发表于 2013-5-13 12:26
可以。  发表于 2013-5-13 10:05
回复

使用道具 举报

17#
发表于 2013-5-13 10:02:12 | 只看该作者
是否有bean大师的map?

点评

我暂时没有,你上传1个?  发表于 2013-5-13 10:06
回复

使用道具 举报

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

点评

期待您制作UEFI的菜单范本给我,谢谢。  发表于 2013-5-17 08:14
回复

使用道具 举报

19#
发表于 2013-5-13 10:32:37 | 只看该作者
yynq 发表于 2013-5-13 10:13
给神雕! 注意查收!!

不客气!!!
回复

使用道具 举报

20#
发表于 2013-5-13 10:45:52 | 只看该作者
支持神雕,先搞个PXE版本的玩玩吧。
回复

使用道具 举报

21#
发表于 2013-5-13 10:54:06 | 只看该作者
强烈建议本贴置顶
回复

使用道具 举报

22#
发表于 2013-5-13 14:45:37 | 只看该作者
强帖留名!!!!
回复

使用道具 举报

23#
发表于 2013-5-13 15:11:06 | 只看该作者
能不能提供一个简单点的东西:
带UEFI启动文件的,目录固定,如根目录的GRUB
可以启动指定名称(任意名称更好)的ISO,IMG ,如根目录的ISO,BOOT目录的IMG

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

点评

你通过loopback循环回放命令不就可以解决启动iso了吗? 如果是img文件就可以使用memdisk通过linux16命令来解决。  发表于 2013-5-13 15:27
回复

使用道具 举报

24#
 楼主| 发表于 2013-5-13 15:31:55 | 只看该作者
本帖最后由 2010teasiu 于 2013-5-13 15:38 编辑
2012卷心菜 发表于 2013-5-13 15:11
能不能提供一个简单点的东西:
带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                                 
    }

点评

UEFI模式,怎么办? 可以启动到GRUB> 但是,没有INITRD等模块  详情 回复 发表于 2013-5-13 17:52
回复

使用道具 举报

25#
发表于 2013-5-13 17:52:04 | 只看该作者
2010teasiu 发表于 2013-5-13 15:31
比如你的iso是isolinux格式启动的,
就可以
    menuentry "启动xx.iso(示例)"  

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

使用道具 举报

26#
发表于 2013-5-13 18:21:03 | 只看该作者
我的意思是,这个本来支持UEFI

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

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

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

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

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

使用道具 举报

27#
发表于 2013-5-13 21:11:31 | 只看该作者
手动解包安装可以放在任意分区根目录,启动所在分区的winlyldr.mbr 可以引导。
回复

使用道具 举报

28#
发表于 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
回复

使用道具 举报

29#
发表于 2013-5-14 00:04:47 | 只看该作者
强烈支持一下。
回复

使用道具 举报

30#
发表于 2013-5-14 09:14:46 | 只看该作者
grub2 for dos 还是改名为grub2 for win, 简称grub2win
回复

使用道具 举报

31#
 楼主| 发表于 2013-5-14 09:27:16 | 只看该作者
jianliulin 发表于 2013-5-14 09:02
到现在还不清楚grub2 for dos 项目具体是什么,它和burg,grub2 是什么关系?

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

就是grub2-2.00

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

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

点评

老大加油,我们福音啊!  详情 回复 发表于 2013-9-27 10:28
回复

使用道具 举报

32#
 楼主| 发表于 2013-5-14 09:29:06 | 只看该作者
本帖最后由 2010teasiu 于 2013-5-14 09:30 编辑
fanet 发表于 2013-5-14 09:14
grub2 for dos 还是改名为grub2 for win, 简称grub2win


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

当然,该项目有点蹩脚。

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

winly

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

使用道具 举报

33#
发表于 2013-5-14 14:54:15 | 只看该作者
2010teasiu 发表于 2013-5-13 15:31
比如你的iso是isolinux格式启动的,
就可以
    menuentry "启动xx.iso(示例)"  


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

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

点评

同感啊, memdisk也不能用, 想直接启动iso (winpe)无门  详情 回复 发表于 2013-10-29 08:51
yjd
原来这样,昨天esxi,uefi启动到grub2 for dos,打半天linux16还以为缺文件。  发表于 2013-7-20 14:13
回复

使用道具 举报

34#
发表于 2013-5-15 12:06:37 | 只看该作者
本帖最后由 2011cwj6958 于 2013-5-15 12:08 编辑

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

使用道具 举报

35#
发表于 2013-5-16 08:24:03 | 只看该作者
那就是说,EFI模式下,不能整体启动ISO,IMG了
回复

使用道具 举报

36#
发表于 2013-5-16 22:02:27 | 只看该作者
无条件地支持!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-30 18:01

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表