PC3000 军达成数据恢复论坛

标题: 用U盘grub引导多系统经验 [打印本页]

作者: 军达成    时间: 2011-8-22 15:16:30     标题: 用U盘grub引导多系统经验

最先接触到用grub引导系统时应该说是linux升级后改menu.lst来启用新的内核。当时也只是对grub有很少的了解,更准确的称呼应该是叫GNU GRUB,并不是这里介绍的grub4dos。最近帮朋友弄电脑时接触到windows的系统引导工具ntldr丢失的问题,当时没有解决,所以重装了系统,浪费了我一下午的时间在网络上找驱动(特别是ATI显卡驱动,试了好多个)。后来就对系统引导做了一点点学习。

grub4dos是国人开发的,论坛上戏称“不点大师”,而GNU GRUB是GNU的一个子项目,都是用于引导多系统启动。GNU GRUB是安装在MBR(或PBR)中,分为stage1,stage1_5,stage2等阶段,所以安装好了GNU/linux后重装windows只要修复MBR就可以恢复grub引导多系统了。

grub4dos较之则更为强大,当然也可以将其写入MBR或PBR,可以在DOS下运行grub.exe,也可以用其它引导程序加载。它可以引导存在于软盘,光盘,硬盘上的系统,以及软盘镜像IMG,光盘镜像ISO,硬盘镜像DSK。

下面就说说我在U盘上使用grub4dos的经验。

1,首先下载DOS系统常用文件io.sys,msdos.sys,command.com,autoexec.bat等,可以下个DOS软盘镜像,用UltraISO提取上面这些文件到一个目录中备用,下载HP的一个格式化U盘工具,将它格式化成DOS可启动盘。格式化后,U盘就成为模拟硬盘。

注:不要用网络上流传的USBOOT,经我测试它很不稳定。

2,下载grub4dos,把它解压放在U盘\boot\grub下,

3,编辑\autoexec.bat,加入

PATH=c:\boot\grub;c:\
grub --config-file=boot\grub\menu.lst

注意不要改变上面这些文件的属性,不然DOS系统性会提示找不到这些文件。

4,编辑\boot\grub个的menu.lst,加入你想引导的系统

## Grub menu

timeout 10
default 0

# title CDROM
# cdrom --init
# map --hook
# chainloader (cd0)
# rootnoverify (cd0)

title USB MS-DOS 7.10
root (hd0,0)
kernel /boot/dos/memdisk.gz
initrd /boot/dos/mydos.img
boot

title USB Ubuntu 8.04 i386
root (hd0,0)
kernel /casper/vmlinuz boot=casper find_iso=ubuntu-8.04-desktop-i386.iso noapic
initrd /casper/initrd.gz
boot

# title HDD Ubuntu 8.04 x86_64 liveCD
# root (hd1,0)
# kernel /vmlinuz boot=casper find_iso=/ubuntu-8.04-desktop-amd64.iso noapic
# initrd /initrd.gz
# boot

title HDD Ubuntu 8.04 x86_64
root (hd1,7)
kernel /boot/vmlinuz-2.6.24-21-generic root=UUID=1002154f-3f6c-4524-982b-052fe4d06525 ro quiet
initrd /boot/initrd.img-2.6.24-21-generic
quiet
boot

title HDD Microsoft Windows XP Professional
map (hd1) (hd0)
root (hd1,0)
makeactive
chainloader +1
boot

title Shutdown
halt

title Reboot
reboot

上面是我的menu菜单,可见让它可以引导我USB上的DOS,ubuntu livecd和硬盘上的ubuntu,windows xp。让人恼火的是windows这个系统很霸道,一定要放在活动硬盘主分区上才能引导,所以这里多了map模拟语句,详细的语句介绍见下面的网页,我可是找了好久才找到。

当然也可以将它写入U盘MBR,但是写入后grldr会在所有硬盘的/,/boot/grub/等目录下找menu.lst文件,而我的硬盘C盘根目录下也有menu.lst,为免grldr找错,所以用DOS下引导方式。当然也可以修改grldr来改变默认的查找路径,像矮人DOS就是这样子的。

目前有一个问题没有解决,我在测试的时候想直接在DOS下编辑文件,所以把c:\windows\system32\edit.exe放在DOS里了,但装入运行时总是提示:

program too big to fit in memory.

但是不能够啊,我用mem查没有用的常规内存还有600K呢,一个edit.exe才不到60K。这是怎么回事呢?

关于grub4dos的详细手册,也有chm版下载。
http://diddy.boot-land.net/grub4dos/Grub4dos.htm
也可以看看sourceforge上的tutorial,总结得不错。
http://grub4dos.sourceforge.net/wiki/
下载 grub4dos 和其它工具

http://download.gna.org/grub4dos/
http://download.gna.org/grubutil/


作者: yI首简单歌    时间: 2023-7-27 15:23:19

学习学习,感谢分享,谢谢




欢迎光临 PC3000 军达成数据恢复论坛 (http://www.jundacheng.com/bbs/) Powered by Discuz! X2