使用pxe方式安装系统

作者:wangsuyu_1 发布于:2016-4-23 13:25 分类:Linux应用技巧

1:前言

前两天由于工作的需要,研究了下pxe安装系统的方式。

虽然网上资料也蛮全的了,但是对于我这样对pxe,tftp,dhcp等完全不懂的人来说,就是按部就班地做,也是错误百出,花了好久才找到方法。

所以就记录下具体的操作步骤和一些细节性的问题。

2:准备工作

我的主机系统用的是Fedora 23官方最新的版本,直接官网下载的,因为官方的各种服务软件包比较好下载,如果有错误也不用怀疑软件包的问题。

IP我用了静态的ip,10.3.3.138。

要安装的机器的系统我是选的centos,CentOS-6.4-x86_64-bin-DVD1.iso。因为别人教程里就是按照centos来的,所以就偷个懒,好歹先实现一下。

3:设置BIOS

想要pxe安装系统,启动项肯定要改成pxe优先级最高。而且BIOS里有一个Network Setup总的Onboard Ethernet Contorller给调整为enable。刚开始

一直没法调整网络启动,被排除在了boot order外面。后来慢慢去试了试终于找到了方法。

4:配置dhcpd

原版的Fedora 23并没有装dhcpd相关的包

所以使用dnf install dhcp就可以自动安装相关的包了

然后使用vim 打开/etc/dhcp/dhcp.conf (如果没有这个文件也没关系,直接编辑就好了)

subnet 10.3.3.0 netmask 255.255.255.0 {
range 10.3.3.139 10.3.3.140;
option routers 10.3.0.2;
option subnet-mask 255.255.255.0;
option domain-name "domain.org";//名字好像可以随便写
option domain-name-servers 223.6.6.6;
next-server 10.3.3.138;
filename "pxelinux.0";
}

这里要注意的是

 1:subnet 10.3.3.0 netmask 255.255.255.0
  10.3.3.0是因为我主机的IP是10.3.3.138。应该是要放在同一个网段里

 2:   range 10.3.3.139 10.3.3.140;

 这个是给要安装系统的机器的ip区域范围。我Ip分配的少,就没写那么多。

 其他的照着写就行了

5:配置TFTP

第一步安装包dnf install tftp tftp-server

第二部修改配置

vim /etc/xinetd.d/tftp
service tftp
{
socket_type             = dgram
protocol                = udp
wait                    = yes
user                    = root
server                  = /usr/sbin/in.tftpd
server_args             = -s /tftpboot
disable                 = no
per_source              = 11
cps                     = 100 2
flags                   = IPv4
}
这边就不解释了,不是很理解他的原理。有机会深入研究

6:拷贝一些文件到/tftpboot,如果没有这个目录就自己新建一个

cp /usr/share/syslinux/pxelinux.0 /tftpboot

如果没有这个文件需要安装syslinux,我本来系统就有。

7:挂载光盘到/mnt目录下面,然后把其中的内核等拷贝过去

还有就是把ISO中的/mnt/isolinux/isolinux.cfg 这个文件复制到 /tftpboot/pxelinux.cfg 目录下,并重命名为default。pxelinux.cfg自己去创建

ls /tftpboot 一下可以看到下面的目录,内核是这些文件都是iso /mnt/image/pxeboot中的。但是那些.c32结尾的文件是syslinux目录下的文件,安装的时候提示缺少的,到时候缺什么拷贝什么就可以了,也不用提前拷贝

boot.msg    ldlinux.c32   libutil.c32  pxelinux.cfg  vmlinuz
initrd.img  libcom32.c32  pxelinux.0   vesamenu.c32
8:安装ftp服务软件

dnf install vsftpd

安装好以后,卸载之前挂载在/mnt的iso,然后把光盘给挂载到ftp默认的目录,/var/ftp/pub,然后就可以了。

9:启动相关的服务和关闭防火墙

systemctl start tftp.service
systemctl start xinetd.service
systemctl start vsftpd.service
systemctl start dhcpd.servic

有些服务可能本身就打开了,需要用restart。不然我估计会出问题。可以先用status看看当前服务的状态

systemctl stop firewalld.service(一定要关闭啊,不然主机连接pxe的时候会报PXE-E32:TFTP open timeout)

10:正式开始安装 具体图片见附件。(我找不到直接插图的方法,只好打包上传了,感觉重点再后面却没法表述清晰了,泪流满面啊,需要的人自己下载吧,我把图片按顺序排好序了)

此时把网线什么的都连接好,然后启动客户机。

如果一切顺利,可以看到引导界面。之后选择语言和键盘。

需要注意的是,安装方法(Install Method)需要选择url安装

然后的配置ipv4选择手动配置(Manual configuration)

输入分配给客户机的ip范围和子网掩码和网关,。

等待一会网卡配置好了后,会有一个URL setup的。

输入自己的ftp地址

我的是ftp://10.3.3.138/pub

也可以先在自己的浏览器上面输入,看看能不能找到。之后就是正常的系统安装,就不说了。

11:遗憾

可惜的是uefi方式引导安装一直没有成功(当然系统不是centos了,而是一个fedora 23 aarh版本,而客户机是一个华为的服务器),网上资料也查了很多。不知道哪边有问题,总之感觉一直找不到我开启的tftp服务。报server response timeout。虽然现在好像我师傅找到其他的方法直接把系统做到硬盘里了,

但是如果有人有相关经验并告诉我还是会很感激的。

参考链接:

http://blog.chinaunix.net/uid-24261911-id-2620662.html

基本注意的地方好像都概括了,以后如果想起来有什么需要补充的再回来补充。


回来填坑

uefi引导方式来进行pxe安装,最终还是想办法解决了。只是是把windows系统当做服务端来进行解决的

一安装软件:

下载tftpd32FileZilla Server软件并安装

二系统安装目录


D盘新建一个文件夹b,把系统安装ISO中的文件拷贝到文件夹b中。(此处建议在linux系统中挂载安装ISO然后将其通过移动存储设备拷贝至Windows中,因为Windows虚拟光驱挂载ISO以后会导致安装目录中的repodata下的文件文件名丢失,导致安装失败)

三系统引导目录准备


d盘新建目录tftp,然后把grub.cfggrubaa64.efiinitrd.imgvmlinuz都拷贝到tftp目录下。

grub.cfg编写参考https://docs.fedoraproject.org/en-US/Fedora/21/html/Installation_Guide/chap-pxe-server-setup.html

中的编写,主要是里面的

inst.stage2=http://download.fedoraproject.org
需要注意下,写成自己的ftp服务地址即可


四配置tftpd32和 FileZilla Server

tftpd32省略

打开FileZilla Server软件,点击Edit->Users选项,点击add添加匿名用户anonymous,再点击左侧Shared folders,添加光盘安装目录D盘的b目录。

最后可以用另外一台计算机在浏览器中输入ftp地址,查看是否可以正常登陆。

五系统安装




标签: pxe 系统安装

发表评论:

Copyright @ 2013-2015 蜗窝科技 All rights reserved. Powered by emlog