Difference between revisions of "USB flash installation media (正體中文)"

From ArchWiki
Jump to: navigation, search
m (Add Category. See Help:Category.)
Line 1: Line 1:
 
[[Category:Getting and installing Arch (正體中文)]]
 
[[Category:Getting and installing Arch (正體中文)]]
 +
[[ar:USB Installation Media]]
 
[[bg:USB Installation Media]]
 
[[bg:USB Installation Media]]
 
[[de:Installation von einem USB-Stick]]
 
[[de:Installation von einem USB-Stick]]

Revision as of 13:18, 29 June 2013

Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary wiki Template:Article summary end

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

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

若您想要將 Arch Linux 完整的裝入 USB 裝置 (即所有更改皆永遠有效),請參閱 Installing Arch Linux on a USB key

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

GNU/Linux

覆寫 USB 裝置

警告: 這會摧毀 /dev/sdx 上所有的資料,無法還原!
註記: 本方法對 UEFI 開機方式的機器無效
註記: lsblk 確認 USB 裝置沒有被掛載,並使用 /dev/sdx 而非 /dev/sdx1這是很常見的錯誤!
# dd bs=4M if=/path/to/archlinux.iso of=/dev/sdx
註記: 某些老舊韌體無法理解偽分割區之預設偏移量為 0 的 isohybrid hack。請參閱 https://bugs.archlinux.org/task/32189 一個涉及 isohybrid.pl 的修正。

如何還原 USB 裝置

ISO 映像是多功能映像,既可以燒錄至光碟也可以直接寫入至 USB 裝置,因此它並不需要包含正規的分割磁區表。

完成 Arch Linux 的安裝之後,若您想繼續如往常般使用該 USB 碟,必須清理它的前 512 位元組 (也就是 MBR 內的開機碼與非正規分割表)

# dd count=1 bs=512 if=/dev/zero of=/dev/sdx

接著用 gparted 建立新的分割表(如 "msdos"),和檔案系統(如 EXT4、FAT32)。

在終端機的作法如下 (將 [USB標籤] 換成您想要的名稱):

  • EXT2/3/4 (依需求調整):
# cfdisk /dev/sdx
# mkfs.ext4 /dev/sdx1
# e2label /dev/sdx1 [USB標籤]
# cfdisk /dev/sdx
# mkfs.vfat -F32 /dev/sdx1
# dosfslabel /dev/sdx1 [USB標籤]

不會覆寫 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_2013.*|device=/dev/disk/by-uuid/$(lsblk -no UUID /dev/sdx1)|" archiso_sys{32,64}.cfg

如果您的發行版使用的 syslinux 套件版本低於 4.06,且 USB 碟使用 FAT32 檔案系統的話,也必須修改 syslinux.cfg 中的 APPEND 欄 (EXT4 者可以跳過此步驟):

$ sed -i "s|../../|/arch|" syslinux.cfg

Mac OS X

在 Mac 底下,要使用 dd 修改 USB 裝置之前,您必須先作幾項修正。首先插入 USB 裝置,OS X 會自動掛載。接著在終端機 (Terminal) 執行

 diskutil list

找到您的 USB 裝置代號 - 本例將以 /dev/disk1 為例做示範。(可使用 `mount` 指令或 `sudo dmesg | tail`。) 現在執行

 diskutil unmountDisk /dev/disk1

