这里所说的Grub和上文中说的Grub for DOS是不一样的,上文的Grub跟磁盘的第一扇区没有关系,即是说,如果你把上面C盘里grub目录删除,不会影响你的系统启动。我下面讲的Grub却会把一部分代码写到磁盘的第一扇区上,即会写到主引导纪录MBR中。
1 Grub 命令行代码分两部分,一部分写入第一扇区的主引导纪录MBR中,另一部分驻留在磁盘的某一固定位置。
2 Grub 命令行工作过程。计算机启动后,BOIS先做自检等工作,然后BOIS会加载磁盘的第一扇区(512字节)到内存某处,然后跳转到该处执行代码,这段代码就是上面所说的Grub写入MBR的部分,这段代码有Grub第二部分在磁盘上的位置信息,这段代码就是根据此信息加载第二部分,第二部分才是Grub的核心,第二部分会读取/boot/grub/grub.conf配置文件,然后根据此配置文件弹出用户界面,你看到的那些菜单选择项就是这么来的,当然,你也可以按字母键‘C’进入命令行方式。
3 如上所说,你的机器上的各操作系统的信息是写入配置文件grub.conf的,如果你的配置文件不正确,grub当然找不到你想起动的操作系统了,此时需要你手工启动。例如你因为在Windows里格式化某盘(或别的原因),结果重启机器后grub漂亮的界面不见了,只留下陌生的提示符“grub>”,别慌,你可以用命令来启动你的操作系统。
从Grub 命令行启动Windows:
grub>root (hd0, 0)
grub>chainloader +1
grub>boot
从Grub 命令行启动Fedora Core2(假设装在/dev/hda7上):
grub>kernel (hd0, 6)/boot/vmlinuz-2.6.5-1.385.img root=/dev/hda7
grub>initrd (hd0, 6)/boot/initrd-2.6.5-1.385.img
grub>boot
从命令行启动Debian和启动Fedora Core2类似。
说明:如果你通过分区软件调整了分区的大小,鬼知道会有什么结果我没试过,从理论上说你玩完了,因为Grub的第一部分中的关于第二部份的地址信息会失效,结果Grub的核心加载不了了!
4 你以后可以使用同样的方法来启动系统,如果感到不爽,想要菜单,那就修改你的/boot/grub/grub.conf文件吧。现在机器已经跑起来了,具体过程就上网找别的文章看看,很容易的。
【编辑推荐】
- Ubuntu GRUB非常优秀的系统引导器
- Ubuntu GRUB開機選項修改
- Ubuntu grub利用安装光盘硬盘安装ISO文件
- Linux rescuev修复模式跨越控制台登录
- Linux rescue单用户模式修复模式