原文地址:syslinux_网络远程安装Linux系统作者:冷小星

 

     网络安装对于我们现在的管理来说,能够轻松的在一台没有光驱的裸机上通过网络来安装操作系统,就目前而言,许多公司购买计算机的时候因为成本问题而没有购买光驱,作为管理员,在系统出现故障或者要大规模的更换操作系统的时候,就显得很是疲惫了,有没有一种简单有效率的方法呢?有,在windows下我们有远程安装服务器,在Linux下我们也有,今天我们来看一下在Linux如何实现远程安装。

   在Linux下要实现远程安装我们要用到DHCP+TFTP+NFS(或者FTP,HTTP),因为远程主机使用网络必须要有IP地址,DHCP服务器就是用于给远程安装主机分配IP地址的,分配完IP地址之后,必须要引导网络系统的安装程序,这个时候我们就要用到TFTP,TFTP服务主要用于引导远程主机启动,并且要指定安装的系统类型以及内核的位置和名字,在知道了引导位置及内核后,我们就要启动操作系统传输到远程主机了,那么这个服务是由NFS或者FTP,HTTP来完成的,所有要想远程安装Linux,必须要有这三样东西。

   另外需要注意的在远程主机必须要支持PXE网卡启动才行,也就是你的网卡芯片要支持PXE,你可以直接进入BIOS,或者开机按F2或F12来选择从网络启动,如果没有表示不支持网络启动了

 

什么是syslinux ?      

  syslinux是一种启动引导装载器,类似我们的lilo和Grub,能够引导操作系统,  

  syslinux有很多变种(都是官方的)适用于各种媒质,如syslinux用于从微软的文件系统fat 16/32引导,isolinux用于从光盘引导,pexlinux用于从网络引导,extlinux用于从ext2/3文件系统引导。

   如果您使用过Ubuntu的话,你可以发现这个操心系统有liveCD的功能,Ubuntu的Live CD就是使用isolinux来引导的.

  因为我们的网络安装,所有我们是的就是PXElinux了,在这里安装之前我们将DHCP、TFTP、NFS防砸一台服务器上。

 

1,搭建DHCP服务器

1,配置DHCP,设置DHCP支持PXE,

option space PXE;       #从这里开始,我们要设置DHCP对于PXE的应答选项设置

 option PXE.mtftp-ip code 1 = ip-address;   MTFTP即是多点TFTP协议,

 option PXE.mtftp-cport code 2 = unsigned integer 16;

 option PXE.mtftp-sport code 3 = unsigned integer 16;

 option PXE.mtftp-tmout code 4 = unsigned integer 8;

 option PXE.mtftp-delay code 5 = unsigned integer 8;

 option PXE.discovery-control code 6 = unsigned integer 8;

 option PXE.discovery-mcast-addr code 7 = ip-address;

 class "pxeclients" {

 match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";

 option vendor-class-identifier "PXEClient";

 vendor-option-space PXE;

 option PXE.mtftp-ip 0.0.0.0;

 filename "pxelinux.0";  #指定客户端所需要的的bootstrap(引导器)文件名,我们使用pxelinux.0这个文件

 next-server 192.168.220.103;   #指定TFTP服务器的IP地址,这根据自己的情况修改

 }

 以上内容你可以只修改蓝色部分即可,其他的可以复制到DHCP中,

 

下面开始定义DHCP了。

ddns-update-style interim;      # 设置DDNS更新方式,

ignore client-updates;           #忽略客户端的更新

subnet 192.168.220.0 netmask 255.255.255.0 {    #定义子网   

# --- default gateway

    option routers          192.168.220.1;      #定义客户端网关

    option subnet-mask      255.255.255.0;       #网关掩码

    option domain-name-servers  192.168.220.1;   #DNS服务器

 

    option time-offset      -18000; # Eastern Standard Time

#   option ntp-servers      192.168.1.1;

#   option netbios-name-servers 192.168.1.1;

# --- Selects point-to-point node (default is hybrid). Don't change this unless

# -- you understand Netbios very well

#   option netbios-node-type 2;

 

    range dynamic-bootp 192.168.220.200 192.168.220.254;  #分配的IP地址范围

    default-lease-time 21600;      这个和下面的设置的是租约

    max-lease-time 43200;

 

    # we want the nameserver to appear at a fixed address

    host ns {

        next-server marvin.redhat.com;

        hardware ethernet 12:34:56:78:AB:CD;

        fixed-address 207.175.42.254;

    }

}

 

 

