U 盤安裝介質

出自 Arch Linux 中文维基

Tango-preferences-desktop-locale-modified.png這篇文章或章節的翻譯不反映原文。Tango-preferences-desktop-locale-modified.png

原因:已過時(在 Talk:U 盤安裝介質# 中討論)

USB 驅動器,也被稱為閃存驅動器、USB記憶棒、U盤等。可以從 ISO 製作 Arch LiveUSB 系統,從 UEFI 或 BIOS 系統上直接啟動 Arch Linux 安裝環境。因為SquashFS的只讀性質,關機後所有的更改都會丟失。這樣的系統可用於 Arch Linux 安裝、系統維護或者系統恢復。

要在 U 盤上運行完整的 Arch Linux(即能保留設置),請閱讀在U盤中安裝Arch Linux。如果想將 Arch Linux LiveUSB 當作救援 USB 來用,參見Change Root

BIOS 和 UEFI 可啟動 USB[編輯 | 編輯原始碼]

dd[編輯 | 編輯原始碼]

注意: 推薦該方法是因為它簡單。如果沒有效果,請使用下面介紹的方法 #手動方法
警吿: 這種方法會刪除 /dev/sdx 上的所有數據且不可逆。要在使用 Arch ISO 之後釋放空間,還原 USB 為原始狀態,需要以 root 權限執行wipefs --all /dev/sdx 命令刪除 iso9660 文件系統標記,然後再 重新分區重新格式化 USB。

GNU/Linux[編輯 | 編輯原始碼]

提示:lsblk 找到U盤並確保沒有掛載

用U盤替換 /dev/sdx,如 /dev/sdb。(不要加上數字,也就是説,不要鍵入 /dev/sdb1 之類的東西)

 # dd bs=4M if=/path/to/archlinux.iso of=/dev/sdx status=progress && sync

請等待 sync 完成,所有數據都寫入之後再拔掉 U 盤。

Windows[編輯 | 編輯原始碼]

Rufus[編輯 | 編輯原始碼]

Rufus 是一款多用途的 USB iso 寫入工具。只要簡單地選擇 Arch Linux ISO、要創建可啟動 Arch Linux 的 USB 驅動器,然後點擊「start」。

由於 Rufus 不關心驅動器是否正確格式化並提供GUI,因此這可能是最簡單最強大的工具。

USBwriter[編輯 | 編輯原始碼]

這種方法和 dd 一樣簡單,只要下載 Arch Linux 安裝鏡像並用 USBwriter 寫入U盤即可。

使用 win32diskimager[編輯 | 編輯原始碼]

win32diskimager 是另一個用於 Windows 的圖形化 USB iso 寫入工具。只需選擇 iso 映像和目標 USB 驅動器號(可能需要先格式化 USB 驅動器後才能分配驅動器號),然後點擊「Write」。

Cygwin[編輯 | 編輯原始碼]

請確認您安裝了Cygwindd 包。

提示:如果您不想安裝 Cygwin,您可以直接從 這裏下載 dd for Windows。查看下一節以獲得更多信息。

將您的鏡像文件放在您的 home 目錄中:

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 設備上的所有文件,所以執行這個操作前請先確定您的 USB 設備中沒有任何重要的數據。
dd if=image.iso of=/dev/sdb bs=4M
dd for Windows[編輯 | 編輯原始碼]
注意: 某些用户在使用這種方法時碰到了"isolinux.bin missing or corrupt"的問題。

http://www.chrysocome.net/dd 上有基於 GPL 協議的 dd for Windows。相比於 Cygwin,它的優勢在於下載量小。使用方法已經在上面的 Cygwin 部分中説明了。

首先下載最新版本的 dd for Windows,並把內容解壓到 Downloads 目錄或者別的什麼地方。 保 現在以管理員身份運行 命令提示符。然後切換目錄(cd)到 Downloads 目錄。

如果你的 Arch Linux ISO 在別的地方,你可能需要列出完整路徑。方便起見,你可能會把它放在 dd 程序的同一目錄中。命令的基本格式像這樣:

# dd if=archlinux-2015-XX-YY-dual.iso od=\\.\x: bs=4M
注意: The Windows drive letters are linked to a partition. To allow selecting the entire disk, dd for Windows provides the od parameter, which is used in the commands above. Note however that this parameter is specific to dd for Windows and cannot be found in other implementations of dd.
警吿: 這條命令會把驅動器的格式和內容按照 ISO 中的來填充。誤操作後很可能無法恢復其原先的內容,在執行命令以前要確保你dd 中使用的是正確的驅動器!

用正常的日期和盤符來替換上面的空缺(以 "x" 來表示)

下面是一個實例:

# dd if=ISOs\archlinux-2015.01.01-dual.iso od=\\.\d: bs=4M

macOS[編輯 | 編輯原始碼]

做一些特定操作後才能在 Mac 下使用 dd 寫入 USB 設備。先插入 USB 設備,OS X 會自動掛載它,然後在終端程序中運行:

先確認設備,打開 /Applications/Utilities/Terminal 然後通過下面命令查看所有設備:

$ diskutil list

USB 設備應該顯示類似 /dev/disk2 (external, physical). 通過名稱和大小確認設備名,在後面的命令中替換 /dev/diskX。

設備會被自動掛載,在使用 dd 前需要先卸載設備上的分區:

$ diskutil unmountDisk /dev/disk2

接着我們可以依照上面介紹的方法繼續操作,磁盤名使用 rdisk, 在 OS X 上比較快。

$ sudo dd if=path/to/arch.iso of=/dev/rdiskX bs=1m

此時,在物理拔出U盤前,彈出您的USB驅動器可能是個好主意。

完成後,Mac OS 可能抱怨 "The disk you inserted was not readable by this computer". 選擇忽略。啟動盤就做好了。

手動方法[編輯 | 編輯原始碼]

GNU/Linux[編輯 | 編輯原始碼]

這種方法比 dd 複雜,但能夠保持U盤可用(ISO 被裝在分了區的設備的某個分區裡而無需改變其他分區)。

注意: 接下來會用 /dev/sdXn 指代目標分區,請根據自身的情況調整 Xn
  • 確保已經安裝了最新版的 syslinux(6.02或更新)。
  • 如果還未準備好,在繼續前創建好分區表和分區。/dev/sdXn 必須格式化為 FAT32。
  • 掛載 ISO 鏡像。掛載U盤上的 FAT32 分區,把 ISO 鏡像內的文件都複製進去。卸載 ISO 鏡像,但不要卸載 FAT32 分區。接着執行:
# mkdir -p /mnt/{iso,usb}
# mount -o loop archlinux-version-x86_64.iso /mnt/iso
# mount /dev/sdXn /mnt/usb
# cp -a /mnt/iso/. /mnt/usb
# sync
# umount /mnt/iso
  • 卷標,或者 UUID 是成功引導必不可少的。默認識別的卷標是 ARCH_2017XX(XX 和鏡像發佈月份有關)。因此,FAT32 分區的卷標須設成一樣的(可以用gparted)。 要修改識別的卷標,可以編輯 /mnt/usb/arch/boot/syslinux/archiso_sys32.cfgarchiso_sys64.cfg/mnt/usb/loader/entries/archiso-x86_64.conf中的 archisolabel=ARCH_2017XX(最後一個文件僅對 EFI 系統生效)。32位的 ISO 需要類似修改。要讓安裝鏡像識別 UUID 而不是卷標,將這些地方改為 archisodevice=/dev/disk/by-uuid/YOUR-UUID。UUID 可通過 blkid -o value -s UUID /dev/sdXn 查看。
警吿: 錯誤的卷標或 UUID 會導致啟動失敗。
  • /mnt/usb/arch/boot/syslinux 裡已經安裝 syslinux。請按照 Syslinux#Manual install進行重裝。
    • 用新 syslinux 的模塊(*.c32 文件)覆蓋原有 syslinux 的模塊,以免因版本差異導致啟動失敗。
# cp /usr/lib/syslinux/bios/*.c32 /mnt/usb/arch/boot/syslinux
    • 運行:
# extlinux --install /mnt/usb/arch/boot/syslinux
    • 卸載分區(umount /mnt/usb)並將 MBR 或 GPT 分區表安裝到U盤。
  • 將該分區標記為活躍(或「啟動」)。

Windows[編輯 | 編輯原始碼]

注意:
  • 不要使用可啟動 USB 創建工具製作UEFI 啟動 USB。不要用dd for Windows將 ISO 鏡像寫入U盤。
  • 以下命令假設U盤盤符為 X:
  • Windows 使用反斜槓作為路徑分隔符,以下命令也是。
  • 所有命令都應該在以管理員身份運行的命令提示符內執行。
  • > 表示 Windows 命令提示符。
  • 分區和格式化工具用 Rufus USB partitioner。partition scheme 選 MBR for BIOS and UEFI,文件系統選FAT32,反選「Create a bootable disk using ISO image」和「Create extended label and icon files」
  • 如果用的是官方 ISO 鏡像(Archiso),修改U盤 X: 卷標,與 <ISO>\loader\entries\archiso-x86_64.conf 中的 archisolabel= 保持一致。如果是 Archboot 則不需要修改。卷標可在上一步使用 Rufus 進行分區和格式化時修改。
  • 解壓 ISO 文件至U盤(像解壓 ZIP 文件一樣,軟件可用7-Zip)。
  • 運行以下命令(在命令提示符內,以管理員身份運行):
注意: Archboot iso 用 X:\boot\syslinux\
> cd bios\
> for /r %Y in (*.c32) do copy "%Y" "X:\arch\boot\syslinux\" /y
> copy mbr\*.bin X:\arch\boot\syslinux\ /y
  • 通過以下命令將 Syslinux 安裝到U盤(64位系統則用 win64\syslinux64.exe):
注意: Archboot iso 用 -d /boot/syslinux
> cd bios\
> win32\syslinux.exe -d /arch/boot/syslinux -i -a -m X:
注意:
  • 上述步驟將安裝 Syslinux ldlinux.sys 至U盤分區 VBR,在 MBR 分區表中將該分區設置為活躍/啟動,並將 MBR 引導代碼寫入U盤前 440位元組引導代碼區中。
  • -d開關需要斜槓作為路徑分隔符。

BIOS 系統的其他方法[編輯 | 編輯原始碼]

Tango-preferences-desktop-locale.png本文或本節需要翻譯。要貢獻翻譯,請訪問簡體中文翻譯團隊Tango-preferences-desktop-locale.png

附註: 請完成更新後的翻譯。(在 Talk:U 盤安裝介質# 中討論)

GNU/Linux[編輯 | 編輯原始碼]

Using GNOME Disk Utility[編輯 | 編輯原始碼]

Linux distributions running GNOME can easily make a live CD through nautilus and gnome-disk-utility. Simply right-click on the .iso file, and select "Open With Disk Image Writer." When GNOME Disk Utility opens, specify the flash drive from the "Destination" drop-down menu and click "Start Restoring."

Making an USB-ZIP drive[編輯 | 編輯原始碼]

For some old BIOS systems, only booting from USB-ZIP drives is supported. This method allows you to still boot from a USB-HDD drive.

警吿: This will destroy all information on your USB flash drive!
  • Download syslinux and mtools from the official repositories.
  • Find your usb drive with lsblk.
  • Type mkdiskimage -4 /dev/sdx 0 64 32 (replace x with the letter of your drive). This will take a while.

From here continue with the manual formatting method. The partition will be /dev/sdx4 due to the way ZIP drives work.

注意: Do not format the drive as FAT32 keep it as FAT16.

UNetbootin[編輯 | 編輯原始碼]

可以在任何 Linux 發行版或者 Windows 中用 UNetbootin 把你的 ISO 複製到 USB 設備中,但是 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 鍵改變它。

Windows[編輯 | 編輯原始碼]

Win32 Disk Imager[編輯 | 編輯原始碼]

警吿: 這些操作會銷毀 U 盤中的所有信息!

首先從這裏下載程序。然後解壓並運行可執行程序。在 Image FIle 部分中選擇 Arch Linux ISO,在 Device 部分中選擇 U 盤的盤符。準備就緒後點擊 Write

注意: 安裝後你可能需要以Device file#wipefs

USBWriter for Windows[編輯 | 編輯原始碼]

https://sourceforge.net/projects/usbwriter/ 下載程序並運行。選擇 arch 鏡像文件和目標U盤,然後點擊 write 按鈕。現在你應該能夠從 U 盤啟動安裝 Arch Linux。

Flashnul[編輯 | 編輯原始碼]

flashnul 是一個用來檢測和維護閃存(USB-Flash,IDE-Flash,SecureDigital,MMC,MemoryStick,SmartMedia,XD,CompactFlash 等)的工具。

從命令提示符下,使用 –p 參數調用 flashnul 命令來確定 USB 設備的盤符,例如:

C:\>flashnul -p
 Avaible physical drives:
 Avaible logical disks:
 C:\
 D:\
 E:\

在本例中,USB 設備的盤符是 E:

當您確定正確的設備後,您可以將鏡像寫入到您的設備中,通過調用flashnul命令,後面輸入您的設備序號,再輸入 -L 及鏡像的完整路徑,例如:

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

在您真的確定要寫入這些數據時,輸入yes,然後等它寫入完成。如果您見到拒絕訪問的錯誤提示,關閉所有打開的資源管理器的窗口。

如果是在 Vista 或者 Win7 下,您需要以管理員的身份打開控制台,否則flashnul不能以塊設備的方式訪問 U 盤,而只能通過 Windows 提供的驅動句柄寫入數據。

注意: 請確認您使用的是盤符而不是數字。flashnul 1rc1, Windows 7 x64.

在內存加載安裝介質[編輯 | 編輯原始碼]

Merge-arrows-2.png本文或本章節可能需要合併到Multiboot USB drive#Using Syslinux and memdiskMerge-arrows-2.png

附註: 除了 Syslinux 是從 Windows 上安裝的,其他都一樣。考慮到 多啟動U盤也能引導安裝介質,而且也已經在相關文章添加了連結,或許這兩小節可以合併在一起?(在 Talk:U 盤安裝介質 中討論)

這個方法使用 Syslinux 和一個 Ramdisk (MEMDISK) 來把整個 Arch Linux ISO 鏡像加載到內存中。因為它將完全運行於系統內存中,您要確保使用這種方法安裝的系統有足夠的內存。至少 500MB 到 1G 內存就足以在 MEMDISK 上安裝 Arch Linux。 Arch Linux 和 MEMDISK 系統要求參見安裝指南這裏論壇參考貼

提示: 一旦安裝程序加載完畢,您就可以移除 U 盤,甚至再在另一台機器上用它開始執行整個安裝步驟。使用 MEMDISK 還允許你在同一個 U 盤中引導並安裝 Arch Linux 到它上面。
準備 U 盤[編輯 | 編輯原始碼]

首先格式化 U 盤分區為 『』『FAT32 文件系統。然後在格式化後的磁盤中創建以下目錄:

  • Boot
    • Boot/ISOs
    • Boot/Settings
複製需要的文件到 U 盤[編輯 | 編輯原始碼]

然後,把要引導的 ISO 複製到 Boot/ISOs 目錄。接着,從這裏 最新版的 syslinux 中提取以下文件並複製到下列目錄:

  • ./win32/syslinux.exe 到桌面或者系統中的 Downloads 目錄。
  • ./memdisk/memdisk 到 U 盤中的 {{ic|Settings} 目錄。
創建配置文件[編輯 | 編輯原始碼]

複製完所需文件後,在 U 盤的 /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-2015.01.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:

故障排除[編輯 | 編輯原始碼]

  • 對於 MEMDISK 方法,如果你嘗試引導 i686 版本的系統時碰到了著名的 30 seconds error,那麼在 Boot Arch Linux (i686) 條目上按 Tab 鍵,然後在末尾添加 vmalloc=448M。參考: 如果你的映像大於 128MiB 且你使用的是32位作業系統,你必須增加最大內存使用參數vmalloc(*)
  • 如果你碰到因 /dev/disk/by-label/ARCH_XXXXXX 未掛載而導致的 30 seconds error,可嘗試重命名你的 USB 媒介為 ARCH_XXXXXX(例如 ARCH_201501)。

參見[編輯 | 編輯原始碼]