Red Hat Training

A Red Hat training course is available for Red Hat Satellite

第 9 章 引导设备

自动安装(或者 kickstart)是有效系统供应的重要组成部分。本章论述了如何为 kickstart 客户端准备不同类型的引导介质。
有关使用 kickstart 供应的详情请参考《RHN Satellite 服务器入门指南》
要创建引导设备,红帽企业版 Linux CD 引导映像 boot.iso 是必要条件。请确定系统中有这个映像,并记录其位置。

过程 9.1. CD 引导介质

注意

以下使用的反斜杠 "\" 表示在 shell 提示符后连续的一行。
  1. 为引导映像生成工作目录:
    mkdir -p temp cd/isolinux
    
  2. 将该引导映像挂载到 boot.iso 目录:
    mount -o loop boot.iso temp
    
  3. 为 CD 引导介质设备将所需文件复制到上一步生成的目录中:
    cp -aP temp/isolinux/* cd/isolinux/
    
  4. 卸载 temp 目录并将 cd 目录权限改为用户可读取、写入:
    umount temp
    chmod -R u+rw cd
    
  5. 进入 ./cd 目录:
    cd ./cd
    
  6. /usr/lib/syslinux/menu.c32 文件复制到 CD 中:
    cp -p /usr/lib/syslinux/menu.c32 isolinux
    
  7. 使用您喜欢的文本编辑器打开 isolinux/isolinux.cfg 文件,并添加以下行:
    mkisofs -o ./custom-boot.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot \
      -boot-load-size 4 -boot-info-table -J -l -r -T -v -V "Custom RHEL Boot" .
    
  8. isolinux.cfg 文件中自定义 CD 引导所需的引导参数和对象。
  9. 将详细内容刻录到 CD 中完成此流程。

过程 9.2. PXE 引导

  1. 为引导映像生成工作目录:
    mkdir -p temp pxe/pxelinux.cfg
    
  2. 将该引导映像挂载到 boot.iso 目录:
    mount -o loop boot.iso temp
    
  3. 为 PXE 引导设备将所需文件复制到上一步生成的目录中:
    cp -aP temp/isolinux/* pxe/
    
  4. 卸载 temp 目录并将 cd 目录权限改为用户可读取、写入:
    umount temp
    chmod -R u+rw pxe
    
  5. 进入 /pxe 目录:
    cd ./pxe
    
  6. /usr/lib/syslinux/menu.c32 文件复制到 /pxe 目录中:
    cp -p /usr/lib/syslinux/menu.c32 .
    
  7. isolinux.cfg 文件移动到 pxelinux.cfg/default 中:
    mv isolinux.cfg pxelinux.cfg/default
    
  8. 删除临时文件:
    rm -f isolinux.bin TRANS.TBL
    
  9. /usr/lib/syslinux/pxelinux.0 文件复制到 /pxe 目录中:
    cp -p /usr/lib/syslinux/pxelinux.0 .
    
  10. 使用您喜欢的文本编辑器打开 pxelinux.cfg/default 文件,并为 PXE 引导自定义所有引导参数和对象。

过程 9.3. USB 引导介质

警告

作为 root 用户执行这些命令时要格外小心(大多数关键部分需要成为 root 用户)。这些命令可访问设备文件,如果使用不当会对您的系统造成无法挽回的损害。以下示例使用 /dev/loop0 挂载,请确定为您的系统使用正确的设备。您可以使用 losetup -f 命令结果查看哪个是正确的设备。
  1. 为引导映像生成工作目录:
    mkdir -p temp usb/extlinux
    
  2. 将该引导映像挂载到 boot.iso 目录:
    mount -o loop boot.iso temp
    
  3. 为 USB 介质引导设备将所需文件复制到上一步生成的目录中:
    cp -aP temp/isolinux/* usb/extlinux/
    
  4. 卸载 temp 目录并将 cd 目录权限改为用户可读取、写入:
    umount temp
    chmod -R u+rw usb
    
  5. 进入 /usb 目录:
    cd ./usb
    
  6. /usr/lib/syslinux/menu.c32 文件复制到 extlinux/ 目录中:
    cp -p /usr/lib/syslinux/menu.c32 extlinux/
    
  7. extlinux/isolinux.cfg 文件移动到 extlinux/extlinux.conf
    mv extlinux/isolinux.cfg extlinux/extlinux.conf
    
  8. 删除临时文件:
    rm -f extlinux/isolinux.bin extlinux/TRANS.TBL
    
  9. 转换 custom-boot.img 文件并复制:
    dd if=/dev/zero of=./custom-boot.img bs=1024 count=30000
    
  10. 为这个回路设备找出正确的挂载点:
    losetup -f
    /dev/loop0
    
    使用引导映像设定回路设备:
    losetup /dev/loop0 ./custom-boot.img
    
  11. 打开 fdisk 程序:
    fdisk /dev/loop0
    
    在该设备中创建主引导分区。您可使用以下按键组合完成此步骤:n p 1 Enter Enter a 1 p w
  12. 将主引导记录(MBR)复制到回路设备中:
    dd if=/usr/lib/syslinux/mbr.bin of=/dev/loop0
    
  13. 在回路设备中添加分区映射:
    kpartx -av /dev/loop0
    
  14. 创建该文件系统:
    mkfs.ext2 -m 0 -L "Custom RHEL Boot" /dev/mapper/loop0p1
    
  15. 挂载该设备:
    mount /dev/mapper/loop0p1 temp
    
  16. 删除临时文件:
    rm -rf temp/lost+found
    
  17. extlinux/ 目录复制到临时位置:
    cp -a extlinux/* temp/
    
  18. 在临时位置安装引导装载程序:
    extlinux temp
    
  19. 卸载临时位置:
    umount temp
    
  20. 在回路设备中删除分区映射:
    kpartx -dv /dev/loop0
    
  21. 删除该回路:
    losetup -d /dev/loop0
    
    同步该文件系统更改:
    sync
    
  22. 使用您喜欢的文本编辑器打开 extlinux.conf 文件,并为 USB 引导自定义所有引导参数和对象。
  23. 将该映像传送到 USB 设备中以完成此流程。插入该设备,并运行 dmesg 命令检查挂载位置。在这个示例中它是 /dev/sdb
    卸载 USB 设备:
    umount /dev/sdb
    
    将该映像复制到 USB 设备中:
    dd if=./custom-boot.img of=/dev/sdb