一、其他補充:
# 睡眠 (一鍵可叫醒)
systemctl suspend
# 休眠 (按 Power 才可叫醒)
systemctl hibernate======================================================
二、建無硬碟可開機之 Linux 虛擬機
1. 執行 PXE Server & buildlinux1.sh
用網路 PXE 安裝,完成安裝 linux1.imghostname: pxeboot
domainname: my.com
mirror: 192.168.10.254
2. 備份一個 linux1.img
qemu-img convert -O raw linux1.img linux1.img.bak
================= 於 linux1.img 機器中設定 =================
3. 改 initramfs 設定
於 linux1.img 機器中設定,皆使用 root 權限vi /etc/initramfs-tools/initramfs.conf
搜尋這兩個,並註解:
MODULES=most
BOOT=local
改成 or 如果沒有就自行新增:
#MODULES=most MODULES=netboot #BOOT=local BOOT=nfs
4. 準備開機 Kernel & Initrd
mkdir -p /root/pxeboot cd /root/pxeboot mkinitramfs -o ./initrd.img cp /boot/vmlinuz-3.16.0-4-amd64 ./vmlinuz ls -l
確認有兩個檔案:
initrd.img
vmlinuz
================= 於 pxeserver.img 機器中設定 =================
5. 檢查虛擬機硬碟容量
進入 pxeserver 查看 /srv 目錄之容量,
架單台 Diskless 機器必需要大於 4 GB 空間,
若有大於則跳過步驟 6.
df -h
6. 擴充虛擬機容量
a. 關閉 pxeserver 虛擬機
b. 新增 10 GB hdb.img 給 pxeserver.img 使用:
qemu-img create hdb.img 10G
c. 修改 runpxe.sh ,新增:
HDB=hdb.img
-hdb $HDB
e. 開機、分割、格式化
sh runpxe.sh fdisk /dev/sdb n p 1 enter enter w mkfs.xfs /dev/sdb1
f. 設定 /dev/sdb1 自動掛載
blkid /dev/sdb1 >> /etc/fstab vi /etc/fstab
改成下面格式:
UUID=XXXXXXXXX /srv/nfs xfs defaults 1 2
檢查錯誤 (正確的話不會有訊息)
mount -a reboot df -h mount
查看有無成功掛載 sdb1 至 pxeserver:/srv/nfs 目錄。
7. 架設 NFS Server
於 pxeserver.img 虛擬機器中apt-get install nfs-kernel-server mkdir -p /srv/nfs/disklessboot vi /etc/exports
設定檔內容如下:
/srv/nfs/disklessboot 192.168.10.0/24(rw,no_root_squash,async,no_subtree_check)
exportfs -a /etc/init.d/nfs-kernel-server restart showmount -e localhost輸出:
Export list for localhost:
/srv/nfs/disklessboot 192.168.10.0/24
從同網段(192.168.10.0/24) 的別台機器(例如 實體機或linux1.img) 上檢查 NFS Server:
showmount -e 192.168.10.254
輸出:
Export list for localhost:
/srv/nfs/disklessboot 192.168.10.0/24
================= 於 linux1.img 機器中設定 =================
# 將 linnux1.img 上之 rootfs 複製到 pxeserver 之 /srv/nfs/disklessboot 目錄
8. 掛載 NFS
於 linux1.img 虛擬機器中:
sudo apt-get install nfs-common mkdir -p /dev/nfs sudo mount -t nfs -nolock 192.168.10.254:/srv/nfs/disklessboot /dev/nfs df -h
9. 複製 rootfs 到 pxeserver NFS 目錄
cp -avx /. /dev/nfs/. cp -avx /dev/. /dev/nfs/dev/.
================= 於 pxeserver.img 機器中設定 =================
回到 pxeserver 下指令:
10. 將 vmlinuz 及 initrd.img 移到 TFTP Server 目錄
mkdir -p /srv/tftp/disklessboot cp /srv/nfs/disklessboot/root/pxeboot/vmlinuz /srv/tftp/disklessboot/ cp /srv/nfs/disklessboot/root/pxeboot/initrd.img /srv/tftp/disklessboot/
11. 修改 rootfs 網路設定檔
vi /srv/nfs/disklessboot/etc/network/interfaces #allow-hotplug eth0 #iface eth0 inet dhcp iface eth0 inet manual
12. 修改 rootfs 自動掛載設定檔
vi /srv/nfs/disklessboot/etc/fstab 舊的全部註解掉,新增以下內容: proc /proc proc defaults 0 0 /dev/nfs / nfs defaults 1 1 none /tmp tmpfs defaults 0 0 none /var/run tmpfs defaults 0 0 none /var/lock tmpfs defaults 0 0 none /var/tmp tmpfs defaults 0 0
13. 設定 TFTP 網路開機選單
vi /srv/tftp/debian-installer/amd64/boot-screens/menu.cfg include mybootmenu.cfg
vi /srv/tftp/mybootmenu.cfg
label My Diskless Boot PC kernel disklessboot/vmlinuz append initrd=disklessboot/initrd.img root=/dev/nfs nfsroot=192.168.10.254:/srv/nfs/disklessboot ip=dhcp rw
chmod 777 -R /srv/tftp
================= 回到實體機中測試 =================
關閉 linux1.img 虛擬機器後,修改網路開機至 runlinux1.sh 檔:
-boot n
開機後,選單出現 "My Diskless Boot PC" ,用此開機。
Reference:
http://www.serenux.com/2011/04/howto-create-a-diskless-workstation-that-boots-from-pxe-using-ubuntu/DisklessUbuntuHowto
Linux Terminal Server Project
沒有留言:
張貼留言