4.4. 準備從 USB 隨身碟開機的檔案

您需要一台運行支援 USB 的 GNU/Linux 系統來為 USB 隨身碟準備開機檔案。 您應該確定 usb-storage 核心模組已經被載入 (modprobe usb-storage) 然後嘗試找出 USB 隨身碟被映射到的哪個 SCSI 設備 (在此以 /dev/sda 為例)。為了寫入您的儲存,您可能需要關閉它的防寫保護開關。

注意,USB 隨身碟應該至少有 128MB 的容量 (在更小的大小安裝也是可能的,請參閱 節 4.4.2, "複製檔案 — 靈活的方法")。

4.4.1. 複製檔案 — 簡單的方法

這裡有一個單一檔案 hd-media/boot.img.gz,其中包含了所有的安裝程式文件 (包括核心),以及 SYSLINUX 和它的設定檔案。您只需要把它直接解壓縮到您的 USB 隨身碟內即可:

# zcat boot.img.gz > /dev/sda

當然,這會刪除設備上現存的所有內容,因此請仔細檢查您使用的是正確的 USB 隨身碟設備名稱。

然後,掛載 USB 隨身碟 (mount /dev/sda /mnt),它上面應該已經具有一個 FAT 檔案系統 ,您再將一個 Debian netinst (網路安裝) 或 businesscard (名片型安裝) ISO 映像檔拷貝到隨身碟上。請注意檔案名稱必須以 .iso 結尾。卸載隨身碟 (umount /mnt) 後結束。

4.4.2. 複製檔案 — 靈活的方法

如果您需要更多的靈活性或者只是想瞭解其間發生了什麼,您應該使用下面的方法來把檔案放到您的隨身碟上。

4.4.2.1. Intel x86 上的 USB 隨身碟分割區

我們將展示如何使用隨身碟的第一個分割區,而不是整個設備。

由於大多數 USB 隨身碟預先設置了一個單獨的 FAT16 分割區, 您可能不需要重新分割或者格式化 USB 隨身碟。如果您必須這麼做,請使用 cfdisk 或者其他的分割工具來建立一個 FAT16 分割區並且輸入:

# mkdosfs /dev/sda1

注意使用正確的 USB 隨身碟設備名稱。 mkdosfs 指令包含在 dosfstools Debian 套件中。

為了能在 USB 隨身碟開機後啟動核心,我們要在 USB 隨身碟上放入一個 boot-loader。儘管任何 boot-loader (例如 LILO) 都應該可以勝任這個工作,不過還是使用 SYSLINUX 更方便。主要原因是是它可以使用 FAT16 分割區,而且只需要編輯一個文字檔案就能對其進行設定。任何支援 FAT 檔案系統的操作系統可以用來改變 boot-loader 的設定檔案。

為了把 SYSLINUX 放到您的 USB 隨身碟的 FAT16 分割區上,請在您的系統中安裝 syslinuxmtools 套件,然後執行:

# syslinux /dev/sda1

再提醒一次,請確認您使用的是正確的設備名稱。還有,一定不能在啟動 SYSLINUX 的時候掛載該分割區,因為在操作過程中會向分割區的開機磁區寫入資料並且建立包含 boot-loader 代碼的 ldlinux.sys 檔案。

接下來就是掛載分割區 (mount /dev/sda1 /mnt) 以及將下列檔案從 Debain 檔案庫拷貝到儲存上:

  • vmlinuz (核心二進位檔案)

  • initrd.gz (初始化記憶體映像檔)

  • syslinux.cfg (SYSLINUX 設定檔案)

  • 可選的核心模組

如果您想為這些檔名更名,請注意 SYSLINUX 只能處理 DOS (8.3) 格式的檔案名稱。

syslinux.cfg 設定檔案應該含有下列兩行:

default vmlinuz
append initrd=initrd.gz ramdisk_size=12000 root=/dev/rd/0 init=/linuxrc rw

請注意,根據開機的映像大小,在必要的時候,您可能需要增大 ramdisk_size 參數的數值。如果開機失敗,您可以嘗試添加 devfs=mount,dall 到 "append" 那一行。

4.4.2.2. 添加 ISO 映像

現在您需要把任意一個 Debian ISO 映像 (businesscard、netinst 或者甚至是完全版) 放入您的 USB 隨身碟內 (如果它裝得下的話)。這樣的一個映像檔的副檔名必須是 .iso

如果您想直接透過網路安裝而不使用 ISO 映像,當然就可以跳過上述步驟。並且您必須要使用 netboot 目錄中的初始化記憶體映像來取代來自 hd-media 的相同檔案。這是因為 hd-media/initrd.gz 並不包含網路支援。

當您完成後,卸載 USB 隨身碟 (umount /mnt) 並打開防寫保護。

4.4.2.3. 以 USB 隨身碟開機

警告

如果您的系統拒絕從 USB 隨身碟開機,那麼可能是因為它含有無效的主開機磁區記錄 (MBR)。您可以使用 install-mbr 指令來修復這個問題,該指令來自 mbr 軟體套件:

# install-mbr /dev/sda