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[编辑 | 编辑源代码]
请确认您安装了Cygwin的 dd
包。
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映像,例如:
dd if=image.iso of=/dev/sdb bs=4M
dd for Windows[编辑 | 编辑源代码]
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
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.用正常的日期和盘符来替换上面的空缺(以 "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
指代目标分区,请根据自身的情况调整 X 和 n。- 确保已经安装了最新版的 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.cfg、archiso_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
查看。
- /mnt/usb/arch/boot/syslinux 里已经安装 syslinux。请按照 Syslinux#Manual install进行重装。
- 用新 syslinux 的模块(
*.c32
文件)覆盖原有 syslinux 的模块,以免因版本差异导致启动失败。
- 用新 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)。
- 从 https://www.kernel.org/pub/linux/utils/boot/syslinux/ 下载官方 syslinux 6.xx (ZIP文件)并解压。Syslinux 的版本应与 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
):
-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 系统的其他方法[编辑 | 编辑源代码]
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.
- 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.
UNetbootin[编辑 | 编辑源代码]
可以在任何 Linux 发行版或者 Windows 中用 UNetbootin 把你的 ISO 复制到 USB 设备中,但是 Unetbootin 会覆盖 syslinux.cfg,创建的 USB 设备不能正常引导。由于这个原因,不推荐使用 Unetbootin -- 请使用 dd
或者这里列出的其它方法。
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[编辑 | 编辑源代码]
首先从这里下载程序。然后解压并运行可执行程序。在 Image FIle
部分中选择 Arch Linux ISO,在 Device
部分中选择 U 盘的盘符。准备就绪后点击 Write
。
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 提供的驱动句柄写入数据。
在内存加载安装介质[编辑 | 编辑源代码]
这个方法使用 Syslinux 和一个 Ramdisk (MEMDISK) 来把整个 Arch Linux ISO 镜像加载到内存中。因为它将完全运行于系统内存中,您要确保使用这种方法安装的系统有足够的内存。至少 500MB 到 1G 内存就足以在 MEMDISK 上安装 Arch Linux。 Arch Linux 和 MEMDISK 系统要求参见安装指南和这里。论坛参考贴。
准备 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
)。