PXE 開機伺服器建置
從現在開始我們要進行虛擬電腦教室的安裝,有關所有檔案的定義請參考下圖:
安裝 qemu 套件
請以 root 權限安裝 qemu-utils qemu-system-x86 套件,指令如下:
# apt-get install qemu-utils qemu-system-x86
裝完之後請以一般使用者權限執行
$ qemu-img --help
開機之問題排除
當我們執行 qemu 時,會出現底下錯誤:
qemu: could not load PC BIOS 'bios.bin'
這是因為 qemu 在執行時會使用到一些 BIOS 的檔案,這些檔案在 qemu 中並未提供,而是要安裝 seabios 套件,因此請執行
apt-get install seabios
將 seabios 套件安裝,並且在 /usr/local/share/qemu 作連結,指令如下:
# ln -sf /usr/share/bios/*.bin
作好連結後再啟動 runpxe.sh,此時即可順利進入 qemu 畫面,並讓 pxe server 順利開機。
一旦 Qemu 可以正常執行之後,我們即可立即動手建立虛擬電腦教室中的第一台電腦,這台電腦將會是整間虛擬電腦教室的 pxe、dhcp 以及安裝伺服器,我們將此電腦命名為 pxeserver。
PXE Server 影像檔建置
PXE Server 並不需要太大的硬碟空間,因此我們設定一個 2GB 大小的影像檔即可,這個檔案我們命名為 pxeserver.img,請執行底下指令來建立此影像檔。
~/virtualclassroom $ qemu-img create pxeserver.img 2G -f qcow2
建立完畢後,我們可以執行 ls -l pxeserver.img 來觀看此檔案,其輸出如下所示:
-rw-r--r-- 1 hunter hunter 2147483648 3月 27 20:23 pxeserver.img
乍看之下 pxeserver.img 的大小為 2 GB (2147483648 bytes),但是如果我們以 du 這個指令來觀看其大小如底下所示:
du -sh pxeserver.img
會發現其輸出為 0 如底下所示,這是因為 qemu-img 所建立的檔案是一個會長大的檔案,一開始新建的檔案大小為 0,而當我們使用此檔來進行作業系統安裝時,它會隨著容量的增加而(自)己長大,一直到 2 GB 為止。
0 pxeserver.img
安裝 Debian X86_64 作業系統
接下來要開始使用 Qemu 安裝 Debian X86_64 作業系統(至) pxeserver.img,安裝「標準系統工具」即可,其它套件例如桌面環境 (Debian desktop environment) 等不必安裝,以節省空間。
請把 Debian 的 ISO 檔放在 /opt/iso/debian-8.3.0-amd64-CD-1.iso
然後執行:
~/virtualclassroom $ qemu-system-x86_64 -enable-kvm -m 2048 -cpu host -smp 2 -drive file=pxeserver.img,format=qcow2 -cdrom /opt/iso/debian-10.1.0-amd64-netinst.iso -boot d
我們可以另外編輯一個 buildpxe.sh 的檔案,其內容如下:
qemu-system-x86_64 -enable-kvm -m 2048 -cpu host -smp 2 \
-drive file=pxeserver.img,format=qcow2 \
-cdrom /opt/iso/debian-10.1.0-amd64-netinst.iso \
-boot d
然後在 ~/virtualclassroom 目錄中執行 sh buildpxe.sh 即可。請安裝 base install,硬碟讓系統自動幫你分割。
啟動 PXE Server
建立好 PXE Server 之後,我們可以另外使用 runpxe.sh 來啟動 PXE Server,其內容如下所示。
# IP=192.168.10.254
# PXE Server
CPU=host
SMP=2
MEMORY=1024
HDA=pxeserver.img
MAC="DE:AD:BE:CF:EC:B7"
BRIDGE=br10
CDROM=/opt/iso/debian-10.1.0-amd64-netinst.iso
qemu-system-x86_64 -enable-kvm -cpu $CPU -smp $SMP -m $MEMORY \
-drive file=$HDA,format=qcow2 \
-net nic,macaddr=$MAC -net bridge,br=$BRIDGE \
-boot c
如果不曉得要怎麼生虛擬 MAC Address 的可以至 https://miniwebtool.com/mac-address-generator/ 網址自己產生一個。
儲存完畢後執行:
~/virtualclassroom $ sh runpxe.sh
failed to create tun device: Operation not permitted
qemu-system-x86_64: -net bridge,br=br10: bridge helper failed
/usr/lib/qemu# ls -l
總計 16
-rwxr-xr-x 1 root root 14328 8月 9 18:41 qemu-bridge-helper
請以 root 權限執行:
/usr/lib/qemu# chmod u+s qemu-bridge-helper
作完之後其屬性為:
ls -l
總計 16
-rwsr-xr-x 1 root root 14328 8月 9 18:41 qemu-bridge-helper
接著恢復一般使用者權限執行:
~/virtualclassroom $ sh runpxe.sh
access denied by acl file
qemu-system-x86_64: -net bridge,br=br10: bridge helper failed
~/virtualclassroom $ sh runpxe.sh
access denied by acl file
qemu-system-x86_64: -net bridge,br=br10: bridge helper failed
此時會有另一個錯誤訊息叫 access denied by acl file,要解決這個問題,必須以 root 權限在 /etc/qemu 目錄底下新增一個 bridge.conf,裡面的內容是:
allow br10
然後再以一般使用者權限執行:
~/virtualclassroom $ sh runpxe.sh
此時應該可以看到 pxe 這台虛擬機正確啟動,沒有問題。PXE 伺服器啟動後,我們來驗收一下系統,請執行:
$ cat /proc/cpuinfo
$ free -h
$ df -h
來看 CPU、記憶體以及硬碟空間。
$ cat /proc/cpuinfo
$ free -h
$ df -h
來看 CPU、記憶體以及硬碟空間。
作者已經移除這則留言。
回覆刪除對於 MAC 地址生成器
回覆刪除MAC地址生成器
您也可以轉到 MAC 查找地址
MAC 地址查找。
輸入供應商的名稱,如 Cisco。您將獲得該供應商註冊的所有 MAC 地址的列表。使用 OUI 生成您的 MAC 地址以進行測試。
謝謝您!!
刪除