USB 隨身碟

  1. 安裝 syslinux 套件
    yum install syslinux
    
  2. 建立 USB 開機分割區
    1. 先確定隨身碟掛載位置,假設是 /dev/sdh。
      fdisk /dev/sdh -uc
      
    2. 進入 fdisk 工作畫面後,輸入 n p 1 Enter +2G a 1 p w
      +2G 為分割區大小,可依自己需要變化
      a 為設定該分割區為可開機磁區
    3. 增加分割區地圖
      kaprtx -av /dev/sdh1
      
  3. 複製開機記錄(MBR)至 USB 隨身碟
    dd if=/usr/share/syslinux/mbr.bin of=/dev/sdh
    
  4. 格式化 USB 隨身碟:分割區不使用日誌檔案格式,故格式化為 ext2。
    mkfs.ext2 -m 0 -L "Custom Boot" /dev/sdh1
    
  5. 掛載 USB 隨身碟
    1. 建立隨身碟掛載目錄,假設是 /mnt/usb
      mkdir /mnt/usb
      
    2. 掛載
      mount /dev/sdh1 /mnt/usb
      
  6. 複製 iso 至 USB 隨身碟
    1. 如何已經製作好 iso,假設是 crt.iso
      cp crt.iso /mnt/usb
      
    2. 沒有 iso,先改變工作目錄至安裝資料所在目錄,假設工作目錄為 /usr/src/usb,再製作 iso。
      mkisofs -o /mnt/usb/crt.iso -b isolinux/isolinux.bin \
       -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 \
       -boot-info-table -R -J -v -T /usr/src/usb
      
  7. 複製開機安裝所需檔案至 USB 隨身碟
    cp -a images /mnt/usb
    cp -a isolinux /mnt/usb
    cp -a .treeinfo /mnt/usb
    cp -a .discinfo /mnt/usb
    cp -a LiveOS /mnt/usb  ## CentOS 7
    
  8. 變更開機安裝設定檔名稱
    1. CentOS 6
      cd /mnt/usb
      mv isolinux extlinux
      cd extlinux
      mv isolinux.cfg extlinux.conf
      
    2. CentOS 7
      cd /mnt/usb
      mv isolinux syslinux
      cd syslinux
      mv isolinux.bin syslinux.bin
      mv isolinux.cfg syslinux.cfg
      
  9. 修改 USB 隨身碟開機設定檔
    # 重點為自動安裝檔的位置 ks= ,及安裝套件庫的位置 repo=
    # 此例子 hd:UUID='xxxxxxxxx' 指的是隨身碟本身
    # 分割區 UUID 查詢可用 blkid /dev/sdh1
    
    1. CentOS 6
      label crt
        menu label Install ^Certification system
        menu default
        kernel vmlinuz
        append load_ramdisk=1 initrd=initrd.img \
      	ks=hd:UUID="ef08a3ae-eb70-4a55-a31e-e68cdcceaec9":/extlinux/crt-ks.cfg \
      	repo=hd:UUID="ef08a3ae-eb70-4a55-a31e-e68cdcceaec9":/centos6
      
    2. CentOS 7 (使用 UUID 時不要雙引號括起號)
        menu label ^Install CentOS 7 ELK Server-1
        menu default
        kernel vmlinuz
        append initrd=initrd.img inst.stage2=hd:LABEL=Custom\x20Boot:/ 
      	inst.repo=hd:LABEL=Custom\x20Boot:/ inst.ks=hd:LABEL=Custom\x20Boot:/add/elk-ks.cfg
      
        menu label ^Install CentOS 7 ELK Server-2
        menu default
        kernel vmlinuz
        append initrd=initrd.img inst.stage2=hd:UUID=cf08b4eb-559c-4971-beb1-811ed1533d9b:/ 
      	inst.repo=hd:UUID=cf08b4eb-559c-4971-beb1-811ed1533d9b:/ 
      	inst.ks=hd:UUID=cf08b4eb-559c-4971-beb1-811ed1533d9b:/add/elk-ks.cfg
      
  10. 安裝開機管理程式至 USB 隨身碟
    extlinux -i /mnt/usb/
    
  11. 以上動作多數在 cache 中,尚未寫入 USB 隨身碟,執行 sync 同步兩者資料
    sync
    
  12. 卸載 USB 隨身碟
    umount /mnt/usb