无忧启动论坛

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

[原创] USB启动安装器 2枚 (GRUB2+Syslinux)经典再现

    [复制链接]
跳转到指定楼层
1#
发表于 2013-4-19 21:16:15 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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, 下载次数: 377)

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


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

评分

参与人数 16无忧币 +72 收起 理由
879792799 + 5 老雕大大辛苦了!
KURTWONG + 5 赞一个!
oldking + 5 赞一个!
小贝贝 + 5
saintbird + 5 很给力!
boy6585948 + 4 很给力!
zhanguser + 5 很给力!
ydsse + 5 神马都是浮云
colorain + 5 很给力!
2012wuyuvl + 5 赞一个!
qq296015668 + 1 很给力!
2012忘乎所以 + 5 赞一个!
wonggo + 5 很给力!
2011cwj6958 + 5 很给力!
hero8000 + 2 赞一个!
yesfei + 5 很给力!

查看全部评分

推荐
发表于 2013-4-19 22:37:27 | 只看该作者
2010teasiu 发表于 2013-4-19 21:16
(占位编辑中,请勿回复)
(占位编辑中,请勿回复)

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

使用道具 举报

推荐
 楼主| 发表于 2013-4-19 21:16:45 | 只看该作者
本帖最后由 2010teasiu 于 2013-4-20 05:37 编辑

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






http://code.google.com/p/linux-p ... ail?name=tazusb.exe

点评

楼主在1、2楼提供的下载点只能下载一个网址,再打开该网站时已无法打开网页。  详情 回复 发表于 2014-2-6 22:39
回复

使用道具 举报

3#
发表于 2013-4-19 22:13:41 | 只看该作者
看看
回复

使用道具 举报

4#
发表于 2013-4-19 22:26:04 | 只看该作者
LZ辛苦了!没有下载文件????
回复

使用道具 举报

6#
发表于 2013-4-19 23:45:27 | 只看该作者
下载地址呢?
回复

使用道具 举报

7#
发表于 2013-4-20 16:35:00 | 只看该作者
谢谢 看看
回复

使用道具 举报

8#
发表于 2013-4-20 20:54:08 | 只看该作者
感谢神雕大侠了!
回复

使用道具 举报

9#
发表于 2013-4-20 21:36:46 | 只看该作者
这个特好奇了,下载折腾折腾,
回复

使用道具 举报

10#
发表于 2013-4-20 23:31:55 | 只看该作者


神雕大侠出现,江湖又将掀起一阵腥风血雨。
回复

使用道具 举报

11#
发表于 2013-4-21 21:36:49 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

12#
发表于 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 的整合者有必要介入启动程序的开发,把启动程序纳入管理。

回复

使用道具 举报

13#
发表于 2013-4-23 12:39:18 | 只看该作者
谢谢楼主分享
回复

使用道具 举报

14#
 楼主| 发表于 2013-4-26 13:41:37 | 只看该作者
不点 发表于 2013-4-21 23:03
操作系统的发行者、整合者,必须连同启动程序一起 “整” 才行。

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

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

使用道具 举报

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

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

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

这就是我的意思。

回复

使用道具 举报

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

我 ...

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

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

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

使用道具 举报

17#
发表于 2013-4-26 22:46:35 | 只看该作者
第一次接触GRUB2,下载有时间体会如何强大
回复

使用道具 举报

18#
发表于 2013-4-26 23:21:24 | 只看该作者
多谢分享
回复

使用道具 举报

19#
发表于 2013-4-27 12:42:33 | 只看该作者
下载折腾折腾,
回复

使用道具 举报

20#
发表于 2013-4-28 09:16:41 | 只看该作者
看起来挺不错的!
回复

使用道具 举报

21#
发表于 2013-4-29 13:32:45 | 只看该作者
用GRUB2启动U盘,成功率高吗?
回复

使用道具 举报

22#
 楼主| 发表于 2013-4-29 23:55:13 | 只看该作者
ruixing 发表于 2013-4-29 13:32
用GRUB2启动U盘,成功率高吗?

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

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

使用道具 举报

23#
发表于 2013-5-2 19:49:02 | 只看该作者
2010teasiu 发表于 2013-4-29 23:55
目前我没有试过启动不了的。

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

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

使用道具 举报

24#
发表于 2013-5-2 21:22:43 | 只看该作者
进来瞧瞧!
回复

使用道具 举报

25#
发表于 2013-5-3 09:26:51 | 只看该作者
支持一下 神雕
回复

使用道具 举报

M
26#
发表于 2013-5-7 21:50:01 | 只看该作者
这个是不是linux专用呀?
回复

使用道具 举报

27#
发表于 2013-5-7 22:30:23 | 只看该作者
真的是太感謝了,有如天降甘霖,如大大所說GRUB2會是趨勢因為他直接支援UEFI~詳盡的解說,收下了~
回复

使用道具 举报

28#
发表于 2013-5-27 16:24:05 | 只看该作者
资源下不来,不知如何。
第一枚与第二枚从图上看一个是磁盘版一个是USB版
不懂,继续XORLDR
回复

使用道具 举报

29#
发表于 2013-5-28 08:19:31 | 只看该作者
回复

使用道具 举报

30#
发表于 2013-7-16 11:13:56 | 只看该作者
楼主辛苦啦,赞一个!
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-27 09:48

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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