无忧启动论坛

标题: USB启动安装器 2枚 (GRUB2+Syslinux)经典再现 [打印本页]

作者: teasiu    时间: 2013-4-19 21:16
标题: USB启动安装器 2枚 (GRUB2+Syslinux)经典再现
本帖最后由 2010teasiu 于 2013-4-20 01:31 编辑

我一直不太想把这个拿出来献丑,
考虑到互相学习的必要,就让大家来拍拍吧。

第一枚: GRUB2-2.00






看完图片了,是否有意想使用呢?

使用之前,认真读一下这个安装器的作用和使用方法.

首先,这个是GRUB2-2.00的源码编译的启动代码+NSIS安装程序编译而成的.

GRUB2源码出自 : http://ftp.gnu.org/gnu/grub/  采用linux编译
NSIS安装程序:http://sourceforge.net/projects/nsis/  windows下编译
编译方法:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=191252

安装原理:
GRUB2在 linux下安装就很简单,3行命令搞定
  1. #mount /dev/sd[x][n] /mnt
  2. #grub-install --root-directory=/mnt /dev/sd[x]
  3. #umount /dev/sd[x][n]
复制代码
但是在windows下怎么安装呢?我费了好大的脑筋。
新的GRUB2-2.00的启动代码占位62扇区,大家熟悉的工具是GRUB2-1.98的,占46扇区,
所以,找不到新的工具来安装。
那我们就用恢复MBR的形式吧,
只要确保你的U盘启动位为63扇区就可以了。
我用NSIS编译了这个安装器,采用fbinst格式化你的U盘保证63扇区对齐,
然后采用恢复62个扇区的MBR,顺利启动!

使用教程:
我一直非常看好GRUB2,它的变化实在太多了,比如大家使用的BURG(fbinstool)也是它变化编译而来。
这里提供的只有一点点心得,希望其他网友也可以补充。
1、控制文档位置
在/boot/grub/grub.cfg

2、菜单写法:
菜单组成
  1. menuentry "菜单名称"
  2. {
  3. 命令
  4. }
复制代码
3、常用功能
     启动linux):
  1. menuentry "启动linux"
  2. {
  3. linux /bzImage
  4. initrd /initrd.gz
  5. }
复制代码
启动windows):
  1. menuentry "启动windows 2000& xp"
  2. {
  3. ntldr /ntldr
  4. }
  5. menuentry "启动windows 7& 8"
  6. {
  7. ntldr /bootmgr
  8. }
复制代码
整体启动iso):参考文档:http://www.syslinux.org/wiki/index.php/MEMDISK
  1. menuentry "启动PE镜像(示例)"  
  2. {
  3.         linux16 /memdisk iso raw  #这里需要下载一个memdisk在相对位置
  4.         initrd16 /WINPE.iso                                 
  5. }
复制代码
整体启动img镜像):
  1. menuentry "启动dos工具箱(示例)"  
  2. {
  3.         linux16 /memdisk img raw  #这里需要下载一个memdisk在相对位置
  4.         initrd16 /dos.img                                 
  5. }
复制代码
进入其他启动grub4dos):
  1.     menuentry "进入grub4dos菜单(示例)"
  2. {
  3.       linux16 /grub.exe --config-file=/menu.lst   
  4. }
复制代码
整体启动iso还可以这样写:
  1. menuentry "运行Windows PE(示例)另一种启动方式"
  2. {
  3.     linux16 /grub.exe --config-file="map /WINPE.iso (hd32) || map --mem /WINPE.iso (hd32); map --hook; chainloader (hd32); rootnoverify (hd32)"
  4.     initrd16 /WINPE.iso
  5. }
复制代码
启动dos模式下的小游戏):这个好怀旧啊
  1. menuentry "DOS下的小游戏"
  2. {
  3. multiboot /invaders.exec
  4. }
复制代码
3、背景和颜色设置:
背景支持jpg\png文件格式,比如
  1. insmod png
  2. set background=/boot/grub/1.png
复制代码
字体颜色
  1. set menu_color_normal=white/black
  2. set menu_color_highlight=black/light-gray
复制代码
参考文档:https://wiki.archlinux.org/index.php/GRUB2

4、可是使用风格让启动界面更显人性化
  1. set theme=/boot/grub/themes/slitaz/theme.txt
复制代码
风格包下载
slitaz.7z (278.6 KB, 下载次数: 378)

5、高级使用方法:
子菜单):
  1. submenu "子菜单"
  2. {
  3.    menuentry "子菜单1"
  4. {
  5.     命令
  6.   }
  7. menuentry "子菜单2"
  8. {
  9.    命令
  10.   }
  11. }
