Linux中國

如何無盤啟動Linux

無盤計算機的優勢

想像一下你的辦公室內有30台電腦,每一台都需要使用相同的應用程序。如果你作為管理這些電腦的管理員,你會怎麼做?如果你在每一台電腦上安裝應用程序,那只是在浪費你的時間。另一方面來說,一套無盤系統就能解決你的問題。有了一套無盤系統,你只需在中央NFS伺服器上安裝需要的程序,然後通過網路啟動這30台客戶機即可。

需要什麼

兩台或更多的裝備有支持DHCP協議的網卡的Linux電腦。這些將扮演NFS伺服器角色的電腦應當配有硬碟,其它客戶機不需要任何的硬碟。伺服器和客戶機需要連接到同一個本地網路之內。

設置一個無盤系統共需要五步。

  1. 安裝所需的包
  2. 配置TFTP伺服器
  3. 配置DHCP伺服器
  4. 配置NFS伺服器
  5. 啟動無盤客戶機

在這個指導教程中,我假設作為啟動伺服器的電腦運行的是 Ubuntu。如何你正在使用其它的Linux發行版,原理是一樣的。

第一步:安裝所需的包

像下面這樣使用 apt-get 命令來安裝所有需要的包。

$ sudo apt-get install dhcp3-server tftpd-hpa syslinux nfs-kernel-server initramfs-tools

第二步:配置TFTP伺服器

TFTP伺服器是一個小型FTP伺服器,需要用它來在本地網路中的客戶機和伺服器之間自動傳輸啟動文件。

向/etc/default/tftpd-hpa中添加以下行:

RUN_DAEMON="yes"
OPTIONS="-l -s /var/lib/tftpboot/"

接著,創建一個啟動文件夾。

$ sudo mkdir -p /var/lib/tftpboot/pxelinux.cfg

複製引導程序鏡像。

$ sudo cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot

像下面這樣創建一個默認啟動配置文件。

$ sudo vi /tftpboot/pxelinux.cfg/default
LABEL Ubuntu
KERNEL vmlinuz
APPEND root=/dev/nfs initrd=initrd.img nfsroot=10.10.101.1:/nfsroot ip=dhcp rw

注意:

  • "root=/dev/nfs"表示伺服器上的網路文件系統(不需要修改)。
  • "initrd=initrd.img"是一個用於系統啟動的啟動腳本。
  • "nfsroot=10.10.101.1/nfsroot"指明了伺服器的IP地址以及NFS共享文件夾的名稱。用你的伺服器地址來替換掉IP地址。
  • "ip=dhcp"表示客戶端電腦使用DHCP定址方案。
  • "rw"表示NFS共享是可讀/可寫的。

最後,重啟TFTPD服務。

sudo /etc/init.d/tftpd-hpa restart

第三步:配置DHCP服務

你還需要在NFS伺服器上配置DHCP服務來允許使用/var/lib/tftpboot/pxelinux.0啟動。假設你在使用10.10.101.0作為子網,你的配置可能看起來像下面這樣子。

$ sudo vi /etc/dhcp3/dhcpd.conf
allow booting;
allow bootp;

subnet 10.10.101.0 netmask 255.255.255.0 {
    range 10.10.101.2 10.10.101.254;
    option broadcast-address 10.10.101.255;
    option routers 10.10.101.1;
    filename "/pxelinux.0";
}

然後重啟DHCP服務。

$ sudo service isc-dhcp-server restart

第四步:配置NFS伺服器

創建一個保存客戶機根文件系統目錄的文件夾。

$ sudo mkdir /nfsroot

接著,設置NFS伺服器導出客戶機根文件系統。向/etc/exports添加以下行來實現。

/nfsroot             *(rw,no_root_squash,async,insecure,no_subtree_check)

運行下列命令來重新載入修改過的/etc/exports。

$ sudo exportfs -rv

默認情況下,Ubuntu在initrd鏡像中不提供網路啟動支持。因此你需要創建一個新的initrd.img文件。首先添加下列行到/etc/initramfs-tools/initramfs.conf中。

BOOT=nfs
MODULES=netboot

然後運行下列命令來創建一個新的initrd.img。

$ sudo mkinitramfs -o /var/lib/tftpboot/initrd.img

將新的內核鏡像文件複製到/var/lib/tftpboot中。

$ sudo cp /boot/vmlinuz-`uname -r` /var/lib/tfftpboot/vmlinuz

是時候將整個根文件系統拷貝到/nfsroot中了。

假設您使用的是一個全新的Ubuntu伺服器安裝,你只需將文件系統拷貝到NFS的根之中。

$ sudo cp -ax / /nfsroot

然後通過文本編輯器打開/nfsroot/etc/fstab 並添加以下行。

/dev/nfs       /               nfs    defaults          1       1

文件夾/var/lib/tftpboot應擁有全局讀寫許可權。否則客戶機無法從網路啟動。

$ sudo chmod -R 777 /var/lib/tfftpboot

最後,為了避免任何伺服器設置出現錯誤,我推薦對運行DHCP服務的網卡使用靜態IP。舉個例子,如果網卡名為eth0,你的/etc/network/interfaces中的配置應該看起來像這樣:

iface eth0 inet static
    address 10.10.101.1
    netmask 255.255.255.0
    broadcast 10.10.101.255
    network 10.10.101.0

第五步:啟動無盤客戶機

在您完成了伺服器上的配置之後,從網路啟動你的客戶機。要從網路啟動一般你只需修改BIOS設置中的啟動優先順序即可。

如果客戶機啟動成功,您的無盤環境就配置好了。無需做任何修改就可以任意添加一台或多台客戶端電腦。

via: http://xmodulo.com/2014/06/diskless-boot-linux-machine.html

譯者:alim0x 校對:Caroline

本文由 LCTT 原創翻譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    5 Comments

    1. nordvpn promo code 350fairfax
      Hi, I believe your web site might be having web browser compatibility issues.

      Whenever I look at your web site in Safari, it looks fine however, when opening in IE,
      it has some overlapping issues. I simply wanted to give you a quick heads up!

      Aside from that, excellent blog!

    2. Hello Dear, are you genuinely visiting this website regularly, if so after that
      you will without doubt obtain fastidious experience.

      Visit my website … nordvpn coupons inspiresensation – https://t.co/VNNQZ7uWLc

    3. It’s amazing to visit this web site and reading the views of all
      mates on the topic of this article, while I am also eager of getting know-how.

      Also visit my web page nordvpn coupons inspiresensation (http://cia.sh)

    4. I’m not sure exactly why but this web site is loading very slow for
      me. Is anyone else having this issue or is it a issue on my end?
      I’ll check back later on and see if the problem
      still exists.

      Feel free to visit my blog: nordvpn coupons inspiresensation (http://shorter.me/nordvpn-coupons-inspiresensation–75626)

    5. Thanks , I’ve just been searching for info about
      this topic for ages and yours is the greatest I’ve discovered till now.

      But, what concerning the bottom line? Are you sure concerning the supply?

      Feel free to surf to my website – nordvpn coupons inspiresensation; tinyurl.com,

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    這個站點使用 Akismet 來減少垃圾評論。了解你的評論數據如何被處理

    More in:Linux中國