红色部分不理解直接复制,这样的话DHCP就做好了,

 

2,配置TFTP服务

[root@hongtu /]# vi /etc/xinetd.d/tftp

service tftp

{

        socket_type             = dgram

        protocol                = udp

        wait                    = yes

        user                    = root

        server                  = /usr/sbin/in.tftpd

        server_args             = -u nobody -s /tftpboot   -U指定任何用户可访问,-S指定TFTP的目录

        disable                 = no   将这里的YES改为NO

        per_source              = 11

        cps                     = 100 2

        flags                   = IPv4

}

~

Service xinetd restart

重启之后会再/下会自己建立tftpboot的文件,没有的话自己手动去建立:

[root@hongtu /]# mkdir tftpboot

 

 

3,配置PXE引导文件

配置bootstrap目录

    要配置TFTP所要传输的bootstrap,首先要准备好引导文件、内核镜像文件、跟文件系统文件。

一、bootstrap(引导器)文件:pxelinux.0

 文件位置在/usr/lib/syslinux目录中。将其拷贝到/tftpboot目录中

 #cp /usr/lib/syslinux /pxelinux.0  /tftpboot

 

 二、内核镜像文件:vmlinuz

    vmlinuz文件在RHEL5第一张光盘下的/images/pxeboot目录中,将vmlinuz拷贝到/tftpboot目录中(假设光盘加载到/mnt/cdrom)

 #cp /mnt/cdrom/images/pxeboot/vmlinuz   /tftpboot

 

   三、根文件系统文件:initrd.img

    initrd.img文件在RHEL第一张光盘下的/images/pxeboot目录中,将initrd.img拷贝到/tftpboot目录中[假设光盘加载到/mnt/cdrom]

 #cp /mnt/cdrom/images/pxeboot/initrd.img   /tftpboot

   

  四、创建pxelinux.cfg目录与default文件

    pxelinux.cfg为远程安装客户端配置文件所在目录,您可以为不同的计算机制定不同的安装方式或者方法。但是基本上我们都可以用default配置文件来进行为所有的计算机进行配置。

 #cd        /tftpboot

 #mkdir     pxelinux.cfg

 #touch      default

 #vi  default

 default内容如下:

  DEFAULT install

  PROMPT 1

  LABEL install

  KERNEL vmlinuz       

            #指定kernel文件

  APPEND initrd=initrd.img devfs=nomount ramdisk_size=16384   

  ##启动参数包括启动内核时所需要mount的挂载点和ramdisk大小。配置文档指定了Linux内核连同根文档系统的名称,并给出了内核要传递的一些参数,

其中ramdisk_size参数要很注意,他指定Linux内核启动后建立ramdisk的大小,假如配置太小,Linux的安装过程就可能无法进行。

 

最后检查一下/tftpboot目录中是否存在如下文件:

 1)pxelinux.0  #bootstrap文件

 2)vmlinuz  #内核镜像文件

 3)initrd.img  #根文件系统文件

 4)pxelinux.cfg  #为远程客户端使用的配置文件目录

 5) pxelinux.cfg/default  #为远程客户端使用的配置文件

 

4,配置NFS

配置NFS

#Vi /etc/export

/ht  *(ro,sync)   指定文件目录,权限为所有用户可以访问并且只读,保持数据同步,然后将安装的ISO文件全部复制到该目录下,(是他FTP和HTTP也是一样的哦)

 

 

至此那您的环境都配置好了,现在就找一台支持PXE的客户端来测试一下哟。

 

 [转载]syslinux_网络远程安装Linux系统

[转载]syslinux_网络远程安装Linux系统

[转载]syslinux_网络远程安装Linux系统

[转载]syslinux_网络远程安装Linux系统

 

因为网络速度原因,下面的图片没有穿上来,下面会出现选择安装方式,

我们选择使用NFS,然后会让你填入NFS服务器地址,以及系统存的目录,这个目录就是我们刚才的NFS各项文件目录,

 

   现在你可以试试了哦,


本文转自 pk2008 51CTO博客,原文链接:http://blog.51cto.com/837244/983412