现在的位置: 首页 > 综合 > 正文

如何通过 USB 设备来安装 CentOS

2017年11月24日 ⁄ 综合 ⁄ 共 7006字 ⁄ 字号 评论关闭

http://wiki.centos.org/zh/HowTos/InstallFromUSBkey?highlight=%286.4%29%7C%28usb%29

如何通过 USB 设备来安装 CentOS

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

以下程序已经被不同用户所测试,但未必能涵盖所有可能性。CentOS 计划并没有一个官方的推荐做法,因为获支持的安装程序是 anaconda,或者是 Live CD。 安装者必须留意,及乐于尝试。

推动力

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

CentOS 6.5

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

例如:

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

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

旧版 CentOS-6

针对 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-5

注:上述推荐给 CentOS-6,采用 livecd-tools 内 livecd-iso-to-disk 的方法也许更可取,但本作者未试用过它。

先决条件

  1. 一台支持以 USB 媒体开机的目标安装系统。这可能须要在 BIOS 设置内设置。
  2. 一支拥有足够空间来容纳安装媒体的 USB 存储器 —— 又名:记忆棒、快闪存储器、手指存储器、等。CentOS 5.4 i386 应该能够放置在一支 4GB 存储器内,x86_64
    需要多过 4GB,而一支的 1GB 存储器应该可支持通过首张光盘进行最小安装。同样的技巧亦适用于家居的 USB 硬盘。这里假设了整个程序是已图像界面(GNOME/KDE/等)进行,因此这个 USB 媒体将会被自动挂载。
  3. 一台可用的 Linux 系统(Linux 多数安装在另一台计算机上、运行于 Live CD、或者在一虚拟机器上),连同 syslinux(假若未安装的话,"yum install syslinux" 或者以发行版本的原生组件管理程序安装)。本作者在使用 CentOS-5.3/5.4 的 syslinux 组件时遇上了问题。由 CentOS 的 LiveCD
    Tools 软件库
    所提供的组件却能正常运作。

  4. 一套针对所需结构的 CentOS 安装 CD ISO 映像,或 DVD ISO 映像。

你或许会需要更改设备名称、结构、及/或 syslinux 路径来配合你安装了的发行版本、情况、及首选。

当剪贴以下指令时,请留心地按你的处境作出调整!

程序

