現在整天都在安裝各式各樣的 Ubuntu,目前安裝的方式都是用 usb-creator-gtk 把 iso 放到隨身碟再從 USB 開機,過程花很多時間在製作隨身碟。網路上可以找到很多直接從網路開機,安裝 Ubuntu 的方式,只是那要安裝 NFS, DHCP, tftp server,還要設定一堆有的沒的,很麻煩。這次要介紹的 pxeubuntu 可以讓你免除那些煩惱。
Install PxeUbuntu
$ sudo add-apt-repository ppa:fcwu-tw/ppa
$ sudo apt-get update
$ sudo apt-get install pxeubuntu
Run
請先確定
- 沒有裝 dhcp server,有裝的話建議先註解掉目前的設定,讓程式自動設定。
- 已設定固定 IP
執行
$ sudo pxeubuntu start
2013-06-05 05:40:41,895 INFO args: work_dir: /home/u
2013-06-05 05:40:41,895 INFO args: iso_dir: /home/u/iso
2013-06-05 05:40:41,895 INFO args: nfs_dir: /home/u/exportfs
2013-06-05 05:40:41,895 INFO args: tftp_dir: /var/lib/tftpboot
Add PXE boot configure to dhcpd.conf? (Y/N) y
2013-06-05 05:40:43,052 INFO check ISOs - TD(TFTP DIR) TB(TFTP BOOT) M(MOUNT) MP(MOUNT POINT) E(EXPORTS)
2013-06-05 05:40:43,060 INFO Start monitoring file in /home/u/iso
在第一次使用,且沒有 dhcp 的設定時,它會問是否要加入 dhcp 設定,回答 y 就沒錯了。
有問題的話請也先確定有沒有
手動把 NFS, DHCP TFTP server 給關掉。
加入/刪除 ISO
將你的 ISO 放到 ~/iso/ 即會自動建立 boot entry 及所有設定。移除檔案時相關設定也會被移掉。
$ # Add boot entry
$ sudo mv ubuntu.iso ~/iso
$ # remove boot entry
$ sudo mv ~/iso/ubuntu.iso ~/
有 boot entry 被修改時,在執行 pxeubuntu 的視窗會顯示這些 log
2013-06-05 05:45:22,801 INFO Inert image ubuntu-13.04-desktop-amd64 in path /home/u/iso/ubuntu-13.04-desktop-amd64.iso.
2013-06-05 05:45:22,856 INFO Insert successfully
2013-06-05 05:45:38,640 INFO FILE MOVE FROM: /home/u/iso/ubuntu-13.04-desktop-amd64.iso
2013-06-05 05:45:38,640 INFO FILE DELETE: /home/u/iso/ubuntu-13.04-desktop-amd64.iso
2013-06-05 05:45:38,640 INFO Remove image ubuntu-13.04-desktop-amd64 in path /home/u/iso/ubuntu-13.04-desktop-amd64.iso
2013-06-05 05:45:38,681 INFO Remove successfully
開機測試
將測試機台跟執行 pxeubuntu 的伺服器用網路線接著,再從開機選項裡選網路開機,便會看到上圖了。
以上,夠簡單吧!
其它指令
$ sudo pxeubuntu -h
usage: pxeubuntu [-h] [--log-level {notset,debug,info,warning,error,critical}]
[--log-dir LOG_DIR] [--work-dir WORK_DIR] [--iso-dir ISO_DIR]
[--nfs-dir NFS_DIR] [--tftp-dir TFTP_DIR] [-d] [-i INTERFACE]
{start,stop,restart,insert,remove,check,insert_copy,version}
A PXE boot assistant service
positional arguments:
{start,stop,restart,insert,remove,check,insert_copy,version}
Action is one of start, stop, restart, insert, remove,
check, insert_copy, version
optional arguments:
-h, --help show this help message and exit
--log-level {notset,debug,info,warning,error,critical}
Log level. One of notset, debug, info, warning, error
or critical (info by default)
--log-dir LOG_DIR Path to the directory to store log files
--work-dir WORK_DIR Path to the working directory. $HOME directory is
default. Some directories refer this option as base
folder, such as iso, nfs mount point, tftp
--iso-dir ISO_DIR Directory to put iso files
--nfs-dir NFS_DIR Directory to mount iso files
--tftp-dir TFTP_DIR Directory to tftp root
-d, --daemon Run as daemon
-i INTERFACE, --interface INTERFACE
network interface such as eth0, wlan0 for DHCP and NFS
binding