2013/06/05

PxeUbuntu: Install Ubuntu from network




現在整天都在安裝各式各樣的 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

No comments: