歡迎您光臨本站 註冊首頁

全自動安裝linux操作系統

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

一:過程思路:(建議先跳過文字按照安裝步驟邊安裝邊看思路)

  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文件就是讓這些選擇自動化進行.


 6:ks 文件內容如下:可以根據自己實際環境進行更改.

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

  lang en_US

  langsupport zh_CN en_US --default=en_US

  keyboard us

  mouse

  timezone Asia/Shanghai

  rootpw password /新裝系統的root密碼/

  reboot

  #upgrade

  install

  #harddrive --partition=sdb1 --dir=rhas

  nfs --server=192.168.9.20 --dir=/media/cdrom /指定鏡像的位置/

  text

  bootloader --location=mbr

  zerombr yes

  clearpart --drives hda –initlabe /硬碟名字,根據實際環境更改/

  part / --fstype ext3 --size 3072 --asprimary --ondisk had

  part swap --size 256 --asprimary --ondisk hda

  part /tmp --fstype ext2 --size 256 --ondisk hda

  part /home --fstype ext3 --size 1 --grow --ondisk hda

  auth --useshadow --enablemd5

  #network --bootproto=dhcp --device=eth0

  network --device=eth0 --bootproto=static --

  ip=192.168.9.210 --netmask=255.255.255.0 --

  gateway=192.168.9.244 --nameserver=202.96.128.68 --

  hostname=test.com /指定新裝系統的主機名和ip/

  firewall --disabled

  skipx

  %packages –resolvedeps /指定新裝系統所需的包/

  @ development-tools

  @ admin-tools

  @ system-tools

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

  Kickstart 具體內容的研究可以參考redhat官方網站,根據實際環境修改KS的內容以適合自己的要求.


7: NFS伺服器的創建:

  a:先確認NFS文件系統在伺服器端已經安裝好.

  [root@centos ~]# rpm -qa |grep nfs

  nfs-utils-lib-1.0.8-7.2.z2

  nfs-utils-1.0.9-33.el5

  b:修改nfs參數文件

  [root@centos ~]# vi /etc/exports

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

  /media/cdrom *(ro,sync)

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

  這個的配置很簡單:/media/cdrom 將伺服器上這個目錄共享出去,這個目錄中就是安裝光碟中的內容.

  *(ro,sync) *指定所有的用戶(ro,sync)具有隻讀許可權,並且數據同步寫入硬碟.

  c:啟動nfs服務:

  root@centos ~]# service portmap start

  [root@centos ~]# service nfs start

  Starting NFS services: [ OK ]

  Starting NFS quotas: [ OK ]

  Starting NFS daemon: [ OK ]

  Starting NFS mountd: [ OK ]

  [root@centos ~]# exportfs /確認nfs共享正常/

  /media/cdrom

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

  8:client機器手動加電后,這是唯一需要手動的地方,呵呵,連接上網線與server在同一個網段,享受自動安裝幾十幾百台linux主機的過程吧.



[火星人 ] 全自動安裝linux操作系統已經有429次圍觀

http://coctec.com/docs/linux/show-post-56243.html