如何通过 USB 设备来安装 CentOS

由 CentOS 6.5 及 7.0 起,建立 USB 储存器的首选方法是利用 dd(范例见下文)。

<!> 其它用户比较喜欢「另类方法」部分内的某些做法,而且已证实适用于 CentOS-6。

以下程序已经被不同用户所测试,但未必能涵盖所有可能性。CentOS 计划建议的做法是运用 dd

推动力

很多新近的系统,尤其是笔记型及超轻量计算机,都未必拥有 CD 或 DVD 机,而视乎网络连接及安装器对网络硬件的支持,进行网络安装可以是困难、不设实际、或根本不可能。这里的程序容许你在没有网络连接、或其它安装媒体的情况下,只利用一支可开机的 USB 设备及目标系统的碟盘来安装 CentOS。

CentOS 6(6.5 以上版本)和 CentOS 7

由 CentOS 6.5 起,你只需通过 dd 把 ISO 档转到 USB 存储器,便能利用它进行安装。

举例说,假设你的 USB 储存器位于 /dev/sdb(请确定这乎合你的装置,不是盲目假设是 /dev/sdb,否则你有可能盖过重要的资料):

dd if=CentOS-6.5-x86_64-bin-DVD1.iso of=/dev/sdb

你必须写进整个装置,而不是期上的分割区(所以是 /dev/sdb 而不是 /dev/sdb1)

当被问及安装来源时,请选择 hard disk,然后指向对应 USB 存储器的设备。

请选择对应 USB 存储器的设备为目标(以上样例是 /dev/sdb)而不是分区 (例如 /dev/sdb1)

同一个方法亦适用于 CentOS 7。此外,由于 CentOS 7 安装程序的映像采用了特殊的分区,而截至 2014 年 7 月,大部份 Windows 工具都不能正确地转移,因此利用 USB 存储器开机时会导致不能预知的结果。(暂时)已知不适用的工具包括 unetbootin、multibootusb 和 universal usb installler —— 请勿采用它们。已确定能正确运作的有 Rufus(有可能视乎所选的选项,因为 rufus 亦有失效的汇报)、Fedora LiveUSB CreatorWin32 Disk ImagerRawrite32dd for Windows。如果采用 Windows 7 以上的版本,请先卸下该 USB 存储器(其中一个方法是在执行工具程序前把存储器格式化),否则 Windows 可能会拒绝写入该存储器,出现 can't write to drive 错误及取消行动。

如果采用 Windows 版的 dd,请执行 dd --list仔细地查看 NT Block Device Objects 的清单,然后采用名称与 \\?\Device\Harddisk1\Partition0 相若的项目,它的描述大概会是 Removable media other than floppy. Block size = 512。请极度小心挑选输出设备,否则你也许会覆盖要保留的数据!在我的系统上我执行 dd if=CentOS-7.0-1406-DVD.iso of=\\?\Device\Harddisk1\Partition0 —— 你的设备名称及指令也许会有所不同!

旧版 CentOS-6

请留意只有最新的 CentOS 发行版本才会获得支持。我们强烈推荐你只安装最新的次要发行版本。因此你不应利用以下方法,除非你有非常迫切的理由要安装一个较旧及不获支持的发行版本。

针对 CentOS-6,有位用户推荐采用 livecd-tools 内的 livecd-iso-to-disk 于 DVD1 上。此方法已配合 EPEL 的 livecd-tools-13.4-1.el6 测试过。多谢论坛用户 AndrewSerk讨论中提出这个推荐。此外请也参阅邮件列表内这封邮件有关安装 qemu 的必要性。

旧方法

<!>汇报指此方法仍适用于 CentOS 6.4

在一支 USB 存储器上创建 CentOS 6.2 发行版本 —— 多谢 Mark Roth 提供 CentOS-6 的步骤,及 CentOS-Docs 邮件列表上的 Yves Bellefeuille 添加及修正内容。

