- Home
- Packages
- Forums
- Wiki
- Bugs
- AUR
- Download

# USB Installation Media (正體中文)

From ArchWiki

摘要
在多種平台下建立可開機 USB 隨身碟的指示步驟，在 Arch Linux 的安裝、系統維護或恢復都很有幫助。
相關資料
CD Burning

翻譯狀態： 本文章是 USB_Installation_Media 的翻譯版本。最近一次的翻譯時間：2013-09-07。點擊本連結查看英文頁面之後的變更。

本頁面討論了各種將 Arch Linux 映像寫入 USB 裝置(又稱「快閃碟」、「USB 隨身碟」等)的方式。裝載進 USB 裝置的類 LiveCD 系統(可稱之為「LiveUSB」)，本質為 SquashFS 系統，關機之後所有的變更都會消失無蹤。

若您想要將 Arch Linux 完整的裝入 USB 裝置 (即所有更改皆永遠有效)，請參閱安裝 Arch Linux 至 USB 碟。

註記: 若開機方式為 UEFI，請改參考這裡的指示建立可開機 USB 隨身碟。

## GNU/Linux

### 覆寫 USB 裝置

警告: 這會摧毀 `/dev/sdx` 上所有的資料，無法還原！
警告: 本方法對 UEFI 開機方式的機器無效
提示: 不要掛載 USB 碟安裝媒體，可以用 `lsblk` 檢查。
註記: 使用 `/dev/sdx` 而非 `/dev/sdx1`。

    # 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 啟動載入程式：

警告: 請再三確認 `dd` 的指向是否正確，使用指令時請輸入該裝置本身的代號，而非其第一個分割區。這是十分常見的錯誤。
註記: 某些發行版本的 `mbr.bin` 檔案位置為：`/usr/share/syslinux/mbr.bin`

    $ 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. 調整設定檔：

註記: 無論將標籤改成「`ARCH_2013XX`」(XX 為該版本釋出的月份)，或使用 UUID (可以隨意更改標籤)，若無法讀取到裝置將引發著名的「30 秒」錯誤。

下面的一個指令，可以同時將 32 與 64 位元設定檔內的 `archisolabel=ARCH_2013XX` 部分改為 UUID 標示 (如 `archisodevice=/dev/disk/by-uuid/47FA-4071`)：

註記: 記得在執行前依實際情形修改 `/dev/sdx1`，不然無法執行 (裝置 `sdx` 不存在)。

    $ 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` 或本主題所提出的任一種方式。

警告: UNetbootin 將覆寫預設的 `syslinux.cfg`；必須恢復才能讓 USB 裝置正確啟動。

編輯 `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

警告: 這將摧毀 USB 快閃碟的所有資訊！

首先從這裡下載程式。接著解壓縮並執行可執行檔。現在，在 `Image File` (映像檔) 一區選擇 Arch Linux ISO，`Device` (裝置) 一區選擇 USB 裝置字母 (例如 [D:\])。最後，準備好之後點選 `Write` (寫入)。

提示: 預設 Win32 Disk Imager 的檔案瀏覽會認為映像檔的副檔名為 `.img`。您可以輕易將 `Files of type` (檔案類型) 下拉選單改為 `*.*`，再選擇 Arch Linux ISO。
註記: 安裝完成後，若需要還原 USB 裝置，請依照這裡所寫的步驟進行。

### 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 提供的驅動寫入。

註記: 請確認您使用的是裝置符號，而非數字。flashnul 1rc1, Windows 7 x64.

### Cygwin 方式

請確認您安裝的 Cygwin 有包含 `dd` 軟體包。

提示: 若您不想安裝 Cygwin，也可以從這裡單獨下載 `dd` 的 Windows 版本。更多資訊請參閱下一節。

將 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 映像寫入指定地點。範例如下：

警告: 您的 USB 碟上的所有檔案都會被刪除且無法還原。繼續執行前請先確認上面沒有重要檔案。

    dd if=image.iso of=/dev/sdb bs=4M

### Windows 下使用 dd

註記: 某些使用者用此方法製作的媒體開機時，碰到「isolinux.bin missing or corrupt」問題。

您可以從 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

警告: 這個指令會將裝置的內容與格式替換為 ISO 的。若複製出了意外，很有可能無法復原原本的內容。執行以前請再三確認您給 dd 指向的是正確的裝置！

在空白的欄位 (以「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 快閃碟移除，甚至將它插入不同機器以重新進行整個步驟。可利用式 MEMDISK 也允許啟動並安裝 Arch Linux 到原本用來安裝的 USB 快閃碟上。

#### 準備 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` 檔案。

警告: `INITRD` 行記得使用複製進 `ISOs` 資料夾的 ISO 檔案名稱！

    /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 裝置。

## 疑難排解

註記: 若您使用 MEMDISK 方法，在啟動 i686 版本時得到著名的「30 秒」錯誤，在 `Boot Arch Linux (i686)` 選項上按下 `Tab` 鍵，在結尾加上 `vmalloc=448M`。也請參考：「若映像大於 128MiB 且使用 32 位元 OS，應增加 vmalloc 的最大記憶體用量」。 (*)
註記: 若「30 秒」錯誤是肇因於 `/dev/disk/by-label/ARCH_XXXXXX` 未被掛載，試著重新命名 USB 媒體為 `ARCH_XXXXXX` (如 `ARCH_201302`)。

## 另請參閱

- Gentoo liveusb 文件

Retrieved from "https://wiki.archlinux.org/index.php?title=USB_Installation_Media_(正體中文)&oldid=274571"
Category:

- Getting and installing Arch (正體中文)

## Navigation menu