复制代码
分菜单):
  1. menuentry "运行第2张菜单"
  2. {
  3.    configfile "${prefix}/grub2.cfg"
  4.   }
复制代码
自动搜索(检测)功能):
比如说我的grub2.cfg这样写的:

  1. insmod regexp
  2. installation_found=false
  3. #查找电脑中任何一个分区的GRUB2
  4. for ins in (*)/boot/grub/i386-pc/core.img (*)/grub/i386-pc/core.img \
  5.            (*)/boot/grub2/i386-pc/core.img (*)/grub2/i386-pc/core.img \
  6.            (*)/boot/grub/core.img (*)/grub/core.img (*)/boot/grub2/core.img \
  7.            (*)/grub2/core.img; do
  8.   regexp --set=1:ins_device '^\((.*)\)/' "$ins"

  9.   if [ "$ins_device" != "cd" -a "$ins" != "${prefix}/core.img" -a \
  10.        "$ins" != "${prefix}/i386-pc/core.img" -a -e "$ins" ]; then
  11.     installation_found=true
  12. #如果存在,形成以下菜单并运行
  13.     menuentry "$ins" "$ins_device" "$ins" {
  14.       ins_device="$2"
  15.       ins="$3"

  16.       root="$ins_device"
  17.       multiboot "$ins"
  18.     }
  19.   fi
  20. done
  21. #如果不存在
  22. if [ "$installation_found" != true ]; then
  23.   echo "错误: 无法检测到你的电脑磁盘安装了GRUB2."
  24.   echo "按esc键返回主菜单."
  25.   sleep --interruptible 20 -v
  26. fi
复制代码
下载地址:

http://code.google.com/p/linux-p ... z-usb-installer.exe


写到这里,俺老雕打字真辛苦,看在辛苦的份上,收藏吧,支持吧。

作者: teasiu    时间: 2013-4-19 21:16
本帖最后由 2010teasiu 于 2013-4-20 05:37 编辑

第2枚 syslinux
其实这2枚是可以合并在一起的,只要加上判断语句就可以做到1个安装器里面,
但是为了方便大家学习,还是不动这个念想了。






http://code.google.com/p/linux-p ... ail?name=tazusb.exe
作者: 2013柠檬精铃    时间: 2013-4-19 22:13
看看

作者: chzj589    时间: 2013-4-19 22:26
LZ辛苦了!没有下载文件????
作者: 快雪时晴    时间: 2013-4-19 22:37
2010teasiu 发表于 2013-4-19 21:16
(占位编辑中,请勿回复)
(占位编辑中,请勿回复)

没搞懂,是同样功能的2个工具,分别GRUB2启动和SYSLINUX启动方式?
作者: 2010emxl    时间: 2013-4-19 23:45
下载地址呢?
作者: 爱已上线    时间: 2013-4-20 16:35
谢谢 看看
作者: 讯极天度    时间: 2013-4-20 20:54
感谢神雕大侠了!
作者: fvptk    时间: 2013-4-20 21:36
这个特好奇了,下载折腾折腾,
作者: 2012jierong312    时间: 2013-4-20 23:31


神雕大侠出现,江湖又将掀起一阵腥风血雨。
作者: 翅膀    时间: 2013-4-21 21:36
提示: 作者被禁止或删除 内容自动屏蔽
作者: 不点    时间: 2013-4-21 23:03
本帖最后由 不点 于 2013-4-22 09:35 编辑

操作系统的发行者、整合者,必须连同启动程序一起 “整” 才行。

操作系统首先要过 “启动” 这一关。

很多优秀的 Linux 发行版,都栽在启动上了。专业 Linux 论坛上有 N 多人报告安装过程或者安装后无法启动的情况。

启动程序其实也属于操作系统的一部分,或者说,一个重要的、不可缺少的环节。

如果启动程序 “整” 不好,那么整个操作系统也伤痕累累。

至今没有哪个 Linux 发行版完美解决启动问题。

所以,很有必要有人出来,把 Linux 的启动问题加以彻底解决。


看到神雕在做 Slitaz,并且已经很有成效。神雕对于 Linux 比较了解,基本功不错。Linux 属于操作系统层面的。许多 Linux 发行版都未能把启动问题做好。因此,神雕如果要有突破的话,也应该往这方面努力。不是应该,而是必须。

软件不难,难的是硬件。我看到,神雕在开发 Slitaz 的过程中,已经出现了很多有关硬件的问题,很棘手。我直观上感觉,那些硬件问题难以全面解决。即使能够全面解决,也要花费很大的力气。我根据自己开发 grub4dos 的 10 年经验来预测,解决 Linux 的硬件兼容问题,比 grub4dos 遇到的硬件兼容问题要困难 1000 倍。因为 grub4dos 比较简单、单纯,只是调用 BIOS 而已,所以相比之下 grub4dos 要容易得多。换句话说,开发启动程序比开发操作系统要容易得多。

