一直就很想通过网络安装一下我钟爱的linux系统,老是搞不定,昨天花了一整天的时间来琢磨研究,功夫不负有心人,搞定啦!highing(妹的,怕用错单词 去查了下,妹的字典也骗人)我就要highing ^-^
怕以后忘了,特记作在此,废话少说,开始吧!
先说下原理:首先开机从网络启动,它需要从网络里面找dhcp服务器,dhcp服务器会给它分配ip地址、网关、dns、还有tftp服务,然后在tftp服务器里面找启动文件和启动配置文件,启动文件也就是所谓的bootloader,根据bootloader的配置文件,加载tftp服务器上的linux内核(vmlinuz)和虚拟文件系统(initrd.img),内核的配置参数 在bootloader配置文件里面已经指定,这里我不明白内核的配置参数为什么会由bootloader的配置文件提供,原来内核是由bootloader加载的,所以参数是它给内核提供,这样一看也不难理解了。内核参数里面,会包涵一个系统安装源,我选择nfs安装源,内核加载后,会加载安装源的文件并运行,(其实安装源上的文件就是一个linux安装光盘上的文件)这样其实相当于我们给系统运行了一张系统安装光盘,下面你就可以安装你的系统在你的机器上啦。
好了 说说具体怎么做的吧
一、安装配置dhcp服务器 它能提供ip、网关、dns、tftp服务器的地址和tftp服务器上bootloader的名字。
1、安装dhcp服务器sudo apt-get install isc-dhcp-server -y
2、配置dhcp服务:配置文件为/etc/dhcp/dhcpd.conf,内容如下
option space pxelinux;
option pxelinux.magic code 208 = string;
option pxelinux.configfile code 209 = text;
option pxelinux.pathprefix code 210 = text;
option pxelinux.reboottime code 211 = unsigned integer 32;
option architecture-type code 93 = unsigned integer 16;
option domain-name-servers 202.100.64.68; \\dns
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1; \\网关
range 192.168.1.100 192.168.1.110; \\分配地址池
class "pxeclients" {
match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
next-server 192.168.1.53; \\nfs服务器地址
filename "pxelinux/pxelinux.0"; \\nfs服务器上bootloader文件路径
}
}
注意:\\(注释)是我后面加上去的,真正的配置文件里面没有\\后面的内容,也包括\\(怕有些朋友不理解\\是注释的意思,啰嗦一下),下面的配置文件都是这样注释的。
二、安装配置tftp服务器 它能提供bootloader文件和配置文件 linux内核,linux虚拟文件系统文件。
1、安装tftp服务器sudo apt-get install tftpd tftp -y
其实这一步我把tftp客户端也装上了
2、配置tftp服务器
配置文件为/etc/xinetd.d/tftp
内容如下:
service tftp
{
protocol = udp
port = 69
socket_type = dgram
wait = yes
user = nobody
server = /usr/sbin/in.tftpd
server_args = /tftpboot\\tftp根目录
disable = no \\xinet服务里是否关闭tftp服务 no即为开
}
3、放置相应的文件在/tftpboot目录下
3.1/tftpboot/pxelinux目录下文件及目录
initrd.img pxelinux.0 pxelinux.cfg(此处为目录) vesamenu.c32 vmlinuz
分别说明各文件
initrd.img(linux虚拟文件系统文件,linux安装光盘isolinux目录里面的)
pxelinux.0(bootloader文件,网上下载的,各处找不到,云盘里面搜的)
vesamenu.c32(bootloader调用的一个文件,我是安装了syslinux,然后(dpkg -L syslinux| grep vesamenu.c32)搜索这个文件的安装位置,copy过来的。)
vmlinuz(linux内核文件,linux安装光盘isolinux目录里面的)
3.2添加pxelinux.0的配置文件
mkdir pxelinux.cfg
cd pxelinux.cfg
sudo vim default
default文件内容如下:
default vesamenu.c32
prompt 1
timeout 600
label linux
menu label Install system
menu default
kernel vmlinuz
append initrd=initrd.img ip=dhcp inst.repo=nfs:192.168.1.53:/nfs \\指定了nfs服务器的ip地址
保存退出
三、配置nfs服务器 提供nfs服务,共享一张安装光盘
1、安装nfs服务程序及客户端程序sudo apt-get install nfs-kernel-server nfs-common -y
2、配置nfs服务 配置文件为/etc/exports
内容如下:
/nfs *(rw,sync,no_root_squash)
3、创建/nfs目录,并挂在CentOS.iso文件
sudo cd /;mkdir nfs
sudo mount CentOS.iso /nfs
四、启动三个服务
sudo service isc-dhcp-server restart;sudo service nfs-kernel-server restart;sudo service xinetd restart
^-^大功搞成,去测试吧!
本文出自 “厚德载福” 博客,请务必保留此出处http://jerrywilson.blog.51cto.com/8326089/1631638
原文地址:http://jerrywilson.blog.51cto.com/8326089/1631638