如何通过 USB 设备来安装 CentOS
来源:互联网 发布:会员卡管理php源码 编辑:程序博客网 时间:2024/06/06 02:46
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 存储器。
- 把 USB 存储器分割为两个分区:第一个是 FAT32,大约 250M;第二个是 ext3,占用余下的空间。(你需要一个 ext3 分区,因为稍后复制的 ISO 文件尺寸超越 FAT32 或 VFAT 分区的最大容量。)
- 假若不是自动挂载的,请挂载 DVD(在 /media 或 /mnt 上)。下面假设是 /mnt/USB 及 /mnt/DVD。
挂载 USB 存储器在 /mnt/USB/ 上。
复制 /mnt/DVD/isolinux 的目录及内容至 /mnt/USB/。
把 /mnt/USB/isolinux 换名为 /mnt/USB/syslinux
把 /mnt/USB/syslinux/isolinux.cfg 换名为 /mnt/USB/syslinux/syslinux.cfg
复制 /mnt/DVD/images 的目录及内容至 /mnt/USB/。(有一个错误已被汇报,因为截至 2012 年 1 月 11 日,安装时需要 .iso(参考下文),但 linux rescue 需要映像的内容来装入程序及执行。)
- 假设 USB 存储器是 /dev/sdb
syslinux /dev/sdb syslinux /dev/sdb1
- 卸下第一个 USB 分区,然后挂载第二个分区
umount /mnt/USBmount /dev/sdb2 /mnt/USB
复制 .iso 档至 /mnt/USB。请勿使用 LiveCD 或 LiveDVD。选用 DVD1、minimal CD ISO、或按照将 CD 媒体转为 DVD而制成的混合 DVD1/DVD2。切勿复制内容 —— 安装器现在需要 .iso 档本身,它会在安装时自行挂载,跟随上游的安装指南在同样的分区创建一个存放镜像文件的目录。要是你采用 DVD1,而且在安装时将会用到 DVD2,你可选择加上 DVD2。
可选:在 /mnt/USB 创建 grub.conf。如果你的系统要以 USB 存储器作为首个碟盘,你或许需要这样做,好让你稍后能把它复制至硬盘。如需指引,请参考HowTos/GrubInstallation 第二节。
- 卸下 USB 存储器,它已经准备好了。
- 采用 USB 媒体来开机,方法就是在 BIOS 设置它为首个开机设备,或在某些 BIOS 下于 POST 后按 F12 键来选择开机设备。
- 在安装过程中,用户会被问到 "What type of media contains the installation image?" 请选择 USB 存储器上的首个分区,它应该会出现在 Hard drive 选单内,接着是便是 /dev/sda1 或对应首个 USB 分区的设备。
- 进行分割后,用户会被问要否安装 Grub 开机程序及在哪处安装它。当你以 USB 存储器开机后,BIOS 或许会以为 USB 存储器是首个碟盘。如果 USB 被视为首个设备,却想依般例把 Grub 开机程序安装至硬盘的 MBR 上,用户便需要运用 Grub 的高级安装选项更改硬盘的次序。
设置 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。在没有接上 USB 设备的情况下结束安装及重新开机。要是你在开机时遇上问题,开机记录很可能被写进错误的设备内。见如何重新安装开机管理程序(GRUB),要是你在辨认正确的设备上遇到困难,见排除 GRUB 的问题。
CentOS-5
注:上述推荐给 CentOS-6,采用 livecd-tools 内 livecd-iso-to-disk 的方法也许更可取,但本作者未试用过它。
先决条件
- 一台支持以 USB 媒体开机的目标安装系统。这可能须要在 BIOS 设置内设置。
- 一支拥有足够空间来容纳安装媒体的 USB 存储器 —— 又名:记忆棒、快闪存储器、手指存储器、等。CentOS 5.4 i386 应该能够放置在一支 4GB 存储器内,x86_64 需要多过 4GB,而一支的 1GB 存储器应该可支持通过首张光盘进行最小安装。同样的技巧亦适用于家居的 USB 硬盘。这里假设了整个程序是已图像界面(GNOME/KDE/等)进行,因此这个 USB 媒体将会被自动挂载。
一台可用的 Linux 系统(Linux 多数安装在另一台计算机上、运行于 Live CD、或者在一虚拟机器上),连同 syslinux(假若未安装的话,"yum install syslinux" 或者以发行版本的原生组件管理程序安装)。本作者在使用 CentOS-5.3/5.4 的 syslinux 组件时遇上了问题。由 CentOS 的 LiveCD Tools 软件库所提供的组件却能正常运作。
- 一套针对所需结构的 CentOS 安装 CD ISO 映像,或 DVD ISO 映像。
你或许会需要更改设备名称、结构、及/或 syslinux 路径来配合你安装了的发行版本、情况、及首选。
当剪贴以下指令时,请留心地按你的处境作出调整!
程序
假设 USB 存储器以 /dev/sdg 出现(请按你的处境调整 —— 这很大机会是不相同的)而 CentOS 5.4 i386 将会被安装。
成为 root 用户。在 USB 媒体上创建一个细小的 VFAT 分区(20 MB 应该已足够了)及一个大的 Linux 分区。请将 VFAT 分区设置为可开机的。
fdisk /dev/sdg
在 fdisk 利用 m 来显示项目选单。指令的次序大概是这样(去除 # 注译):d # 删除现有分区 —— 按需要重复n # 新增分区p # 主分区1 # 分区编号<enter> # 采用缺省值+20m # 增加 20 MBt # 更改类型1 # 分区编号b # VFATn # 新增分区p # 主分区2 # 分区编号<enter> # 采用缺省值<enter> # 采用缺省值a # 切换可开机标志1 # 分区编号w # 写入磁盘
在完成后应该类似这个样子:Disk /dev/sdg: 7948 MB, 7948206080 bytes81 heads, 10 sectors/track, 19165 cylindersUnits = cylinders of 810 * 512 = 414720 bytesDisk identifier: 0x00000000 Device Boot Start End Blocks Id System/dev/sdg1 * 1 65 26320 b W95 FAT32/dev/sdg2 66 19165 7735500 83 Linux
- 创建文件系统:
mkfs.vfat -n BOOT /dev/sdg1mkfs.ext2 -m 0 -b 4096 -L DATA /dev/sdg2
拔出后再插入这个 USB 媒体。这些分区现在应该被挂载在 /media/BOOT 及 /media/DATA。 - 复制 CentOS 的 ISO 档到那个 ext2 分区内。针对 CD 映像档:
cd /dir/of/iso/imagesmkdir /media/DATA/centosmkdir /tmp/cdimagemount -ro loop CentOS-5.4-i386-bin-1of6.iso /tmp/cdimagecp *sum* /media/DATA/centosfor i in 1 2 3 4 5 6; do cp -v CentOS-5.4-i386-bin-${i}of6.iso /media/DATA/centos/; sync; donecd /media/DATA/centosgrep 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/; synccd /media/DATA/centosgrep DVD sha1sum.txt | sha1sum -c - CentOS-5.4-i386-bin-DVD.iso
- 在 VFAT 分区及 MBR 内安装并设置 syslinux:
syslinux -s /dev/sdg1dd if=/usr/share/syslinux/mbr.bin of=/dev/sdgcd /media/BOOTcp -rv /tmp/cdimage/isolinux syslinuxmv syslinux/isolinux.cfg syslinux/syslinux.cfgrm -f syslinux/isolinux.binumount /tmp/cdimage<your-favorite-editor> syslinux/syslinux.cfg
在各部份的 append 语句内加入:method=hd:sda2:/centos
若然要采用 kickstart:ks=hd:sda2:/ks.cfg method=hd:sda2:/centos
- 使用图像界面来「安全地删除」这个 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
此外,老实的说,我不应该领任何功劳;我在网上找到大部份的数据…… _
早前我亦汇报了:
- 我的 HP 服务器似乎不愿意用只读的 USB 存储器开机。
- Anaconda 过早尝试读入 ks.cfg……假如我在硬件检测完成后(只是 2-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 档放置在存储器上,便可直接利用它作安装之用。
论坛用户 Al_Stu 推荐这个方法。
在 USB 存储器上创建安装碟的另一个做法。
在没有网络的情况下,另一个可行的方法就是按照安装指南中所记载,用 USB 存储器以 diskboot.img 开机,然后利用目标计算机上的 ISO 映像档进行硬盘安装。
论坛用户 ixeous 描述利用 GRUB2 来创建一支开机用的 USB 存储器以备不时之需。
这不是一则广告,但 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 工具。
有一位 CentOS 邮件列表的成员推荐Pendrivelinux.com。
这页的英文版由 PhilSchaffner 创建。欢迎其它拥有编辑权限的 Wiki 贡献者作出更正或添加。
Translation of revision 52
- 如何通过 USB 设备来安装 CentOS
- 如何通过 USB 设备来安装 CentOS
- 如何通过 USB 设备来安装 CentOS
- 如何通过 WinUSB 功能访问 USB 设备
- 如何通过一个USB闪盘安装WindowsVista
- 【安全牛学习笔记】使用 USB 设备来安装系统
- 通过组策略及注册表如何禁用USB设备
- WinCE 设备如何通过 USB 与 Android 手机互联?
- 如何禁止USB设备
- 如何屏蔽USB设备
- 如何查看USB设备
- usb设备如何检测
- 如何通过编译内核来安装Mosix?
- U盘通过局域网来安装CentOS 6.0
- 用U盘通过局域网来安装CentOS 6.0
- 用U盘通过局域网来安装CentOS 6.0
- centos通过添加chrome源来安装chrome
- 如何禁用 USB 存储设备
- 线程并发集合实现java生成消费模型(ArrayBlockingQueue和ConcurrentMap)
- 爱奇艺视频窗口显示不出来解决办法
- 从键盘读取三个数值并求平均值
- PHP 遇到 2038年的問題該如何解決
- Linux字符界面操作
- 如何通过 USB 设备来安装 CentOS
- C/C++语言void及void指针深层探索
- 栈的压入弹出序列
- WebLogic 11g重置用户密码过程
- Windows命令行学习
- Spring Java 发送各种邮件
- nyoj 70阶乘因式分解(二)(数学)
- 如何用LR11测试flex开发的平台
- java-----五子棋小游戏(二)-----黑白棋落子制作