码迷,mamicode.com
首页 > 系统相关 > 详细

通过网络安装 Linux 系统

时间:2014-11-15 15:35:30      阅读:286      评论:0      收藏:0      [点我收藏+]

标签:操作系统   网络安装   linux   server   

 通过网络安装 Linux 系统

项目内容:配置 PXE+DHCP+vsftp,实现客户端网络安装 linux 操作系统

阶段目的:目的是体验如何通过网络引导,安装 redhat 系统,解决了很多时候没有光驱,却需要装系统的需求。

项目环境:服务器 IP 172.17.10.100/16  RHEL6 系统

实验之前建议禁用 selinux,关闭防火墙,以免影响实验效果

1.服务器端配置

配置基于 FTP yum

[root@zdjserver ~]# mount /dev/cdrom /mnt

[root@zdjserver ~]# yum install vsftpd

[root@zdjserver ~]# mkdir /var/ftp/rhel6

[root@zdjserver ~]# mount /dev/cdrom /var/ftp/rhel6

//实际环境可以将 rhel6 光盘的内容复制到/var/ftp/rhel6

[root@zdjserver ~]# service vsftpd restart

Shutting down vsftpd:                                      [FAILED]

Starting vsftpd for vsftpd:                                [  OK  ]

[root@zdjserver ~]# lftp 172.17.10.100

lftp 172.17.10.100:~> ls rhel6       

-r--r--r--    3 0        0            8794 Sep 02  2010 EULA

-r--r--r--    3 0        0           18092 Jun 30  2010 GPL

dr-xr-xr-x    3 0        0            2048 Sep 22  2010 HighAvailability

dr-xr-xr-x    3 0        0            2048 Sep 22  2010 LoadBalancer

dr-xr-xr-x    2 0        0          477184 Sep 22  2010 Packages

……………………………………...

lftp 172.17.10.100:/> quit

编辑 yum 源配置文件

[root@zdjserver ~]# vim /etc/yum.repos.d/redhat.repo

[root@zdjserver ~]# cat /etc/yum.repos.d/redhat.repo

[local]

name=zdj

baseurl=ftp://172.17.10.100/rhel6

enabled=1

gpgcheck=0

[root@zdjserver ~]# yum clean all     ----刷新yum

安装必要软件

[root@zdjserver ~]# yum install xinetd tftp-server dhcp -y

//xinetd 超级守护进程软件,由于 tftp-server 是非独立服务,所以必须要安装 xinetd

//tftp-server 给客户端分发启动文件

//dchp 给客户机分配 IP

配置 pxe 引导所需的文件和 tftp 服务

[root@zdjserver ~]# yum install syslinux -y

[root@zdjserver ~]# cp /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot/

--------复制 pxelinux.0 文件到 tftp 服务的根目录中

[root@zdjserver ~]# cd /var/ftp/rhel6/isolinux/

[root@zdjserver isolinux]# pwd

/var/ftp/rhel6/isolinux

[root@zdjserver isolinux]# ls

boot.cat  grub.conf   isolinux.bin  splash.jpg  vesamenu.c32

boot.msg  initrd.img  isolinux.cfg  TRANS.TBL   vmlinuz

 

[root@zdjserver isolinux]# cp vesamenu.c32 splash.jpg vmlinuz initrd.img  /var/lib/tftpboot/

-----------复制引导所需的 4 个文件到 tftp 服务根目录

root@zdjserver isolinux]# mkdir /var/lib/tftpboot/pxelinux.cfg

-----------创建保存 pxe 引导的配置文件的目录,注意名称一定要是 pxelinux.cfg

[root@zdjserver isolinux]# cp isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

-----------复制 pxe 引导的配置文件的模版

[root@zdjserver isolinux]# vim /var/lib/tftpboot/pxelinux.cfg/default

----------编辑引导配置文件

[root@zdjserver isolinux]# cat /var/lib/tftpboot/pxelinux.cfg/default

default vesamenu.c32       -----》默认加载菜单模块

#prompt 1

timeout 600                 -----》超时时间

