您全新的 LFS 系统差不多要完成了,最后要做的事情是确保系统可以正确的启动。下面的指令仅适用于 IA-32 架构的计算机,就是主流的 PC 机。关于其它架构计算机“boot loading”(引导装载)的信息可以在相应的资源里找到。
引导装载是很复杂的,因此下面有几个警告。您需要熟悉当前的引导装载程序,以及硬盘上需要引导的其它操作系统。准备一张紧急启动盘,以便在计算机不可用(无法启动)的时候修复它。
先前我们编译安装了 Grub 引导装载程序,是为了现在这一步做准备,接下来的步骤要在硬盘的特殊位置写入一些特殊的 Grub 文件。我们强烈推荐您创建一张 Grub 引导软盘作为备份,插入一张空白软盘并输入下面的命令:
dd if=/boot/grub/stage1 of=/dev/fd0 bs=512 count=1 dd if=/boot/grub/stage2 of=/dev/fd0 bs=512 seek=1
取出软盘放在安全的地方,现在运行 grub shell :
grub
Grub 有自己的驱动器和分区命名结构,形式是 (hdn,m),这里 n 是硬盘驱动器号, m 是分区号,两个数字都从零开始。例如,hda1 分区对 Grub 是 (hd0,0) ; hdb3 是 (hd1,2)。与 Linux 不同,Grub 不把光盘驱动器作为硬盘驱动器。例如您的 hdb 是光盘驱动器,第二个硬盘驱动器是 hdc,对于 Grub 来说,第二个硬盘驱动器仍然是 (hd1)
用上面的信息为根分区(或是 boot 分区,如果您使用了单独的 boot 分区的话)确定正确的标志符,下面的例子里假定根分区(或单独的 boot 分区)是 hda4
告诉 Grub 在哪里搜索它的 stage{1,2}文件。您也可以在任何地方使用 Tab 键让 Grub 显示可选择的项:
root (hd0,3)
下一个命令会覆盖当前的引导装载程序,如果不需要的话就不要运行这个命令,例如在用第三方引导管理器管理 MBR(Master Boot Record 主引导记录)的时候,这种情况下,把 Grub 安装到 LFS 分区的“引导扇区”可能更有意义,这时下一个命令就要变成 setup (hd0,3)
把 Grub 安装到 hda 的 MBR 里:
setup (hd0)
如果一切正常,Grub 会报告在 /boot/grub 里找到了它的文件。这里要做的事情就是这个,退出 grub shell :
quit
创建一个“menu list”文件来定义 Grub 的启动菜单:
cat > /boot/grub/menu.lst << "EOF" # Begin /boot/grub/menu.lst # By default boot the first menu entry. default 0 # Allow 30 seconds before booting the default. timeout 30 # Use prettier colors. color green/black light-green/black # The first entry is for LFS. title LFS 6.1 root (hd0,3) kernel /boot/lfskernel-2.6.11.12 root=/dev/hda4 EOF
如果需要的话,为宿主系统添加一项,它看起来可能是这样的:
cat >> /boot/grub/menu.lst << "EOF" title Red Hat root (hd0,2) kernel /boot/kernel-2.6.5 root=/dev/hda3 initrd /boot/initrd-2.6.5 EOF
如果要引导 Windows,下面的项可以引导 Windows:
cat >> /boot/grub/menu.lst << "EOF" title Windows rootnoverify (hd0,0) chainloader +1 EOF
如果 info grub 没有提供所有必须的资料,关于 Grub 的更多信息可以在它的网站上找到: http://www.gnu.org/software/grub/
FHS 规定 GRUB 的 menu.lst 文件应当链接到 /etc/grub/menu.lst ,为了符合标准,请运行下列命令:
mkdir /etc/grub && ln -s /boot/grub/menu.lst /etc/grub