如何無盤啟動Linux

2021-09-23 16:15:07 字數 3879 閱讀 7870

無盤啟動意味著一台客戶端電腦在啟動作業系統時沒有任何的磁碟儲存介質。在這種情形之下,電腦能夠通過網路從遠端nfs伺服器上載入核心和根檔案系統。在這過程中可能會用到多種不同的方法來從nfs伺服器上載入核心和根檔案系統:rarp,bootp或是dhcp協議。在這個指導教程中,我會使用bootp/dhcp協議,因為它們能夠被大多數的網絡卡所支援。

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

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

設定乙個無盤系統共需要五步。

安裝所需的包

配置tftp伺服器

配置dhcp伺服器

配置nfs伺服器

啟動無盤客戶機

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

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

$ 

sudo

apt-get

install dhcp3

-server tftpd

-hpa syslinux nfs

-kernel

-server initramfs

-tools

tftp伺服器是乙個小型ftp伺服器,需要用它來在本地網路中的客戶機和伺服器之間自動傳輸啟動檔案。

向/etc/default/tftpd-hpa中新增以下行:

run_daemon

="yes"

options

="-l -s /var/lib/tftpboot/"

接著,建立乙個啟動資料夾。

$ 

sudo

mkdir-p

/var

/lib

/tftpboot

/pxelinux

.cfg

複製引導程式映象。

$ 

sudocp/

usr/

lib/

syslinux

/pxelinux.0

/var

/lib

/tftpboot

像下面這樣建立乙個預設啟動配置檔案。

$ 

sudovi/

tftpboot

/pxelinux

.cfg

/default

label 

ubuntu

kernel vmlinuz

=/dev/

nfs initrd

=initrd

.img nfsroot

=10.10

.101.1

:/nfsroot ip=

dhcp rw

注意: 最後,重啟tftpd服務。

sudo

/etc

/init.d

/tftpd

-hpa restart

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

$ 

sudovi/

etc/

dhcp3

/dhcpd

.conf

allow booting

;allow bootp

;subnet

10.10

.101.0

netmask

255.255

.255.0

然後重啟dhcp服務。

$ 

sudo

service isc

-dhcp

-server restart

建立乙個儲存客戶機根檔案系統目錄的資料夾。

$ 

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中。

$ 

sudocp/

boot

/vmlinuz

-`uname -r`

/var

/lib

/tfftpboot

/vmlinuz

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

假設您使用的是乙個全新的ubuntu伺服器安裝,你只需將檔案系統拷貝到nfs的根之中。

$ 

sudocp-

ax /

/nfsroot

然後通過文字編輯器開啟/nfsroot/etc/fstab 並新增以下行。

/dev/

nfs

/nfs defaults 11

資料夾/var/lib/tftpboot應擁有全域性讀寫許可權。否則客戶機無法從網路啟動。

$ 

sudo

chmod-r

777/

var/

lib/

tfftpboot

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

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設定中的啟動優先順序即可。

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

無盤啟動引導 修復super block

有一台線上伺服器 簡稱s 執行 centos 6.5 系統,閒置了一段時間,再次啟動,開啟報告,super block 損壞。為了修復super block,本想找乙個系統映象做乙個u盤啟動盤,發現竟然沒有可用的u盤。所以只能腦洞大開,使用network booting 了.先把 network b...

LINUX 下製作 WINDOWS U盤啟動盤

u 盤 最好 8g 由於 deepin debain based 沒有 prebuilt packages,所以直接從源 構建。以下內容都是 debain based 版本適用。1.在想要存放源 的地方轉殖 woeusb 倉庫 git clone2.生成應用版本號 cd woeusb setup d...

如何製作CDLinux啟動盤

用筆記本安裝虛擬機器並且嘗試使用cdlinux系統進行無線密碼破解的朋友們可能會遇到很多的問題,今天的經驗就是總結了很多的失敗然後整理出來的,希望能夠對大家有所幫助。本次經驗來和大家分享一下使用u盤製作啟動,然後進入cdlinux系統。因為筆記本如果沒有外接網絡卡的話是不會成功的。2 本次經驗以wi...