Red Hat Training

A Red Hat training course is available for Red Hat Satellite

章 9. 開機裝置

自動化安裝程序(或 kickstart)是有效率的系統佈建中,不可或缺的一環。本章詳述了如何準備不同類型的開機裝置,以使用於欲 kickstart 的客戶端。
欲取得使用 kickstart 佈建上的相關資訊,請參閱《RHN 衛星伺服器入門指南》。
若要建立開機裝置,您必須擁有 RHEL 的光碟開機映像檔 boot.iso。請確認此映像檔位於系統上,並記得它的所在位置。

過程 9.1. CD 開機媒介

注意

下列的反斜線「\」代表 shell 提示中,一行指令的延續。
  1. 為開機映像檔建立工作目錄:
    mkdir -p temp cd/isolinux
    
  2. 將開機映像檔掛載至 temp 目錄中:
    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 檔案複製至光碟:
    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 中的任何開機參數和目標。
  9. 將詳細資料燒入至光碟中,以完成程序。

過程 9.2. PXE 開機

  1. 為開機映像檔建立工作目錄:
    mkdir -p temp pxe/pxelinux.cfg
    
  2. 將開機映像檔掛載至 temp 目錄中:
    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 身份(進行最重要的部份所需)使用這些指令時,請格外小心。這些指令會存取裝置檔案,若錯誤使用它們的話,可能會造成無法挽救的系統損毀。下列範例使用了 /dev/loop0 來進行掛載,請確認您使用了適合您系統的正確裝置。您可透過使用 losetup -f 指令,來檢查哪個裝置是正確的。
  1. 為開機映像檔建立工作目錄:
    mkdir -p temp usb/extlinux
    
  2. 將開機映像檔掛載至 temp 目錄中:
    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. 找出 loopback 裝置的正確掛載位置:
    losetup -f
    /dev/loop0
    
    以開機映像設定 loopback 裝置:
    losetup /dev/loop0 ./custom-boot.img
    
  11. 開啟 fdisk 工具程式:
    fdisk /dev/loop0
    
    在裝置上建立一個主要開機分割區。這可透過下列按鍵組合來達成:n p 1 Enter Enter a 1 p w
  12. 將 master boot record(MBR)複製至 loopback 裝置:
    dd if=/usr/lib/syslinux/mbr.bin of=/dev/loop0
    
  13. 將分割區對映新增至 loopback 裝置:
    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. 刪除 loopback 裝置上的分割區對映:
    kpartx -dv /dev/loop0
    
  21. 刪除 loopback 裝置:
    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