推荐:8GB 或更大的 USB 存储器。

  1. 把 USB 存储器分割为两个分区:第一个是 FAT32,大约 250M;第二个是 ext3,占用余下的空间。(你需要一个 ext3 分区,因为稍后复制的 ISO 文件尺寸超越 FAT32 或 VFAT 分区的最大容量。)
  2. 假若不是自动挂载的,请挂载 DVD(在 /media 或 /mnt 上)。下面假设是 /mnt/USB 及 /mnt/DVD。
  3. 挂载 USB 存储器在 /mnt/USB/ 上。

  4. 复制 /mnt/DVD/isolinux 的目录及内容至 /mnt/USB/

  5. /mnt/USB/isolinux 换名为 /mnt/USB/syslinux

  6. /mnt/USB/syslinux/isolinux.cfg 换名为 /mnt/USB/syslinux/syslinux.cfg

  7. 复制 /mnt/DVD/images 的目录及内容至 /mnt/USB/。(有一个错误已被汇报,因为截至 2012 年 1 月 11 日,安装时需要 .iso(参考下文),但 linux rescue 需要映像的内容来装入程序及执行。)

  8. 假设 USB 存储器是 /dev/sdb
    syslinux /dev/sdb 
    syslinux /dev/sdb1 
  9. 卸下第一个 USB 分区,然后挂载第二个分区
    umount /mnt/USB
    mount /dev/sdb2 /mnt/USB
  10. 复制 .iso 档至 /mnt/USB。请勿使用 LiveCD 或 LiveDVD。选用 DVD1、minimal CD ISO、或按照将 CD 媒体转为 DVD而制成的混合 DVD1/DVD2。切勿复制内容 —— 安装器现在需要 .iso 档本身,它会在安装时自行挂载,跟随上游的安装指南在同样的分区创建一个存放镜像文件的目录。要是你采用 DVD1,而且在安装时将会用到 DVD2,你可选择加上 DVD2。

  11. 可选:在 /mnt/USB 创建 grub.conf。如果你的系统要以 USB 存储器作为首个碟盘,你或许需要这样做,好让你稍后能把它复制至硬盘。如需指引,请参考 HowTos/GrubInstallation 第二节。

  12. 卸下 USB 存储器,它已经准备好了。
  13. 采用 USB 媒体来开机,方法就是在 BIOS 设置它为首个开机设备,或在某些 BIOS 下于 POST 后按 F12 键来选择开机设备。
  14. 在安装过程中,用户会被问到 "What type of media contains the installation image?" 请选择 USB 存储器上的首个分区,它应该会出现在 Hard drive 选单内,接着是便是 /dev/sda1 或对应首个 USB 分区的设备。
  15. 进行分割后,用户会被问要否安装 Grub 开机程序及在哪处安装它。当你以 USB 存储器开机后,BIOS 或许会以为 USB 存储器是首个碟盘。如果 USB 被视为首个设备,却想依般例把 Grub 开机程序安装至硬盘的 MBR 上,用户便需要运用 Grub 的高级安装选项更改硬盘的次序。
  16. 设置 Grub 安装选项后,以下错误信息或许会出现:Missing ISO 9660 image: The installer has tried to mount image #1, but cannot find it on the hard drive。安装程序正在 USB 存储器的首个分区上寻找 ISO 档,但它位于第二个分区。请按 Ctrl-Alt-F2 进入有指令壳的终端機,然后卸下 USB 的首个分区

    umount /mnt/isodir
    挂载 USB 设备上的第二个分区。它第同于上述 #14 采用的设备 —— 举个例说
    mount -t ext3 /dev/sda2 /mnt/isodir
    返回安装程序(Ctrl-Alt-F6)及选择 Retry。
  17. 在没有接上 USB 设备的情况下结束安装及重新开机。要是你在开机时遇上问题,开机记录很可能被写进错误的设备内。见如何重新安装开机管理程序(GRUB),要是你在辨认正确的设备上遇到困难,见排除 GRUB 的问题

另类方法

<!> 这些另类方法只作历史性记录。它们多类只适用于 CentOS 6,而且不该用在 CentOS 7。最佳的方法是利用 dd 把 CentOS ISO 映像复制到 USB 储存器上。

UNetbootin 也许是最受欢迎的「外来」方法。它同时备有 Windows 及 Linux 的执行档,助你把不同的 Linux 发行版本创建为开机用的 USB 存储器。我们不推荐继续采用此工具,因它不能配合新版的 CentOS 映像档。它曾经有一个 anaconda 错误可导致媒体不能使用 —— 这个错误在 Fedora 13 已获修正,在 RHEL/CentOS-6 上理应一样。论坛上有用户汇报它至少适用于 CentOS-6 的 netinstall ISO。当使用 netinstall ISO 时,你可以把整只安装碟的 ISO 档复制到 USB 媒体的根目录里,然后选择「硬盘」安装。


livecd-iso-to-disk 更棒,你可通过 git 取得它:

https://git.fedorahosted.org/cgit/livecd/plain/tools/livecd-iso-to-disk.sh

下载后,chmod +x 然后执行它:

./livecd-iso-to-disk.sh /path/to/iso /dev/partition_of_your_usb_stick

你也可加上这个选项:

--overlay-size-mb 1024

为存储器加上持续功能专用的空间。

你无须再把 ISO 档放置在存储器上,便可直接利用它作安装之用。






采用 Windows

首先,请留意针对新版 CentOS(CentOS > 6.5、CentOS 7)的指引都收录在此页的顶部

由 CentOS 6.5 起,你只需运用 Win32 Disk Imager 这类程序把 ISO 档安装至 USB 存储器上,便能简单地创建一支开机用的存储器。这样做会删除存储器上的所有数据。




Translation of revision 75

zh/HowTos/InstallFromUSBkey (last edited 2017-06-04 09:58:08 by TimothyLee)