所以我认为,如果操作系统的开发者、发行者、整合者们不去花费精力把启动程序 “整好”,那是极其不划算的。容易做的,不去做好,让这个问题 “卡住脖子”,这显然不划算。就像学生参加考试,容易做的不去做,偏要去做难题,违背了 “先易后难” 的原则。

如果 Linux 操作系统的开发者、整合者们都不去做好启动程序的工作,那么这个操作系统的发展现状也就处于很初级的阶段,或者说处于低水平。在这样的水平之下,也很难在普通用户中普及开来。因为这种水平之下,普通用户搞不定的问题太多,难以接受这个操作系统。

目前的 Linux 操作系统开发者、整合者基本都不去管启动方面的事,都是直接交给专门的启动程序 (GRUB2) 来处理。 我个人认为这样做的效果不理想。我认为 Linux 的整合者有必要介入启动程序的开发,把启动程序纳入管理。


作者: 爱已上线    时间: 2013-4-23 12:39
谢谢楼主分享
作者: teasiu    时间: 2013-4-26 13:41
不点 发表于 2013-4-21 23:03
操作系统的发行者、整合者,必须连同启动程序一起 “整” 才行。

操作系统首先要过 “启动” 这一关。

惭愧。。。。。
被你一说,我又多了一样任务的样子。。。。
我其实已经不太研究启动一段时间了,自从我的代码被我全部删除以后,
实在提不起精神重来。。。
不过,整合的功底还在,相信如果有需要,还是可以深入一点的。
作者: 不点    时间: 2013-4-26 17:16
我只是发表了自己的看法而已。重在交流。大家可能有不同的认识。无论持有什么看法,互相都是平等的。

我前面的帖子写得很长,主要有两层意思:

1、开发 Linux 的难度高,开发启动软件的难度要低很多。因此,不在乎那多投入的一点点精力。
2、Linux 被启动软件困扰,迫使 Linux 的整合者直接介入启动软件的开发。用户直接向你报告启动时的 bug,而不是向原始的 GRUB2、syslinux 开发团队报告 bug。你可以在启动软件中加入调试信息,一旦出现死机之类的,你就明白问题在哪里了,于是可以很快定位错误。

这就是我的意思。


作者: teasiu    时间: 2013-4-26 18:08
不点 发表于 2013-4-26 17:16
我只是发表了自己的看法而已。重在交流。大家可能有不同的认识。无论持有什么看法,互相都是平等的。

我 ...

启动软件其实已经很成熟了,我只是自己加些心得体会进去而已,只要能帮助大家更易用就行。

linux其实也很成熟了,但是,毕竟用户陌生,所以,我也是做一个领路人。。。。

只是小小的兴趣啊。。。。
作者: shan    时间: 2013-4-26 22:46
第一次接触GRUB2,下载有时间体会如何强大
作者: 2013逗魂    时间: 2013-4-26 23:21
多谢分享
作者: fangming202    时间: 2013-4-27 12:42
下载折腾折腾,
作者: 2013Ron    时间: 2013-4-28 09:16
看起来挺不错的!
作者: ruixing    时间: 2013-4-29 13:32
用GRUB2启动U盘,成功率高吗?
作者: teasiu    时间: 2013-4-29 23:55
ruixing 发表于 2013-4-29 13:32
用GRUB2启动U盘,成功率高吗?

目前我没有试过启动不了的。

应该说绝大多数的主板和USB驱动盘都支持吧。
作者: ruixing    时间: 2013-5-2 19:49
2010teasiu 发表于 2013-4-29 23:55
目前我没有试过启动不了的。

应该说绝大多数的主板和USB驱动盘都支持吧。

电脑认U盘为ZIP模式,不能启动,能改进制作程序,无论U被认作是HDD,还是ZIP都能启动。
作者: 2013风之潮    时间: 2013-5-2 21:22
进来瞧瞧!
作者: hero8000    时间: 2013-5-3 09:26
支持一下 神雕
作者: M    时间: 2013-5-7 21:50
这个是不是linux专用呀?
作者: 2012levis50515    时间: 2013-5-7 22:30
真的是太感謝了,有如天降甘霖,如大大所說GRUB2會是趨勢因為他直接支援UEFI~詳盡的解說,收下了~
作者: LOVPE    时间: 2013-5-27 16:24
资源下不来,不知如何。
第一枚与第二枚从图上看一个是磁盘版一个是USB版
不懂,继续XORLDR
作者: xyxb    时间: 2013-5-28 08:19

