网上有一些通过网络安装 linux 的文章,我觉得多数不够详尽,我是综合看了好几篇文章才搞定的,现在把整个过程详细地记录一下(提示一下:还没用 cd 装过 linux 的同学还是先从光盘安装学起吧 ^_^ )。这个实验中我用的是 RHEL4 ,其他版本也是可以的。

先来大概说一下网络安装 linux 的基本原理。我们是通过 PXE (Pre-boot Execution Environment) 这个东东(其实是 intel 设计的一个协议)来进行安装的,它可以使计算机通过网络启动。 PXE 协议分为 server client 端, client 就是我们即将要装 linux 的裸机。

PXE 协议的成功运行需要解决 2 个问题:

1 既然通过网络传输,那计算机启动的时候它的 ip 是怎么来的?

2.   通过什么协议下载操作系统所需要的文件?

我们下面的配置安装的过程就是围绕上面 2 个问题展开的:

第一,    解决 ip 的问题。这个问题应该想得到,还没有系统怎么配 ip 啊,当然是要用到 dhcp ~

第二,    解决传输的问题。这个你应该也想到了吧,对啦就是 ftp ,但是补充一下,还需要 tftp 这个东东。

好啦,废话不多讲啦,动手吧。注意我们的 dhcp ftp tftp 都是要安装在 server 端的,先来配置 server 端(基本上只要配置 server ok 了):

上面这个就是 server ip 192.168.0.110/255.255.255.0 ,对了忘了告诉大家这个实验是在 vmware 上做的,我的虚拟网卡是设为 vmnet2 的(担心和局域网的 dhcp 搞混所以不用桥接!)

# vi /etc/dhcpd.conf

主要是把关于 PXE 的配置加到 dhcp 中就是了, filename “pxelinix.0”  这一句是要在 ftp 中用到的文件之一,不懂没关系,先照着做就是了。启动服务留到后面一起来吧。

Dhcp 搞定后就轮到 tftp 啦,还是先来安装一下吧 ~

# vi /etc/xinetd.d/tftp

这个 tftp 只要这样配就好了 (注意把原来的 disable=yes 该成 no ,简单吧 ^_^

那个 ftp 就更简单了,等下直接启动 vsftp (关于 vsftp 如有疑问可以看我的另一篇 vsftp 博客)就 ok 了。

你可能会问,就这样就好了吗,这样连上去就能得到我要的 linux 了吗?当然不是,我们的 linux 安装文件还没放上去呢!我们要做的就是把 RHEL4 四张光盘里的文件放到 tftp 目录上,动手吧 ~

# mkdir  /tftpboot/pxelinux.cfg                              (创建 tftp 目录)

然后把 cd1 放入 cdrom (注意,目前位置我们一直是在弄 server )并 mount.

# mount  /media/cdrom

# cp  /media/cdrom/isolinux/isolinux.cfg  /tftpboot/pxelinux.cfg

# cp  /media/cdrom/isolinux/*.msg  /tftpboot/pxelinux.cfg

# mv  /tftpboot/pxelinux.cfg/isolinux.cfg  /tftpboot/pxelinux.cfg/default   (需要重命名)

# cp  /usr/lib/syslinux/pxelinux.0  /tftpboot     # 这个 pxelinux.0 就是 dhcp 中的那个

# cp  /media/cdrom/p_w_picpaths/pxeboot/vmlinuz  /tftpboot

# cp  /media/cdrom/p_w_picpaths/pxeboot/initrd.img  /tftpboot

以上做完后 /tftpboot 中的内容如下:
pxelinux.0  pxelinux.cfg   vmlinuz  initrd.img

目录 pxelinux.cfg 中有文件 default

还需要把所有光盘的文件放到 ftp 目录上去            (要换 n cd ,汗!

# mkdir /linuxsetup

# cp –R /media/cdrom/*  /linuxsetup           ( 此命令要跑四次,第 2 3 4 次提示是否覆盖请输入 y)

OK ,配置工作已经完成了,启动需要的服务吧

# /etc/init.d/dhcpd restart

# /etc/init.d/vsftpd restart

# /etc/init.d/xinetd restart

好了, server 端的所有操作就完成了,到 client 端安装吧 ^_^

注意 client 端的虚拟网卡要和 server 同类型,这里是 vmnet2 啦。

开机后进入 bios (虚拟机用 F2 )选择启动顺序为 Network boot…… 然后:

注意最后一行 linux askmethod 是需要我们输入的。然后按照它的提示一步一步下去喽 ~

上面最好不要再选 dhcp 了,否则获取 hostname 会很慢(能不能获得到我还没验证

还记得前面创建的 ftp 目录吧,就是这里的 /linuxsetup 啦,注意不要用匿名

注意这个 ftpuser 要具有对 /linuxsetup 的读取权限哦 ~ 再后面的安装就和 cd 安装的过程类似了,只是没有图形桌面而已 ^_^

grub 放到 mbr (主引导扇区)内。

Ok ,这次是真的 ok 了,按提示设置 root 密码, reboot 就可以玩弄你的 linux 了!

 

特别注意,有几个容易出错的地方:

1、   请先确认你的 server client 是可以通讯的

2、   请确认你的防火墙设置好了(允许 dhcp tftp ftp 等等),或者是关闭了

3、   请注意你的 ftpuser 的权限,关于 vsftp 有疑问可以找另一篇 vsftp 的文章

 

看起来整个过程还是有点麻烦的,有兴趣的朋友可以自己玩玩,有问题请留言 . 又问题留言一起交流联系地址: [email protected]