display boot.msg            -----》引导菜单前的启动消息,可以自定义文字或图案,如果没有这个文件可以删除这一行

menu background splash.jpg

menu title Welcome to Red Hat Enterprise Linux 6.0!

menu color border 0 #ffffffff #00000000

menu color sel 7 #ffffffff #ff000000

menu color title 0 #ffffffff #00000000

menu color tabmsg 0 #ffffffff #00000000

menu color unsel 0 #ffffffff #00000000

menu color hotsel 0 #ff000000 #ffffffff

menu color hotkey 7 #ffffffff #ff000000

menu color scrollbar 0 #ffffffff #00000000

-------------上面是启动菜单背景图片,标题和颜色的定义

 

label linux

  menu label ^Install rhel6  -----》显示的菜单名称,^表示颜色反色显示

menu default              -----》默认启动此菜单

kernel vmlinuz           -----》加载内核文件

 append initrd=initrd.img

-------------加载内核虚拟磁盘映像文件,这两个文件刚刚已经复制到 tftp 根目录里面

label local                 -----》本地磁盘启动菜单,可以留着

 menu label Boot from ^local drive

  localboot 0xffff

配置 tftp 服务

[root@zdjserver isolinux]# chkconfig tftp on

[root@zdjserver isolinux]# service xinetd restart

Stopping xinetd:                                           [FAILED]

Starting xinetd:                                           [  OK  ]

[root@zdjserver isolinux]# lsof -i:69  ----》检查 tftp 服务的 udp69 端口是否打开

COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

xinetd  5965 root    5u  IPv4  28918      0t0  UDP *:tftp

 

[root@zdjserver isolinux]# vim /etc/xinetd.d/tftp

[root@zdjserver isolinux]# cat /etc/xinetd.d/tftp   ----》查看 tftp 服务的配置文件

# default: off

# description: The tftp server serves files using the trivial file transfer \

# protocol.  The tftp protocol is often used to boot diskless \

# workstations, download configuration files to network-aware printers, \

# and to start the installation process for some operating systems.

service tftp

{

disable = no

socket_type = dgram

protocol = udp

wait = yes

user = root

server = /usr/sbin/in.tftpd

server_args = -s /var/lib/tftpboot

//tftp 服务给客户机分发的启动配置文件的根目录就是在/var/lib/tftpboot

per_source = 11

cps = 100 2

flags = IPv4

}

 配置 dhcp

[root@zdjserver isolinux]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample  /etc/dhcp/dhcpd.conf

cp: overwrite `/etc/dhcp/dhcpd.conf‘? y

[root@zdjserver isolinux]# vim /etc/dhcp/dhcpd.conf

[root@zdjserver isolinux]# cat /etc/dhcp/dhcpd.conf

subnet 172.17.0.0 netmask 255.255.0.0 {

  range 172.17.10.1 172.17.10.123;

  option domain-name-servers 172.17.10.11;

  option domain-name "zdj.com";

  option routers 172.17.10.11;

  option broadcast-address 172.17.10.100;

  default-lease-time 600;

  max-lease-time 7200;

filename"pxelinux.0";           -----》指定 pxe 引导的引导文件名

next-server 172.17.10.100;     -----tftp 服务器的 IP 地址

}

[root@zdjserver isolinux]# service dhcpd restart

Shutting down dhcpd:                                       [  OK  ]

Starting dhcpd:                                            [  OK  ]

[root@zdjserver isolinux]# lsof -i:67

COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

dhcpd   6376 root    7u  IPv4  32560      0t0  UDP *:bootps

[root@zdjserver isolinux]# netstat -anplut|grep 67  -

udp        0      0 0.0.0.0:67                  0.0.0.0:*                               6376/dhcpd         

至此服务器配置完毕, 接下来启动客户端设置为网络启动后进行测试

2.客户端设置:

把自己虚拟机的服务器和客户机网卡都设置为hostonly

URL  服务器路径 ftp//172.17.10.100/rhel6   



通过网络安装 Linux 系统

标签:操作系统   网络安装   linux   server   

原文地址:http://blog.csdn.net/u010718976/article/details/41145801

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!