作者: xsqgzj    时间: 2013-7-16 11:13
楼主辛苦啦,赞一个!
作者: mzchc    时间: 2014-1-17 00:11
真的不错
作者: twomax    时间: 2014-1-20 11:44
本帖最后由 twomax 于 2014-1-20 11:45 编辑

想請教一下,想加入一個img檔
己做好usb碟,在目錄中加了一個memdisk資料夾,存放一個ATIH2014b6614TW64.IMA
改好gurb.cfg
==============================
menuentry "ATIH2014b6614TW64.IMA"     --class windows {
        set root='(hd0,1)'
        linux16 /memdisk img raw
        initrd16 /AATIH2014b6614TW64.IMA
}
===========================================
測試時出現錯誤如下:
http://bbs.c3.wuyou.net/forum.php?mod=attachment&aid=MTg3NTQ2fDU2MWUwN2NmZmM2ZmQyZGEyMzkxYjlhMDA5ZmNhYzA0fDE3NTMyNTQzNDI%3D&request=yes&_f=.jpg
http://bbs.c3.wuyou.net/forum.php?mod=attachment&aid=MTg3NTQ3fGFjNDlkMjhmZjgwNmFiZDg3ZDZiNDI4ZDZkZGEwOTZmfDE3NTMyNTQzNDI%3D&request=yes&_f=.jpg

2.jpg (42.29 KB, 下载次数: 168)

2.jpg

1.jpg (57.94 KB, 下载次数: 164)

1.jpg

作者: qj_tzy    时间: 2014-2-6 22:39
teasiu 发表于 2013-4-19 21:16
第2枚 syslinux
其实这2枚是可以合并在一起的,只要加上判断语句就可以做到1个安装器里面,
但是为了方便 ...

楼主在1、2楼提供的下载点只能下载一个网址,再打开该网站时已无法打开网页。
作者: 1035111522    时间: 2014-2-7 19:44

试试看怎样
作者: mzchc    时间: 2014-2-9 10:17
非常的感谢~!一定要支持你一下!
作者: 2012daijun5109    时间: 2014-2-10 14:31
谢谢分享,大力支持
作者: msdragon    时间: 2014-2-24 08:18
谢谢雕侠精心制作!
作者: mzchc    时间: 2015-4-15 00:28
这个我真的必须支持你了~!我顶

作者: jszfh    时间: 2015-4-15 08:04
嗯。。我表示关注
作者: yonggang    时间: 2015-4-22 16:50
神雕再现,这个要支持!
作者: 光辉岁月    时间: 2015-5-17 18:39
不错



作者: 2013york    时间: 2015-6-16 23:29
感谢大侠分享!!!
作者: h163    时间: 2015-6-20 10:03
很好!无私的奉献!


作者: boy6585948    时间: 2015-6-26 22:58
建议LZ把项目在Github上做个备份,谷歌访问有压力啊!!!速度太慢了!!!
作者: hehh2015    时间: 2015-12-23 17:26
感谢神雕大侠了!
作者: devilma    时间: 2016-2-15 09:23
应该更新一下了……
作者: xygds    时间: 2016-2-15 20:37
谢谢 看看
作者: hy923923    时间: 2016-3-23 04:56

感谢大侠分享
作者: junyu    时间: 2016-8-11 13:20
下载不了了,更新一下吧。
作者: rengrancunzai    时间: 2016-8-11 13:40
一个字,牛
作者: martn    时间: 2017-12-20 01:07
谷歌的文件下不了呀!
作者: 沧海一笑    时间: 2018-8-3 09:07
神雕大侠非同凡响,大侠神作惊天动地。大侠请教[原创] 【2017.12.16】启动U盘简单手动制作BIOS+UEFI的syslinux/grub/boomgr/grub2互转这个帖子的方法能不能用大侠的NSIS实现呢?个人认为上贴是最好的U盘启动,我只会手动。如果大侠的编程做出上贴中U盘启动方法,或是U盘启动研究的一个小小的波澜。楼主不必上心,有闲暇时间看下就好。
作者: martn    时间: 2018-10-6 21:19
谷歌上不去呀,哪位百度转发下呢!!
作者: 银老板    时间: 2019-10-19 18:19
看的有点迷糊,还是谢谢大佬的教程
作者: 2010up    时间: 2019-11-6 20:29
PXE引导选择菜单 GRUB2 如何写好呢?
作者: 创新科技2015    时间: 2019-12-31 11:55
赞一个!
作者: martn    时间: 2020-4-4 20:29
都被墙了的地址!




欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3