位置:海鸟网 > IT > linux/Unix >

全自动安装linux操作系统

  一:过程思路:(建议先跳过文字按照安装步骤边安装边看思路)

  1:客户端网卡在主机启动初始化时通过网卡内置的PXE芯片启动DHCP进程向server获取ip地址,网卡获取到ip地址后,server会提供给client一个下载bootloader的指令,就是dhcp服务器中dhcpd.conf配置文件中filename这个选项。

  2:网卡PXE芯片中已经包含了tftp client程序,获取到ip地址后,网卡会启动tftp服务去向tftp server请求传输这个bootloader文件PXElinux.0。当Bootloader加载后我们可以看到主机屏幕上有信息显示,而这个画面就是我们在用光驱装linux的时候看到的第一个画面。画面提示选择图形界面安装还是linux text字符界面安装等信息。如果在server端的tftpboot目录下只有这个文件,那么客户机会一直停留在boot这个地方,因为没有default这个bootloader配置文件告诉机器下一步加载哪个系统内核,default配置文件的作用是告诉主机从哪里去加载操作系统内核,这个时候如果我们按照正常光碟装机时会看到提示:输入回车或者linux text等信息。Bootloader会去调用default配置文件中的操作系统内核文件。

  3:default 文件配置好之后,接着就是指定内核文件,这个在default文件最后。就是vmlinuz,initrd.img *.msg 这几个文件。

  4:到这一步加载成功后,系统就按照我们平常光碟装系统看到的过程一模一样了,选择语言,鼠标,键盘等,但因为有了KS这个自动安装脚步,这些都不要我们手工去指定,全部会自动完成。

  5:到这里为止,也许有人会问,那我们从哪里去加载安装的镜像。且慢,不是有个ks安装脚本吗,就是这个脚本里面我们可以指定安装镜像在哪里。

  6:现在就考虑系统镜像的传输,这里我们选用linux特有的NFS网络文件系统进行镜像的传输。当然也可以用HTTP,ftp等方式。但为什么我们直接使用tftp呢,因为这个协议在传输大文件的时候效率非常低。二:具体安装过程:

  说明:server IP:192.168.9.20 linux版本:centos 5.2

  1:安装tftp 服务器 和dhcp服务器:

  root@centos CentOS]# rpm -qa |grep tftp

  tftp-server-0.42-3.1.el5.centos

  [root@centos CentOS]# rpm -qa |grep dhcp

  dhcpv6-client-1.0.10-4.el5

  dhcp-3.0.5-13.el5

  目的是确保客户端能够正常获取到ip地址和pxelinux.0文件。

  2:修改tftp参数:

  [root@centos CentOS]# vi /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 = yes / 改成no /

  per_source = 11

  cps = 100 2

  flags = IPv4

  }

  …………………………………………………………………………………………

  /tftpboot 这个参数主要是指定tftp client 客户端从服务器的哪个目录去加载bootloader的pxelinux.0文件。

3:启动tftp:

  [root@centos CentOS]# service xinetd restart

  Stopping xinetd: [FAILED]

  Starting xinetd: [ OK ]

  4:安装dhcpd服务并配置启动:

  [root@centos ~]# vi /etc/dhcpd.conf

  ddns-update-style interim;

  ignore client-updates;

  boot bootp;

  subnet 192.168.9.0 netmask 255.255.255.0

  { /分配给client端的ip地址/

  option routers 192.168.9.1;

  option subnet-mask 255.255.255.0;

  option domain-name "domain.org";

  option domain-name-servers 202.96.128.66;

  option time-offset -18000;

  range dynamic-bootp 192.168.99.2 192.168.9.100;

  filename "/pxelinux.0"; /用来指定tftp根目录的启动文件实际是在/tftpboot目录下。/

  default-lease-time 21600;

  max-lease-time 43200;

  next-server 192.168.9.20; /这一句是告诉client从哪里加载bootloade/r

  }

  5: 创建文件夹并拷贝pxelinux.0至/tftpboot目录:

  mkdir /tftpboot

  cp /usr/lib/syslinux/pxelinux.0 /tftpboot /pxelinux.0server已经有/

  midir /tftpboot/pxelinux.cfg

  touch /tftpboot/pxelinux.cfg/default

  default内容可以修改成如下:

  …………………………………………………………………………

  default autoinstall /缺省引导autoinstall 这个label/

  prompt 1

  timeout 30 /缺省自动加载的时间30s/

  ………………………………

  label autoinstall

  kernel vmlinuz /内核文件名字/

  append ks=nfs:192.168.9.20:/tftpboot/ks

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

  ……………………………………………………………………………………

  append 这个选项是指定从哪个地方去读取这个配置文件,用什么方式加载。这里使用nfs方式获取KS这个文件,当然也可以用FTP、HTTP等方式。ks 文件,也就是linux自动加载安装中各项参数,平常我们用光盘安装的时候需要选择相应的语言,字体,键盘,鼠标,分区,安装的软件包等待信息,KS文件就是让这些选择自动化进行。