| 
专业度8659 元宝994679 金钱2035 最后登录2024-5-13注册时间2011-7-5精华3积分1014328阅读权限200帖子281
 
   
 TA的每日心情|  | 慵懒 2013-7-7 17:56:22
 | 
|---|
 签到天数: 5 天 [LV.2]偶尔看看I 金钱2035 元宝994679 专业度8659 
 
  | 
| 最先接触到用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/
 
 
 | 
 |