== qemu-pxe == 系統:Ubuntu10.10-i386 硬體:Dell OPTIPLEX 980 這邊我們引用Stan http://superstanwu.blog.ithome.com.tw/post/775/76131 [[br]] 利用指令檢查cpu是否支援,目前的機器幾乎都有支援 {{{ egrep '(vmx|svm)' --color=always /proc/cpuinfo }}} 應該要出現vmx字眼 安裝qemu,uml-utilities是為了模擬虛擬網路(tun)及虛擬網卡(tap) {{{ sudo apt-get install vde2 uml-utilities }}} 安裝dhcp server,tftp server 是為了PXE伺服器 {{{ sudo apt-get install dhcp3-server tftpd-hpa }}} 下載PXE的韌體 {{{ cd /usr/share/qemu wget -O pxe-ne2k_pci.bin http://svn.savannah.gnu.org/viewvc/*checkout*/trunk/pc-bios/pxe-ne2k_pci.bin?root=qemu wget -O pxe-rtl8139.bin http://svn.savannah.gnu.org/viewvc/*checkout*/trunk/pc-bios/pxe-rtl8139.bin?root=qemu wget -O pxe-e1000.bin http://svn.savannah.gnu.org/viewvc/*checkout*/trunk/pc-bios/pxe-e1000.bin?root=qemu }}} 增加虛擬網卡tap0,並且啟動 {{{ sudo chmod 666 /dev/net/tun sudo tunctl -u vm1(我的使用者) -t tp0 sudo ifconfig tap0 10.0.0.1 up }}} 檢查tap0是否啟動起來 {{{ sudo ifconfig -a }}} 下載網路開機設定檔Ubuntu10.10如下 {{{ cd wget http://archive.ubuntu.com/ubuntu/dists/maverick/main/installer-i386/current/images/netboot/netboot.tar.gz . }}} 下載網路開機設定檔Debian如下 {{{ cd }}} 把下載的檔案複製並且解壓縮到/var/lib/tftpboot目錄裡。 {{{ sudo tar zxvf netboot.tar.gz /var/lib/tftpboot/ }}} 設定dhcp server,讓dhcp只指定到tap0 {{{ cd /etc/default sudo emacs dhcp3-server 修改內容如下 INTERFACES="tap0" }}} 設定 dhcpd.conf {{{ cd /etc/dhcp3 sudo emacs dhcpd.conf 修改內容如下 subnet 10.0.0.0 netmask 255.255.255.0 { range 10.0.0.10 10.0.0.200; option routers 10.0.0.1; next-server 10.0.0.1; filename "pxelinux.0"; } }}} 重新啟動tftp,dhcp {{{ sudo /etc/init.d/dhcp3-server start sudo /etc/init.d/tftpd-hpa start }}} 啟動NA讓tap0上的封包轉發到eth0 {{{ sudo bash -c 'echo 1 > /proc/sys/net/ipv4/ip_forward' iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -t nat -A POSTROUTING -o eth0 -s 10.0.0.0/24 -j MASQUERADE iptables -L }}} 利用qemu指令作網路開機 {{{ qemu -boot n -option-rom /usr/share/qemu/pxe-ne2k_pci.bin -m 512 -net nic -net tap,ifname=tap0,script=no }}}