Difference between revisions of "USB flash installation media (简体中文)"

From ArchWiki
Jump to: navigation, search
(Update translation)
(Update translation)
Line 6: Line 6:
 
[[es:USB Installation Media]]
 
[[es:USB Installation Media]]
 
[[it:USB Installation Media]]
 
[[it:USB Installation Media]]
 +
[[ja:USB Installation Media]]
 
[[ro:Instalare prin USB]]
 
[[ro:Instalare prin USB]]
 
[[ru:USB Installation Media]]
 
[[ru:USB Installation Media]]
Line 58: Line 59:
 
该方法比直接用 {{ic|dd}} 写入镜像稍微复杂,但优点是不破坏 U 盘的数据存储功能。在开始之前,请确保您的 USB 设备已经格式化为了 FAT32,EXT 2/3/4 或者 Btrfs 分区格式。为便于 [[UEFI]] 引导并/或使用其他操作系统, 您需要使用 FAT32。此外,您必须保证已经安装了 ''syslinux'' 软件包(版本 4.04 或者更高)。
 
该方法比直接用 {{ic|dd}} 写入镜像稍微复杂,但优点是不破坏 U 盘的数据存储功能。在开始之前,请确保您的 USB 设备已经格式化为了 FAT32,EXT 2/3/4 或者 Btrfs 分区格式。为便于 [[UEFI]] 引导并/或使用其他操作系统, 您需要使用 FAT32。此外,您必须保证已经安装了 ''syslinux'' 软件包(版本 4.04 或者更高)。
  
'''1.''' 将 "arch" 文件夹从 ISO 复制到 USB 驱动器。例如:
+
'''1.''' 将 "arch" 文件夹从 ISO 复制到 USB 驱动器。对于 UEFI 主板,按[[UEFI#Create_UEFI_bootable_USB_from_ISO|这里的]]指示。
 
+
$ sudo su -
+
# mkdir /mnt/usb
+
# mount /dev/sdx1 /mnt/usb
+
# mkdir /mnt/iso
+
# mount -o loop /media/Storage/Torrents/archlinux-*.iso /mnt/iso
+
# cp -r /mnt/iso/arch /mnt/usb
+
 
+
对于 UEFI 主板,还要复制 {{ic|EFI}} 文件夹。
+
  
 
'''2.''' 把 Syslinux 启动程序安装到 USB 驱动器中,把启动代码安装到主引导记录中,并设置第一分区为可启动:
 
'''2.''' 把 Syslinux 启动程序安装到 USB 驱动器中,把启动代码安装到主引导记录中,并设置第一分区为可启动:
  
{{警告|谨慎使用 {{ic|dd}} 以保证其指向的位置正确。下面的操作针对驱动器本身而'''非'''第一分区,这是一个非常常见的错误。}}
+
{{警告|谨慎使用 {{ic|dd}} 并保证指向的位置正确。下面的操作针对驱动器本身而'''非'''第一分区,这是一个非常常见的错误。}}
  
 
{{注意|某些系统的 {{ic|mbr.bin}} 文件位于 {{ic|/usr/'''share'''/syslinux/mbr.bin}}。}}
 
{{注意|某些系统的 {{ic|mbr.bin}} 文件位于 {{ic|/usr/'''share'''/syslinux/mbr.bin}}。}}
Line 214: Line 206:
 
         MENU LABEL Arch Setup
 
         MENU LABEL Arch Setup
 
         LINUX memdisk
 
         LINUX memdisk
         INITRD /Boot/ISOs/archlinux-2012.08.04-dual.iso
+
         INITRD /Boot/ISOs/archlinux-2012.11.01-dual.iso
 
         APPEND iso}}
 
         APPEND iso}}
  

Revision as of 05:20, 3 December 2012

翻译状态: 本文是英文页面 USB_Installation_Media翻译,最后翻译时间:2012-11-14,点击这里可以查看翻译后英文页面的改动。
概要 help replacing me
多平台下创建可引导USB记忆棒的说明,它可用于安装Arch Linux、系统维护或者恢复。
相关
CD Burning