卸載裝置上的分割區 (如,/dev/disk1s1),同時保持裝置的可見 (如,/dev/disk1)。現在可以根據上面的 Linux 指示繼續操作 (但若您使用 OS X 的 dd,請使用 bs=8192,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

Image Writer (Windows 版本)

http://sourceforge.net/projects/win32diskimager/ 下載程式並執行。選擇 Arch 映像檔與 USB 隨身碟。檔案瀏覽器會假設檔案的副檔名為 .img,若您選擇的映像檔結尾為 .iso,必須手動輸入它的檔名;副檔名的差異無關操作,程式還是可以完整地寫入映像。點擊寫入按鈕。現在您應該可以從 USB 碟啟動並安裝 Arch Linux 了。

Universal USB Installer

Universal USB Installer 是一套建立 Live 環境的 Linux USB 軟體。依指示選擇一套 Linux 發行版,安裝到 USB 隨身碟上即可。

註記: Universal USB Installer 會將 USB 碟的標籤指定為 PENDRIVE,這會導致 Arch 的啟動失敗,因為 Arch 無法從預設路徑 /dev/disk/by-label/ARCH20130201 找到安裝媒介。建議在 Windows 下使用 Image Writer。

Linux Live USB Creator

警告: 據目前所知,雙架構 ISO 使用這個方式會發生問題。

Linux Live USB Creator 能建立可開機 USB 隨身碟。可以選擇手動下載 ISO,或是程式自動幫您下載。該軟體也支援 VirtualBox 下 USB 碟的自動安裝,可在 Windows 下啟動 Arch。更多資訊請參閱軟體官網

UNetbootin

警告: 千萬別使用 UNetbootin!這個程式會蓋掉原本的 syslinux.cfg,破壞載入程序。請改用其他程式/方法。

Flashnul 方式

flashnul 是一套檢驗快閃記憶體 (如 USB-Flash, IDE-Flash, SecureDigital, MMC, MemoryStick, SmartMedia, XD, CompactFlash) 功能與狀況的工具程式。

在指令列呼叫 flashnul -p,找出您的 USB 裝置是哪個代號。以下範例中以 "E:" 為範例:

C:\>flashnul -p

Avaible physical drives:
Avaible logical disks:
C:\
D:\
E:\

找到正確的裝置代號,就可以準備將映像寫入了。輸入 flashnul [裝置代碼] -L [映像檔路徑],像以下這樣:

C:\>flashnul E: -L path\to\arch.iso

萬般確認後,輸入 yes 開始寫入資料,請稍待片刻等寫入動作完成。若發生「拒絕存取」錯誤,請關掉所有開啟的檔案總管視窗。

Vista 或 Win7 的使用者,請以系統管理員的身分啟動終端機,否則 flashnul 會無法以區塊裝置的方式開啟隨身碟,只能經由 Windows 提供的驅動寫入。

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

Cygwin 方式

請確認您安裝的 Cygwin 有包含 dd 套件。若您不想安裝 Cygwin,也可以從 http://www.chrysocome.net/dd 單獨下載 dd 的 Windows 版本。

將 ISO 映像檔放在您的使用者目錄下,例如:

C:\cygwin\home\John\

以系統管理員身分執行 cygwin (這樣 cygwin 才能存取硬體)。使用以下指令寫入 USB 碟:

dd if=image.iso of=\\.\[x]:

image.iso 代表 cygwin 目錄下 ISO 映像檔的所在路徑。\\.\[x]: 內的 x 用 Windows 為該 USB 裝置指定的代號取代,例如 "\\.\d:"。

在 cygwin 6.0 下,找出正確的分割區

cat /proc/partitions

並根據輸出的資訊,將 ISO 映像寫入指定地點。範例如下:

警告: 您的 USB 碟上的所有檔案都會被刪除且無法還原。繼續執行前請先確認上面沒有重要檔案。
dd if=image.iso of=/dev/sdb

Windows 下使用 dd

您可以從 http://www.chrysocome.net/dd 下載 dd 的 Windows 版本 (以 GPL 授權)。比起用 Cygwin,好處是下載量變小了。其餘請根據上述的 Cygwin 步驟。

從 RAM 啟動整個 ISO

這個方法使用 SyslinuxMEMDISK,是將整個 ISO 映像載入 RAM 裡面。請確認您的記憶體空間是否足夠。完成載入、看到圖形選單後,就可以將 USB 碟拔除,甚至在另一台機器上使用它,重啟整個步驟。您也可以將 Arch 裝進同一支拿來啟動的 USB 隨身碟裡面。

1. 將 USB 碟格式化為 FAT32,並建立以下資料夾:

X:\Boot
X:\Boot\ISOs
X:\Boot\Settings

2. 將您要啟動的 ISO 放入 "ISOs" 資料夾 (例如 archlinux-2013.02.01-dual.iso),並下載 Syslinux 的最新版本 (例如 syslinux-4.06.zip):

  • ./win32/syslinux.exe 放到桌面,其他地方也可。
  • ./memdisk/memdisk 放到 "Settings" 資料夾。

在 "Settings" 資料夾下建立 syslinux.cfg 檔案:

X:\Boot\Settings\syslinux.cfg
DEFAULT arch_iso

LABEL arch_iso
        MENU LABEL Arch Setup
        LINUX memdisk
        INITRD /Boot/ISOs/archlinux-2013.02.01-dual.iso
        APPEND iso
提示: 若要加入更多發行版 (已測試 Debian 和 Parted Magic),可以編輯此檔案。將 Arch Linux ISO 的預設選單和背景圖案改掉也做的到。請參考 Syslinux wiki 頁面。

3. 最後,在 syslinux.exe 所在目錄下建立 *.bat 檔案並執行 (Vista 或 Windows 7 的使用者請選擇「以系統管理員身分執行」):

C:\Documents and Settings\username\Desktop\install.bat
@echo off
syslinux.exe -m -a -d /Boot/Settings X:

完成。

疑難排解

註記: 若您使用 MEMDISK 方法、啟動 i686 版本時得到著名的 30 秒錯誤,在 Boot Arch Linux (i686) 選項上按下 Template:Keypress 鍵,在結尾加上 vmalloc=448M。只適用於 MEMDISK 方式。參考:If your image is bigger than 128MiB and you have a 32-bit OS, then you have to increase the maximum memory usage of vmalloc(*)
註記: 一般情況下,若 30 秒錯誤肇因於 /dev/disk/by-label/ARCH_XXXXXX 未被掛載,請試著將您的 USB 標籤改為對應的 ARCH_XXXXXX (例如 ARCH_201302),並重新啟動一遍看看,應該就沒問題了。

另請參閱