无光驱、无USB,网络安装CentOS

Yuliang Jin

实验室有台非常老的机器,今天被我翻出来打算当作我们Hadoop集群中的一个节点。这台机器上原有一个Fedora 8可以用,不过我还是想给它安装一个全新的CentOS 5.7。不过有个问题,就是这台机器太老了,光驱和USB接口竟然全都坏掉了。

看起来问题似乎很棘手,不过最后还是找到了一个办法,不借助光驱或者U盘等任何一种外部设备,通过网络将新的CentOS安装到这台机器上。也许你会疑惑,网络安装不也需要一张CD或者U盘之类的启动介质吗?确实,通常的网络安装也需要在某种介质中写入网络安装的镜像文件,使用它们启动来安装系统。但是我的机器中原本安装了一个Fedora 8,我们可以利用这个旧系统中的GRUB,来启动网络安装的内核。下面是详细步骤:

首先,启动旧的操作系统,下载CentOS网络安装的ISO镜像并校验它的MD5值:

wget http://mirrors.163.com/centos/5.7/isos/i386/CentOS-5.7-i386-netinstall.iso http://mirrors.163.com/centos/5.7/isos/i386/md5sum.txt
diff <(grep "netinstall" md5sum.txt) <(md5sum CentOS-5.7-i386-netinstall.iso) && echo OK

然后我们把这个ISO镜像中唯一的目录,isolinux目录,释放到/boot目录下。这里我们将isolinux放在/boot目录下,只是为了后面的步骤方便。因为旧系统的GRUB启动后,这里是默认的根目录。

mkdir tmp
mount -o loop CentOS-5.7-i386-netinstall.iso tmp/
cp -Rv tmp/isolinux/ /boot/

再然后,重启操作系统。在GRUB菜单出现后按c进入GRUB命令行。敲下面的命令启动isolinux目录中的迷你系统。

kernel /isolinux/vmlinuz
initrd /isolinux/initrd.img
boot

如果isolinux被放在了其他的分区里,还需要使用GRUB的root命令来指定isolinux目录的位置。

这样网络安装镜像中的系统就可以正确的启动了,和我们使用光盘或者U盘的效果一样。接下来只需在Installation Method这一屏上选择HTTP或者FTP方式,然后配置好网络,选择一个镜像站点的地址或者自己搭建一个本地CentOS服务器(会更快),就可以按照常规的步骤安装CentOS了。

(This post is also available in English: link)

© 2011, Yuliang Jin. All rights reserved.
This post is under a Creative Commons Attribution-ShareAlike 3.0 Unported License.


2 Responses to “无光驱、无USB,网络安装CentOS”

  • Alien Says:

    这个太危险了吧,如果中途出错就只有拆硬盘了

    [Reply]

    Yuliang Jin Reply:

    @Alien 哈哈,确实,一次性必须成功啊。。。幸好我没出错,不然就毁了,机器太老哪儿都不好使啊~

    [Reply]

Leave a Reply

What is 54 + 572 ?
Please leave these two fields as-is:
IMPORTANT! To be able to proceed, you need to solve the following simple math (so we know that you are a human) :-)