本文探讨将 Arch 安装映像写入到USB驱动器(也被称为“闪存驱动器”,“USB记忆棒",“U盘”等)上的各种方法。它有点像是一个 LiveCD 系统(如果你可以称它为"LiveUSB"),因为SquashFS的性质,关机后所有的更改都会丢失。

如果你想把在USB驱动器中完整安装一份Arch Linux(即,使更改具有持久性),参见在U盘中安装Arch Linux

注意: 对于 UEFI 引导方式,用这些内容来创建一份可引导的 USB记忆棒。

Gnu/Linux系统上

直接覆盖整个 USB 驱动器

警告: 这会永久性的删除 /dev/sdx 上的所有数据。
注意: 先用命令lsblk确认USB设备已插上但并未被挂载,然后确保使用的是 /dev/sdx 而不是 /dev/sdx1这是一个很常见的错误!
# dd bs=4M if=/path/to/archlinux.iso of=/dev/sdx

怎样恢复你的 USB 驱动器

ISO 镜像是多功能镜像,既可以烧到光盘也能直接写入 USB,所以它不包含一个标准的分区表。

安装 Arch Linux 后,就不需要 USB 安装盘了。你需要往U盘的前 512 字节写零(表示主引导记录中的引导代码和非标准的分区表)来恢复它完整的容量。

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

然后用 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 写入镜像稍微复杂,但优点是不破坏 U 盘的数据存储功能。在开始之前,请确保您的 USB 设备已经格式化为了 FAT32,EXT 2/3/4 或者 Btrfs 分区格式。为便于 UEFI 引导并/或使用其他操作系统, 您需要使用 FAT32。此外,您必须保证已经安装了 syslinux 软件包(版本 4.04 或者更高)。

1. 将 "arch" 文件夹从 ISO 复制到 USB 驱动器。对于 UEFI 主板,按这里的指示。

2. 把 Syslinux 启动程序安装到 USB 驱动器中,把启动代码安装到主引导记录中,并设置第一分区为可启动:

警告: 谨慎使用 dd 并保证指向的位置正确。下面的操作针对驱动器本身而第一分区,这是一个非常常见的错误。
注意: 某些系统的 mbr.bin 文件位于 /usr/share/syslinux/mbr.bin
$ cd /media/some_folder/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. 调整启动配置文件:

注意: 尽管您可以将 USB 驱动器的 label 设置为 "ARCH_2012XX" (用适当的发布月份代替),但一种可能更好的方法是使用 UUID(这样你之后想要重命名驱动器的 label 时可以在想要重命名驱动器的 label 时毋用担心出错,你也可以不设置它)。 错误地设置 label 或 UUID 会导致著名的 30 seconds error

这里给出您如何同时替换 2 份配置文件中 archisolabel=ARCH_2012XX 的部分,使用等价的写法 archisodevice=/dev/disk/by-uuid/47FA-4071 ,只要使用一行命令:

注意: 运行命令之前要修改 /dev/sdx1,否则它将替换为空白(因为 sdx 不存在)。
$ sed -i "s|label=ARCH_2012.*|device=/dev/disk/by-uuid/$(lsblk -no UUID /dev/sdx1)|" archiso_sys{32,64}.cfg

如果你所使用的发行版中 "syslinux" 软件包的版本低于 4.06,对于 FAT32 文件系统(对于 EXT4 没这个必要)的变通方法,syslinux.cfgAPPEND 一行应作替换:

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

Mac OS X系统上

做一些特定操作后才能在 Mac 下使用 dd 写入 USB 设备。先插入 USB 设备,OS X 会自动挂载它,然后在终端程序中运行:

diskutil list

找出您的USB设备的命名,我的是/dev/disk1。(使用 `mount` 或 `sudo dmesg | tail`。) 然后运行:

diskutil unmountDisk /dev/disk1

卸载 USB 设备上的分区(即 /dev/disk1s1) 但保持设备本身(即 /dev/disk1)。 现在我们可以依照上面写的 Linux 发行版的方法来继续操作(但在 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)

此时,在物理拔出U盘前,弹出您的USB驱动器可能是个好主意。

 diskutil eject /dev/disk1

Windows 系统上

Image Writer for Windows

http://launchpad.net/win32-image-writer 下载程序并运行。选择 arch 镜像文件和 U 盘。Win32 Disk Imager 的文件浏览器默认使用 .img 后缀,如果下载的镜像是 .iso 后缀,您需要手动输入它的名称,这后缀的差异令人不爽,但是映像的写入都很正常。点击写入按钮,然后就能够从 U 盘启动并从U盘安装 Arch Linux了。

Linux Live USB Creator

警告: 这种方法不能用于 dual architecture iso。

Linux Live USB Creator 能用使用您手动下载的 iso 文件,或者自动下载需要的 iso 文件,然后制作一个可引导的 USB key 来安装 Arch。它还支持VirtualBox中USB key的自动安装,用于在Windows里启动Arch。您可以访问 主页 来获得更多信息。

The Universal USB Installer

Universal USB Installer 是一个 Live Linux USB 制作器。它允许你从一列 Linux 发行版中选择出一个,安装到您的 USB 闪存驱动器。

UNetbootin

警告: 不要使用 UNETBOOTIN. 此程序会覆盖默认的syslinux.cfg并中断启动过程。请使用其它程序或方法。

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:\

在本例中,USB 设备的盘符是 E:

当您确定正确的设备后,您可以将镜像写入到您的设备中,通过调用flashnul命令,后面输入您的设备序号,再输入-L及镜像的完整路径。在我的例子中,命令如下

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

在您真的确定要写入这些数据时,输入yes,然后等它写入完成。如果您见到拒绝访问的错误提示,关闭所有打开的资源管理器的窗口。

如果是在 Vista 或者 Win7 下,您需要以管理员的身份打开控制台,否则flashnul不能以块设备的方式访问 U 盘,而只能通过 Windows 提供的驱动句柄写入数据。

注意: 请确认您使用的是盘符而不是数字。flashnul 1rc1, Windows 7 x64. -bgalakazam

Cygwin方式

请确认您安装了Cygwin的 dd 包。 或者如果您不想安装 Cygwin,您可以直接从 http://www.chrysocome.net/dd 下载 dd for windows。

将您的镜像文件放在您的home目录中,在我的例子中是:

C:\cygwin\home\John\

以管理员身份运行cygwin(cygwin必须访问硬件)。用下列命令写入到您的USB设备:

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

其中image.iso要输入cypwin目录内的 iso 镜像文件名,而 \\.\[x]: 里面的 x 是 Windows为您的USB设备指定的盘符。在我的例子里是“\\.\d:”。

在cygwin 6.0版本上可以这样查看正确的分区

cat /proc/partitions

然后根据输出信息写入ISO映像,例如:

警告: 这个操作会不可恢复的删除您USB设备上的所有文件,所以执行这个操作前请先确定您的USB设备中没有任何重要的数据。
dd if=image.iso of=/dev/sdb

dd for Windows

http://www.chrysocome.net/dd 上有基于 GPL 协议的 dd for Windows。相比于 Cygwin,它的优势在于下载量小。使用方法已经在上面的 Cygwin 部分中说明了。

从内存中引导整个 ISO

这个方法使用 Syslinux (简体中文)MEMDISK 来把整个 ISO 镜像加载到内存中,当然您要确保你有足够的内存来载入整个镜像。一旦它加载完毕,您看到了图形菜单,您就可以移除 USB 存储器,甚至在另一台机器上使用它再一次开始执行整个步骤。 这种方法还允许您安装系统到引导的同一个U盘中。

1. 格式化 USB 存储器为 FAT32 分区格式,并创建以下目录:

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

2. 把您要引导的 ISO 复制到 "ISOs" 目录 (例如 archlinux-2012.08.04-dual.iso),解压缩 最新版(例如 syslinux-4.05.zip):

× ./win32/syslinux.exe 到桌面,或者任何地方。

× ./memdisk/memdisk 到 "Settings" 目录。

同时在这个目录下创建一个 syslinux.cfg 文件:

X:\Boot\Settings\syslinux.cfg
DEFAULT arch_iso
 
 LABEL arch_iso
         MENU LABEL Arch Setup
         LINUX memdisk
         INITRD /Boot/ISOs/archlinux-2012.11.01-dual.iso
         APPEND iso
小贴士: 如果您想添加更多的发行版 (测试过 Debian 和 Parted Magic),您可以编辑这个文件。您也可以设置菜单和背景图来代替使用 Arch Linux ISO 中的默认值。请参考 Syslinux

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:

结束了。

注意: 如果你尝试使用 i686 版本引导系统时碰到了著名的 30 seconds error,那么在 Boot Arch Linux (i686) 条目上按 Template:Keypress 键,然后在末尾添加 vmalloc=448M。这个方法仅适用于 MEMDISK。参考: 如果你的映像大于128MiB且你使用的是32位操作系统,你必须增加最大内存使用参数vmalloc(*)

参见