“UbuntuHelp:Installation/QuickNetboot”的版本间的差异
来自Ubuntu中文
小 |
小 |
||
第2行: | 第2行: | ||
{{Languages|UbuntuHelp:Installation/QuickNetboot}} | {{Languages|UbuntuHelp:Installation/QuickNetboot}} | ||
There is more than one way to install Ubuntu via netboot, search for ''netboot'' in the Ubuntu wiki. | There is more than one way to install Ubuntu via netboot, search for ''netboot'' in the Ubuntu wiki. | ||
− | This guide aims to give simple, complete and verifiable instructions to get netboot working in a matter of minutes. They are for installing Ubuntu | + | This guide aims to give simple, complete and verifiable instructions to get netboot working in a matter of minutes. They are for installing Ubuntu 8.04, but with minor modifications in step 2 they should work for other Ubuntu releases as well. |
== Before you begin == | == Before you begin == | ||
There should be no other DHCP servers running in the subnet. You ''might'' succeed with two servers as well (as I did), but be warned. | There should be no other DHCP servers running in the subnet. You ''might'' succeed with two servers as well (as I did), but be warned. | ||
第20行: | 第20行: | ||
mkdir /tftpboot | mkdir /tftpboot | ||
cd /tftpboot | cd /tftpboot | ||
− | wget http://archive.ubuntu.com/ubuntu/dists/ | + | wget http://archive.ubuntu.com/ubuntu/dists/hardy/main/installer-i386/current/images/netboot/netboot.tar.gz |
tar zxf netboot.tar.gz | tar zxf netboot.tar.gz | ||
chown -R nobody: . | chown -R nobody: . | ||
第46行: | 第46行: | ||
sed -e '/USE_INETD=/s/true/false/' -i /etc/default/atftpd | sed -e '/USE_INETD=/s/true/false/' -i /etc/default/atftpd | ||
+ | |||
+ | you also need to add option --daemon in the OPTIONS line of /etc/default/atftpd | ||
invoke-rc.d inetd stop | invoke-rc.d inetd stop | ||
第80行: | 第82行: | ||
netstat -nulp | grep atftpd # should display udp 0 0 0.0.0.0:69 0.0.0.0:* <some num>/atftpd | netstat -nulp | grep atftpd # should display udp 0 0 0.0.0.0:69 0.0.0.0:* <some num>/atftpd | ||
</nowiki></pre> | </nowiki></pre> | ||
− | 1.#4 test if you can get the PXE boot kernel via tftp | + | 1.#4 test if you can get the PXE boot kernel via tftp. |
<pre><nowiki> | <pre><nowiki> | ||
cd /tmp | cd /tmp | ||
− | echo 'get pxelinux.0' | atftp | + | echo 'get pxelinux.0' | atftp localhost |
ls -l pxelinux.0 # should display a ~14kB file | ls -l pxelinux.0 # should display a ~14kB file |
2009年11月17日 (二) 19:31的版本
点击翻译: |
English |
请不要直接编辑翻译本页,本页将定期与来源同步。 |
There is more than one way to install Ubuntu via netboot, search for netboot in the Ubuntu wiki. This guide aims to give simple, complete and verifiable instructions to get netboot working in a matter of minutes. They are for installing Ubuntu 8.04, but with minor modifications in step 2 they should work for other Ubuntu releases as well.
目录
Before you begin
There should be no other DHCP servers running in the subnet. You might succeed with two servers as well (as I did), but be warned.
DHCP/TFTP server installation
Prepare
0 become the root
sudo -i
- install required software
apt-get install dnsmasq atftp atftpd
1.#2 download and unpack the netboot tarball
mkdir /tftpboot cd /tftpboot wget http://archive.ubuntu.com/ubuntu/dists/hardy/main/installer-i386/current/images/netboot/netboot.tar.gz tar zxf netboot.tar.gz chown -R nobody: .
1.#3 tell dnsmasq to assign addresses starting from <BEGIN_IP_RANGE> until <END_IP_RANGE>, put the server's ip address in <SERVER_IP>, the default gateway must be put in <DEFAULT_GW>, and the dns server in <DNS_SERVER>. Append this to /etc/dnsmasq.conf with your favorite editor:
dhcp-range=<BEGIN_IP_RANGE>,<END_IP_RANGE>,12h dhcp-boot=pxelinux.0,<SERVER_IP> dhcp-option=3,<DEFAULT_GW> dhcp-option=6,<DNS_SERVER>
An example append is shown here:
dhcp-range=192.168.0.20,192.168.0.30,12h dhcp-boot=pxelinux.0,192.168.0.10 dhcp-option=3,192.168.0.1 dhcp-option=6,192.168.0.1
Then restart dnsmasq with the following command:
invoke-rc.d dnsmasq restart
1.#4 tell atftpd to run as a server directly, not through inetd
sed -e '/USE_INETD=/s/true/false/' -i /etc/default/atftpd you also need to add option --daemon in the OPTIONS line of /etc/default/atftpd invoke-rc.d inetd stop invoke-rc.d xinetd stop invoke-rc.d atftpd restart
1.#5 check that your firewall is not blocking DHCP/TFTP traffic (UDP) or, alternatively, just turn off the firewall altogether
iptables -F iptables -X iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT iptables -t mangle -F 2>/dev/null iptables -t mangle -X 2>/dev/null iptables -t nat -F 2>/dev/null iptables -t nat -X 2>/dev/null
1.#6 everything is ready to run now. Time to verify if everything really works.
Verify
- check iptables, if you turned it off, there should be no rules and the policy should be ACCEPT
iptables -L iptables -t nat -L iptables -t mangle -L
1.#2 check if dnsmasq is listening on the bootp port 67
netstat -nulp | grep '67.*dnsmasq' # should display udp 0 0 0.0.0.0:67 0.0.0.0:* <some num>/dnsmasq
1.#3 check if atftpd is listening on the tftp port 69
netstat -nulp | grep atftpd # should display udp 0 0 0.0.0.0:69 0.0.0.0:* <some num>/atftpd
1.#4 test if you can get the PXE boot kernel via tftp.
cd /tmp echo 'get pxelinux.0' | atftp localhost ls -l pxelinux.0 # should display a ~14kB file
Boot the client
Enable PXE boot in BIOS or use Ethertool or whatever makes your client boot off the net. See e.g. http://syslinux.zytor.com/pxe.php .
Problems?
- check syslog (/var/log/syslog)
- use ethereal (wireshark) to inspect network traffic