假设 USB 存储器以 /dev/sdg 出现(请按你的处境调整 —— 这很大机会是不相同的)而 CentOS 5.4 i386 将会被安装。

  1. 成为 root 用户。在 USB 媒体上创建一个细小的
    VFAT 分区(20 MB 应该已足够了)及一个大的 Linux 分区。请将 VFAT 分区设置为可开机的。

    fdisk /dev/sdg 

    在 fdisk 利用 m 来显示项目选单。指令的次序大概是这样(去除 # 注译):

    d # 删除现有分区 —— 按需要重复
    n # 新增分区
    p # 主分区
    1 # 分区编号
    <enter> # 采用缺省值
    +20m # 增加 20 MB
    t # 更改类型
    1 # 分区编号
    b # VFAT
    n # 新增分区
    p # 主分区
    2 # 分区编号
    <enter> # 采用缺省值
    <enter> # 采用缺省值
    a # 切换可开机标志
    1 # 分区编号
    w # 写入磁盘
    

    在完成后应该类似这个样子:

    Disk /dev/sdg: 7948 MB, 7948206080 bytes
    81 heads, 10 sectors/track, 19165 cylinders
    Units = cylinders of 810 * 512 = 414720 bytes
    Disk identifier: 0x00000000
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdg1   *           1          65       26320    b  W95 FAT32
    /dev/sdg2              66       19165     7735500   83  Linux
    

  2. 创建文件系统:
    mkfs.vfat -n BOOT /dev/sdg1
    mkfs.ext2 -m 0 -b 4096 -L DATA /dev/sdg2
    

    拔出后再插入这个 USB 媒体。这些分区现在应该被挂载在 /media/BOOT 及 /media/DATA。

  3. 复制 CentOS 的 ISO 档到那个 ext2 分区内。针对 CD 映像档:
    cd /dir/of/iso/images
    mkdir /media/DATA/centos
    mkdir /tmp/cdimage
    mount -ro loop CentOS-5.4-i386-bin-1of6.iso /tmp/cdimage
    cp *sum* /media/DATA/centos
    for i in 1 2 3 4 5 6; do cp -v CentOS-5.4-i386-bin-${i}of6.iso /media/DATA/centos/; sync; done
    cd /media/DATA/centos
    grep of6 sha1sum.txt | sha1sum -c - CentOS-5.4-i386-bin-?of6.iso
    

    针对 DVD 映像样,请用下面两行取代上面的 for 回圈

    cp -v CentOS-5.4-i386-bin-DVD.iso /media/DATA/centos/; sync
    cd /media/DATA/centos
    grep DVD sha1sum.txt | sha1sum -c - CentOS-5.4-i386-bin-DVD.iso
    

  4. 在 VFAT 分区及 MBR 内安装并设置 syslinux:
    syslinux -s /dev/sdg1
    dd if=/usr/share/syslinux/mbr.bin of=/dev/sdg
    cd /media/BOOT
    cp -rv /tmp/cdimage/isolinux syslinux
    mv syslinux/isolinux.cfg syslinux/syslinux.cfg
    rm -f syslinux/isolinux.bin
    umount /tmp/cdimage
    <your-favorite-editor> syslinux/syslinux.cfg
    

    在各部份的 append 语句内加入:

      method=hd:sda2:/centos
    

    若然要采用 kickstart:

      ks=hd:sda2:/ks.cfg method=hd:sda2:/centos
    

  5. 使用图像界面来「安全地删除」这个 USB 媒体。将它转到目标系统,开机并进行安装。

备注

  • 一般信息可参阅安装指南

  • 在测试这个程序的过程中,某些 MicroSDHC 媒体不能运作,就算重新分割及格式化后,在写入所有 iso 映像档时均出现错误。来自另一个生产商的同类型媒体却没有问题。假如你遇上问题,请试用另一张媒体,或者在格式化后重试。Windows(很不幸 —— 对不起)上的 Panasonic
    SDHC Formatter
     对不合作的 SD 媒体来说非常有好。请运用包含删除及调整尺寸的完整格式化选项,而不是快速格式化的选项。

    Format type - FULL(Erase ON) 
    Format size adjustment ON
    

  • 你或许会须要用 CD ISO 档,因为有些人汇报 DVD 映像档在 USB 存储器上会出错。本作者的 CD 及 DVD 映像档都能正常运作。
  • 尝试以只读的 USB 媒体来进行安装会产生大数有关只读媒体的错误信息。这些警告出现后我没有尝试继续安装。

<!> 进行安装时,请确保 Anaconda 安装程序将开机记录写入正确位置,而不是在 USB 存储器内。你多数须要用
GRUB 的「高级开机程序选项」来更改设备的次序,把目标开机设备放在清单的顶部,好让 GRUB 能被正确地安装。假如你没有这样做,GRUB 开机程序便会被写入 USB 存储器,你必须在存储器重装 syslinux MBR 才能运作,而且系统不能开机。如果你落在这个境况中,请参阅 zh/TipsAndTricks/ReinstallGRUB 这篇文章,及/或参阅 SuperGRUB

  • 采用 extlinux 较 syslinux 也许更可取,因为它不须应用 FAT 分区。


  • 多谢 John Doe 在以下的 CentOS 邮件列表电邮内提供了基本的数据:

http://lists.centos.org/pipermail/centos/2009-June/077860.html


  • 来自 OP 的额外注释:

唔,是我的错……我是用 kickstart 档的(并且用 HP 磁盘数组控制器),而我忘记了我须要在当中加入:

 bootloader --driveorder=cciss/c0d0,sda --location=mbr

kickstart 方面,我采用以下设置:

  • 在 syslinux/syslinux.cfg:

  append initrd=initrd.img ks=hd:sda2:/ks.cfg method=hd:sda2:/centos

  • 在 /media/DATA/ks.cfg(内里的相关部份):

  harddrive --partition=sda2 --dir=/centos
  ignoredisk --drives=sda
  bootloader --driveorder=cciss/c0d0,sda --location=mbr

此外,老实的说,我不应该领任何功劳;我在网上找到大部份的数据…… _

早前我亦汇报了:

  1. 我的 HP 服务器似乎不愿意用只读的 USB 存储器开机。
  2. Anaconda 过早尝试读入 ks.cfg……假如我在硬件检测完成后(只是 2-3 秒后)重试,那便没有问题。
  3. 有一句 "cannot mount read/write, will mount read-only" 的错误信息出现(我喜欢只读模式)

另类方法

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


  • Marcus Moeller 推荐:

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

http://git.fedorahosted.org/git/?p=livecd;a=blob_plain;f=tools/livecd-iso-to-disk.sh;hb=HEAD

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

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

你也可加上这个选项:

--overlay-size-mb 1024

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

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




  • 在没有网络的情况下,另一个可行的方法就是按照安装指南中所记载,用 USB 存储器以
    diskboot.img 开机,然后利用目标计算机上的 ISO 映像档进行硬盘安装。



  • 这不是一则广告,但 OSDisc.com 以相宜的价格发售多款载有 CentOS 的 USB 开机媒体。假如有人试用它们,烦请在论坛上作出汇报。

采用 Windows

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

请注意单单把 ISO 档复制到 USB 存储器上是行不通的。


上述所提及的 UNetbootin 有一个 Windows 版本,它能为你把不同的 Linux 发行版本创建为开机用 Live USB 存储器,包括
CentOS。


  • 论坛用户 ron_l_j 推荐名为 iso2usb 的
    Windows 工具。



  • 这页的英文版由 PhilSchaffner 创建。欢迎其它拥有编辑权限的 Wiki 贡献者作出更正或添加。

Translation of revision 52

抱歉!评论已关闭.