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 提示中,一行指令的延續。
- 為開機映像檔建立工作目錄:
mkdir -p temp cd/isolinux
- 將開機映像檔掛載至
temp
目錄中:mount -o loop boot.iso temp
- 將 CD 開機媒介裝置所需的檔案,複製至先前建立的目錄中:
cp -aP temp/isolinux/* cd/isolinux/
- 將
temp
目錄卸載,並將cd
目錄上的使用者權限更改為可讀寫:umount temp chmod -R u+rw cd
- 切換至
./cd
目錄:cd ./cd
- 將
/usr/lib/syslinux/menu.c32
檔案複製至光碟:cp -p /usr/lib/syslinux/menu.c32 isolinux
- 使用您偏好的文字編輯器開啟
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" .
- 視光碟開機所需,自訂化
isolinux.cfg
中的任何開機參數和目標。 - 將詳細資料燒入至光碟中,以完成程序。
過程 9.2. PXE 開機
- 為開機映像檔建立工作目錄:
mkdir -p temp pxe/pxelinux.cfg
- 將開機映像檔掛載至
temp
目錄中:mount -o loop boot.iso temp
- 將 PXE 開機裝置所需的檔案複製至先前建立的目錄中:
cp -aP temp/isolinux/* pxe/
- 將
temp
目錄卸載,並將cd
目錄上的使用者權限更改為可讀寫:umount temp chmod -R u+rw pxe
- 切換至
/pxe
目錄:cd ./pxe
- 將
/usr/lib/syslinux/menu.c32
檔案複製至/pxe
目錄中:cp -p /usr/lib/syslinux/menu.c32 .
- 將
isolinux.cfg
檔案移至pxelinux.cfg/default
:mv isolinux.cfg pxelinux.cfg/default
- 移除暫時性的檔案:
rm -f isolinux.bin TRANS.TBL
- 將
/usr/lib/syslinux/pxelinux.0
檔案複製至/pxe
目錄中:cp -p /usr/lib/syslinux/pxelinux.0 .
- 在您偏好的文字編輯器中開啟
pxelinux.cfg/default
檔案,並視 PXE 開機的需求,自訂任何開機參數和目標。
過程 9.3. USB 開機媒介
警告
當以 root 身份(進行最重要的部份所需)使用這些指令時,請格外小心。這些指令會存取裝置檔案,若錯誤使用它們的話,可能會造成無法挽救的系統損毀。下列範例使用了
/dev/loop0
來進行掛載,請確認您使用了適合您系統的正確裝置。您可透過使用 losetup -f
指令,來檢查哪個裝置是正確的。
- 為開機映像檔建立工作目錄:
mkdir -p temp usb/extlinux
- 將開機映像檔掛載至
temp
目錄中:mount -o loop boot.iso temp
- 將 USB 媒介開機裝置所需的檔案複製至先前建立的目錄中:
cp -aP temp/isolinux/* usb/extlinux/
- 將
temp
目錄卸載,並將cd
目錄上的使用者權限更改為可讀寫:umount temp chmod -R u+rw usb
- 切換至
/usb
目錄:cd ./usb
- 將
/usr/lib/syslinux/menu.c32
檔案複製至extlinux/
目錄:cp -p /usr/lib/syslinux/menu.c32 extlinux/
- 將
extlinux/isolinux.cfg
檔案移至extlinux/extlinux.conf
:mv extlinux/isolinux.cfg extlinux/extlinux.conf
- 移除暫時性的檔案:
rm -f extlinux/isolinux.bin extlinux/TRANS.TBL
- 轉換
custom-boot.img
檔案並將它複製:dd if=/dev/zero of=./custom-boot.img bs=1024 count=30000
- 找出 loopback 裝置的正確掛載位置:
losetup -f /dev/loop0
以開機映像設定 loopback 裝置:losetup /dev/loop0 ./custom-boot.img
- 開啟
fdisk
工具程式:fdisk /dev/loop0
在裝置上建立一個主要開機分割區。這可透過下列按鍵組合來達成:n p 1 Enter Enter a 1 p w - 將 master boot record(MBR)複製至 loopback 裝置:
dd if=/usr/lib/syslinux/mbr.bin of=/dev/loop0
- 將分割區對映新增至 loopback 裝置:
kpartx -av /dev/loop0
- 建立檔案系統:
mkfs.ext2 -m 0 -L "Custom RHEL Boot" /dev/mapper/loop0p1
- 掛載裝置:
mount /dev/mapper/loop0p1 temp
- 刪除暫時性的檔案:
rm -rf temp/lost+found
- 將
extlinux/
目錄複製至暫時的位置上:cp -a extlinux/* temp/
- 在暫時性的位置上安裝開機載入程式:
extlinux temp
- 卸載暫時性的位置:
umount temp
- 刪除 loopback 裝置上的分割區對映:
kpartx -dv /dev/loop0
- 刪除 loopback 裝置:
losetup -d /dev/loop0
同步檔案系統變更:sync
- 請在您偏好的文字編輯器中開啟
extlinux.conf
檔案,並視 USB 開機的需求,自訂任何開機參數和目標。 - 將映像檔傳送至一個 USB 裝置,以完成程序。請輸入裝置,並執行
dmesg
指令來檢查掛載位置。在此範例中為/dev/sdb
。卸載 USB 裝置:umount /dev/sdb
將映像複製至 USB 裝置:dd if=./custom-boot.img of=/dev/sdb