teasiu 发表于 2013-4-19 21:16:15

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

4、可是使用风格让启动界面更显人性化set theme=/boot/grub/themes/slitaz/theme.txt风格包下载:


5、高级使用方法:
子菜单):submenu "子菜单"
{
   menuentry "子菜单1"
{
    命令
}
menuentry "子菜单2"
{
   命令
}
}
分菜单): menuentry "运行第2张菜单"
{
   configfile "${prefix}/grub2.cfg"
}
自动搜索(检测)功能):
比如说我的grub2.cfg这样写的:
insmod regexp
installation_found=false
#查找电脑中任何一个分区的GRUB2
for ins in (*)/boot/grub/i386-pc/core.img (*)/grub/i386-pc/core.img \
         (*)/boot/grub2/i386-pc/core.img (*)/grub2/i386-pc/core.img \
         (*)/boot/grub/core.img (*)/grub/core.img (*)/boot/grub2/core.img \
         (*)/grub2/core.img; do
regexp --set=1:ins_device '^\((.*)\)/' "$ins"

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

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

http://code.google.com/p/linux-pe/downloads/detail?name=slitaz-usb-installer.exe


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

快雪时晴 发表于 2013-4-19 22:37:27

2010teasiu 发表于 2013-4-19 21:16 static/image/common/back.gif
(占位编辑中,请勿回复)
(占位编辑中,请勿回复)

没搞懂,是同样功能的2个工具,分别GRUB2启动和SYSLINUX启动方式?

teasiu 发表于 2013-4-19 21:16:45

本帖最后由 2010teasiu 于 2013-4-20 05:37 编辑

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






http://code.google.com/p/linux-pe/downloads/detail?name=tazusb.exe

2013柠檬精铃 发表于 2013-4-19 22:13:41

看看http://tpydy.net环太平洋

chzj589 发表于 2013-4-19 22:26:04

LZ辛苦了!没有下载文件????

2010emxl 发表于 2013-4-19 23:45:27

下载地址呢?

爱已上线 发表于 2013-4-20 16:35:00

谢谢 看看

讯极天度 发表于 2013-4-20 20:54:08

感谢神雕大侠了!

fvptk 发表于 2013-4-20 21:36:46

这个特好奇了,下载折腾折腾,

2012jierong312 发表于 2013-4-20 23:31:55



神雕大侠出现,江湖又将掀起一阵腥风血雨。{:3_144:}

翅膀 发表于 2013-4-21 21:36:49

不点 发表于 2013-4-21 23:03:32

本帖最后由 不点 于 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:18

谢谢楼主分享

teasiu 发表于 2013-4-26 13:41:37

不点 发表于 2013-4-21 23:03 static/image/common/back.gif
操作系统的发行者、整合者,必须连同启动程序一起 “整” 才行。

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


惭愧。。。。。
被你一说,我又多了一样任务的样子。。。。
我其实已经不太研究启动一段时间了,自从我的代码被我全部删除以后,
实在提不起精神重来。。。
不过,整合的功底还在,相信如果有需要,还是可以深入一点的。

不点 发表于 2013-4-26 17:16:38

我只是发表了自己的看法而已。重在交流。大家可能有不同的认识。无论持有什么看法,互相都是平等的。

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

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

这就是我的意思。

teasiu 发表于 2013-4-26 18:08:20

不点 发表于 2013-4-26 17:16 static/image/common/back.gif
我只是发表了自己的看法而已。重在交流。大家可能有不同的认识。无论持有什么看法,互相都是平等的。

我 ...

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

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

只是小小的兴趣啊。。。。

shan 发表于 2013-4-26 22:46:35

第一次接触GRUB2,下载有时间体会如何强大

2013逗魂 发表于 2013-4-26 23:21:24

多谢分享

fangming202 发表于 2013-4-27 12:42:33

下载折腾折腾,

2013Ron 发表于 2013-4-28 09:16:41

看起来挺不错的!

ruixing 发表于 2013-4-29 13:32:45

用GRUB2启动U盘,成功率高吗?

teasiu 发表于 2013-4-29 23:55:13

ruixing 发表于 2013-4-29 13:32 static/image/common/back.gif
用GRUB2启动U盘,成功率高吗?

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

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

ruixing 发表于 2013-5-2 19:49:02

2010teasiu 发表于 2013-4-29 23:55 static/image/common/back.gif
目前我没有试过启动不了的。

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

电脑认U盘为ZIP模式,不能启动,能改进制作程序,无论U被认作是HDD,还是ZIP都能启动。

2013风之潮 发表于 2013-5-2 21:22:43

进来瞧瞧!

hero8000 发表于 2013-5-3 09:26:51

支持一下 神雕

M 发表于 2013-5-7 21:50:01

这个是不是linux专用呀?

2012levis50515 发表于 2013-5-7 22:30:23

真的是太感謝了,有如天降甘霖,如大大所說GRUB2會是趨勢因為他直接支援UEFI~詳盡的解說,收下了~

LOVPE 发表于 2013-5-27 16:24:05

资源下不来,不知如何。
第一枚与第二枚从图上看一个是磁盘版一个是USB版
不懂,继续XORLDR

xyxb 发表于 2013-5-28 08:19:31

{:3_144:}{:2_135:}

xsqgzj 发表于 2013-7-16 11:13:56

楼主辛苦啦,赞一个!
页: [1] 2
查看完整版本: USB启动安装器 2枚 (GRUB2+Syslinux)经典再现