USB Installation Media (正體中文)
| 摘要 |
|---|
| 在多種平台下建立可開機 USB 隨身碟的指示步驟,在 Arch Linux 的安裝、系統維護或恢復都很有幫助。 |
| 相關資料 |
| CD Burning |
本頁面討論了各種將 Arch Linux 映像寫入 USB 裝置(又稱「快閃碟」、「USB 隨身碟」等)的方式。裝載進 USB 裝置的類 LiveCD 系統(可稱之為「LiveUSB」),本質為 SquashFS 系統,關機之後所有的變更都會消失無蹤。
若您想要將 Arch Linux 完整的裝入 USB 裝置 (即所有更改皆永遠有效),請參閱安裝 Arch Linux 至 USB 碟。
Contents |
GNU/Linux
覆寫 USB 裝置
# dd bs=4M if=/path/to/archlinux.iso of=/dev/sdx && sync
如何還原 USB 裝置
ISO 映像是多功能映像,既可以燒錄至光碟也可以直接寫入至 USB 裝置,因此它並不需要包含正規的分割表。
完成 Arch Linux 的安裝之後,若您想繼續如往常般使用該 USB 碟,必須清理它的前 512 位元組 (也就是 MBR 內的開機碼與非正規分割表):
# dd count=1 bs=512 if=/dev/zero of=/dev/sdx && sync
接著用 gparted 建立新的分割表(如「msdos」),和檔案系統(如 EXT4、FAT32)。
終端機的作法如下:
- EXT2/3/4 (依需求調整):
# cfdisk /dev/sdx # mkfs.ext4 /dev/sdx1 # e2label /dev/sdx1 USB_STICK
- FAT32 (必須先安裝 dosfstools 軟體包):
# cfdisk /dev/sdx # mkfs.vfat -F32 /dev/sdx1 # dosfslabel /dev/sdx1 USB_STICK
不會覆寫 USB 裝置的方式
比起直接用 dd 寫入映像,這裡的方法稍微複雜,但好處是可以讓裝置儲存資料。在開始之前先確認 USB 裝置已經格式化為 FAT32、EXT2/3/4 或 Btrfs。使用 UEFI 啟動或需跟其他作業系統互通的使用者,您應該使用 FAT32。另外,確認您的現有系統已經安裝 syslinux 軟體包 (版本 4.04 以上)。
1. 將 ISO 內的 arch 資料夾複製到 USB 碟。UEFI 主機板的使用者請遵照這裡的指示。
2. 安裝 Syslinux 啟動載入程式:
$ cd /media/某資料夾/arch/boot/syslinux #某資料夾為 USB 裝置的掛載點。不要跳過這項步驟。 # extlinux --install . #不要忘記輸入最後面的點。 # dd bs=440 conv=notrunc count=1 if=/usr/lib/syslinux/mbr.bin of=/dev/sdx # parted /dev/sdx toggle 1 boot
3. 調整設定檔:
下面的一個指令,可以同時將 32 與 64 位元設定檔內的 archisolabel=ARCH_2013XX 部分改為 UUID 標示 (如 archisodevice=/dev/disk/by-uuid/47FA-4071):
$ sed -i "s|label=ARCH_.*|device=/dev/disk/by-uuid/$(blkid -o value -s UUID /dev/sdx1)|" archiso_sys{32,64}.cfg
如果您的發行版使用的 syslinux 軟體包版本低於 4.06,且 USB 碟使用 FAT32 檔案系統的話,也必須修改 syslinux.cfg 中的 APPEND 欄 (EXT4 者可以跳過此步驟):
$ sed -i "s|../../|/arch|" syslinux.cfg
使用 UNetbootin
UNetbootin 可以將 iso 複製到 USB 裝置,可在任何 Linux 發行版或 Windows 上使用。不過 Unetbootin 會覆寫 syslinux.cfg,因此建立出來的 USB 裝置將無法正常啟動。基於這個原因,Unetbootin 並不被推薦 -- 請使用 dd 或本主題所提出的任一種方式。
編輯 syslinux.cfg:
sysconfig.cfg
default menu.c32 prompt 0 menu title Archlinux Installer timeout 100 label unetbootindefault menu label Archlinux_x86_64 kernel /arch/boot/x86_64/vmlinuz append initrd=/arch/boot/x86_64/archiso.img archisodevice=/dev/sdx1 ../../ label ubnentry0 menu label Archlinux_i686 kernel /arch/boot/i686/vmlinuz append initrd=/arch/boot/i686/archiso.img archisodevice=/dev/sdx1 ../../
根據要安裝 Arch Linux 的系統所用掉的字母,將 /dev/sdx1 中的 x 替換成第一個可用字母 (例如:有兩顆硬碟就使用 c)。您可以在開機的第一階段、顯示開機選單時再按 Tab 改變設定。
Mac OS X
在 Mac 底下,要使用 dd 修改 USB 裝置之前,您必須先作幾項修正。首先插入 USB 裝置,OS X 會自動掛載。接著在 Terminal.app (終端機) 中執行
$ diskutil list
用 mount 或 sudo dmesg | tail 找到您的 USB 裝置代號 (如 /dev/disk1),並卸載裝置上的分割區 (如 /dev/disk1s1),同時保持裝置 (如 /dev/disk1):
$ diskutil unmountDisk /dev/disk1
現在我們可以照上述的指示進行 (若您使用的是 OS X 的 dd,請改使用 bs=8192,此數字來自於 1024*8)。
dd if=image.iso of=/dev/disk1 bs=8192
20480+0 records in 20480+0 records out 167772160 bytes transferred in 220.016918 secs (762542 bytes/sec)
在拔除您的裝置前,請先記得將它退出:
$ diskutil eject /dev/disk1
Windows
Win32 Disk Imager
首先從這裡下載程式。接著解壓縮並執行可執行檔。現在,在 Image File (映像檔) 一區選擇 Arch Linux ISO,Device (裝置) 一區選擇 USB 裝置字母 (例如 [D:\])。最後,準備好之後點選 Write (寫入)。
Windows 下的 USBWriter
從 http://sourceforge.net/projects/usbwriter/ 下載程式後執行。選擇 Arch 映像檔、目標 USB 碟,並點擊 write (寫入) 按鈕。您現在應該可以用 USB 碟開機並安裝 Arch Linux 了。
Flashnul 方式
flashnul 是一套檢驗快閃記憶體 (如 USB-Flash, IDE-Flash, SecureDigital, MMC, MemoryStick, SmartMedia, XD, CompactFlash) 功能與狀況的工具程式。
在指令列呼叫 flashnul 與 -p 選項,找出您的 USB 裝置是哪個代號。如下:
C:\>flashnul -p
Avaible physical drives: Avaible logical disks: C:\ D:\ E:\
決定好正確的裝置後,以裝置代號 -L 與映像路徑呼叫 flashnul,在該裝置上寫入映像,如下:
C:\>flashnul E: -L path\to\arch.iso
萬般確認後,輸入 yes 開始寫入資料,請稍待片刻等寫入動作完成。若發生「拒絕存取」錯誤,請關掉所有開啟的檔案總管視窗。
Vista 或 Win7 的使用者,請以系統管理員的身分啟動終端機,否則 flashnul 會無法以區塊裝置的方式開啟隨身碟,只能經由 Windows 提供的驅動寫入。
Cygwin 方式
請確認您安裝的 Cygwin 有包含 dd 軟體包。
將 ISO 映像檔放在您的使用者目錄下,例如:
C:\cygwin\home\John\
以系統管理員身分執行 cygwin (這樣 cygwin 才能存取硬體)。使用以下指令寫入 USB 碟:
dd if=image.iso of=\\.\[x]: bs=4M
image.iso 代表 cygwin 目錄下 ISO 映像檔的所在路徑。 \\.\[x]: 內的 x 用 Windows 為該 USB 裝置指定的代號取代,例如 \\.\d:。
在 Cygwin 6.0 下,找出正確的分割區:
cat /proc/partitions
並根據輸出的資訊,將 ISO 映像寫入指定地點。範例如下:
dd if=image.iso of=/dev/sdb bs=4M
Windows 下使用 dd
您可以從 http://www.chrysocome.net/dd 下載 dd 的 Windows 版本 (以 GPL 授權)。比起用 Cygwin,好處是下載量變小了。其餘請根據上述的 Cygwin 步驟。
下載最新版本的 Windows 版 dd。下載好之後,將壓縮檔的內容提取出來,放「下載」或其他地方都可。
現在用管理員身分開啟命令提示字元。接著進到 (cd) 「下載」目錄。
若您的 your Arch Linux ISO 位在其他地方,將需要指定完整路徑,為了方便起見,將 Arch Linux ISO 放在與 dd 執行檔同一個目錄底下。指令的基本格式看起來像這樣。
dd if=archlinux-2013-XX-xx-dual.iso of=\\.\x: bs=4m
在空白的欄位 (以「x」指示) 補齊正確的日期與裝置字母。
以下為完整範例。
dd if=ISOs\archlinux-2013.08.01-dual.iso of=\\.\d: bs=4M
從 RAM 載入安裝媒體
這個方式使用 Syslinux 和 Ramdisk (MEMDISK) 將整個 Arch Linux ISO 載入記憶體 (RAM)。這個方式將完全在系統記憶體下執行,因此您需要確定系統的記憶體容量足夠。以 MEMDISK 為基礎的 Arch Linux 安裝最低 RAM 需求大小為 500 MB 到 1 GB 之間。
更多 Arch Linux 與 MEMDISK 的系統要求,請參閱新手教學以及這裡。
準備 USB 快閃碟
一開始,將 USB 快閃碟格式化為 FAT32。接著在新格式化的快閃碟中建立以下資料夾。
-
Boot-
Boot/ISOs -
Boot/Settings
-
複製需要的檔案至 USB 快閃碟
皆下來,將要啟動的 ISO 複製進 Boot/ISOs 資料夾。接著,從這裡獲取 syslinux 的最新釋出版本,解開以下檔案後複製進以下資料夾。
-
./win32/syslinux.exe到系統的「桌面」或「下載」資料夾。 -
./memdisk/memdisk到 USB 快閃碟的Settings資料夾。
建立設定檔
複製好需要的檔案之後,進入 USB 快閃碟的 /boot/Settings 並建立 syslinux.cfg 檔案。
/Boot/Settings/syslinux.cfg
DEFAULT arch_iso
LABEL arch_iso
MENU LABEL Arch Setup
LINUX memdisk
INITRD /Boot/ISOs/archlinux-2013.08.01-dual.iso
APPEND iso
更多 Syslinux 的資訊請參閱 Arch Wiki 文章。
最後步驟
最後,在 syslinux.exe 所在位置建立 *.bat 檔案後執行 (使用 Vista 或 Windows 7 者請使用「以系統管理員身分執行」):
C:\Documents and Settings\username\Desktop\install.bat
@echo off syslinux.exe -m -a -d /Boot/Settings X:
加入 MULTIBOOT Live USB
Windows 工具 YUMI MultiBoot Live USB Creator 可以快速建立多種 Linux 發行版、多種安裝程序的 Live USB 媒體。建立完成後,可以新增與移除安裝程序而不需重新格式化 USB 裝置。