Size: 7504
Comment: imported from the old wiki
|
Size: 8625
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
= LocalNetInstall = This is a work in progress. It is also a mix of Basic Internet Install and Local Net isntall that are similare to just installing from the CD, and Hands Off Install that uses a preseed file to automate the whole thing. sahara is the server. shaz is the blank box that I am trying to install Hoary on. |
##lang=en '''Other Languages: ComoNetbootInstall Espanol''' [new] good news! It works with Feisty Alternate and Server CDs. ## page was renamed from LocalNetInstall This is a work in progress. It is also a mix of Basic Internet Install and Local Net Install that are similar to just installing from the CD, and Hands Off Install that uses a preseed file to automate the whole thing. sahara is the server for dhcp, tftp, and http. (Each of these can be run on a separate server if desired.) shaz is the blank box that I am installing on. 0. Install Trivial File Transfer Protocol server and enable it (default tftp config uses inetd) {{{ root@sahara:/ # apt-get install tftpd-hpa root@sahara:/ # vi /etc/default/tftpd-hpa }}} 0. Mount the CD (media or image) under the tftpboot dir{{{ root@sahara:/var/lib/tftpboot/ubuntu/edgy$ mount -o loop edgy-alternate-i386.iso alternate/ }}} If you wish, you can instead copy the contents of the CD onto the server permanently instead of leaving the ISO mounted. |
Line 11: | Line 25: |
0. Mount the CD (media or image) under Apache's DocumentRoot{{{ root@sahara:/var/www # mkdir ubuntu /usr/bin/rsync -avpzP --stats \ cdimage.ubuntulinux.org::cdimage/daily/current/hoary-install-i386.iso \ /var/www/ mount -o loop /var/www/hoary-install-i386.iso /var/www/ubuntu }}} 0. Install Trivial File Transfer Protocol server (The default install uses inetd to run tftpd when a connection is made, so don't try to start it manualy.){{{ root@sahara:/ # apt-get install tftpd-hpa }}} 0. Copy the entries in the CD's netboot dir in the tftpboot dir because the TFTP server is jailed by default in /var/lib/tftpboot so symlinks can't work. This lets you edit pxelinux.cfg/default.{{{ root@sahara:/var/lib/tftpboot # cp -a /var/www/ubuntu/install/netboot/* . }}} |
0. Make a symlink from apache's doc Root to the CD{{{ root@sahara:/var/www # ln -s /var/lib/tftpboot/ubuntu/}}} Or copy the /ubuntu directory from the CD into here. |
Line 33: | Line 34: |
# option domain-name-servers 68.87.64.140 # option broadcast-address 192.168.1.255; # option routers 192.168.1.1; ping-check = 1; filename="pxelinux.0"; |
|
Line 41: | Line 37: |
# put your DNS IP's here: option domain-name-servers 192.168.1.7, 68.87.66.196 ; filename="ubuntu/edgy/alternate/install/netboot/pxelinux.0"; |
|
Line 44: | Line 43: |
Starting DHCP server: dhcpd3.}}}I #'ed out the DNS - routers to make sure the install didn't figure out how to pull files from the net. 0. Boot up the client box, config the bios to net boot and you should get the Ubuntu Hoary screen and Boot: prompt. Yipee! |
Starting DHCP server: dhcpd3.}}} 0. Boot up the client box, config the bios to net boot and you should get the Ubuntu screen and Boot: prompt. Yippee! The above steps should give you an interactive setup, very similar to if you had booted from the CD. --- |
Line 50: | Line 52: |
==== | ---- |
Line 54: | Line 56: |
Right now a handfull of preseed options need to be passed via kernel options. The kernel only supports 255 chars, so things are cramped. To accomodate this, I dumped some of the paths and made symlinks. That gave me just enough space for now. Note that the path/name of the kernel gets appended, so even trimming that helped. | A handfull of preseed options need to be passed via kernel options. The kernel only supports 255 chars, so things are cramped. To accomodate this, I dumped some of the paths and made symlinks. That gave me just enough space for now. Note that the path/name of the kernel gets appended, so even trimming that helped. |
Line 79: | Line 81: |
label ubuntu-breezy-normal | label ubuntu-feisty-normal |
Line 81: | Line 83: |
kernel ubuntu-breezy/linux append vga=normal initrd=ubuntu-breezy/initrd.gz ramdisk_size=14984 root=/dev/rd/0 rw -- label ubuntu-breezy-hands-off |
kernel ubuntu-feisty/linux append vga=normal initrd=ubuntu-feisty/initrd.gz ramdisk_size=14984 root=/dev/rd/0 rw -- label ubuntu-feisty-hands-off |
Line 86: | Line 88: |
kernel ubuntu-breezy/linux append initrd=ubuntu-breezy/initrd.gz ramdisk_size=14984 root=/dev/rd/0 rw preseed/locale=en_US kbd-chooser/method=us netcfg/wireless_wep= netcfg/choose_interface=eth1 netcfg/get_hostname= preseed/url=http://192.168.1.7/preseed-breezy.cfg vga=6 -- |
kernel ubuntu-feisty/linux append initrd=ubuntu-feisty/initrd.gz ramdisk_size=14984 root=/dev/rd/0 rw preseed/locale=en_US kbd-chooser/method=us netcfg/wireless_wep= netcfg/choose_interface=eth1 netcfg/get_hostname= preseed/url=http://192.168.1.7/preseed-feisty.cfg vga=6 -- |
Line 93: | Line 95: |
note: this is from my new breezy installer, everything else on this page was from hoary. Using http://archive.ubuntu.com/ubuntu/dists/hoary/main/installer-i386/current/doc/manual/en/apcs01.html saved to /var/www/preseed.cfg, here are the important changes: |
note: The DHCP server can't pass it, but pretending that the MAC address of your wireless card is 12 : CD : 56 : AB : 78 : EF you can specify a custom pxelinux.cfg/01-12-dc-56-ab-78-ef (lowercase) instead. If you are using static dhcp, you can also use the IP address in hex for a per-machine or per-subnet or per-network configuration. See http://syslinux.zytor.com/pxe.php#config for more information. Basically, say you have three wireless cards where the IP in hex translated to caf12d5e, caf12d6b, caf124ea, you could specify pxelinux.cfg/caf12d and pxelinux.cfg/caf12. The first two would match to the first config file and the third would match to the second config file. Originally found at http://archive.ubuntu.com/ubuntu/dists/feisty/main/installer-i386/current/doc/manual/en/apcs01.html and saved to /var/www/preseed.cfg, here are the important changes: |
Line 100: | Line 104: |
d-i mirror/suite string hoary | d-i mirror/suite string feisty |
Line 102: | Line 106: |
}}} | }}} (See http://www.debian.org/releases/etch/example-preseed.txt for another example.) |
Line 123: | Line 127: |
# You need a next-server option if TFTP and DHCPd aren't on the same system. next-server sahara; |
|
Line 160: | Line 167: |
Line 165: | Line 171: |
http://rom-o-matic.net |
|
Line 171: | Line 179: |
Line 200: | Line 209: |
--- PPC Mac related links http://www.macgeekery.com/hacks/how_to_install_debian_via_network_boot_from_a_mac http://davespicks.com/writing/programming/mackeys.html#boot SmartBootManagerHowto CategoryDocumentation CategoryCleanup |
Other Languages: ComoNetbootInstall Espanol
[new] good news! It works with Feisty Alternate and Server CDs.
This is a work in progress. It is also a mix of Basic Internet Install and Local Net Install that are similar to just installing from the CD, and Hands Off Install that uses a preseed file to automate the whole thing.
sahara is the server for dhcp, tftp, and http. (Each of these can be run on a separate server if desired.) shaz is the blank box that I am installing on.
Install Trivial File Transfer Protocol server and enable it (default tftp config uses inetd)
root@sahara:/ # apt-get install tftpd-hpa root@sahara:/ # vi /etc/default/tftpd-hpa
Mount the CD (media or image) under the tftpboot dir
root@sahara:/var/lib/tftpboot/ubuntu/edgy$ mount -o loop edgy-alternate-i386.iso alternate/
If you wish, you can instead copy the contents of the CD onto the server permanently instead of leaving the ISO mounted.Setup Apache
root@sahara:~ # apt-get install apache2
Make a symlink from apache's doc Root to the CD
root@sahara:/var/www # ln -s /var/lib/tftpboot/ubuntu/
Or copy the /ubuntu directory from the CD into here.Install dhcp server.
root@sahara:~ # apt-get install dhcp3-server
Set the dhcp server to tell the clients what to boot. I added a default host name, you don't need it but it comes in handy for other things.
root@sahara:~ # cat /etc/dhcp3/dhcpd.conf subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.10 192.168.1.254; } # put your DNS IP's here: option domain-name-servers 192.168.1.7, 68.87.66.196 ; filename="ubuntu/edgy/alternate/install/netboot/pxelinux.0"; root@sahara:~ # /etc/init.d/dhcp3-server restart Stopping DHCP server: dhcpd3. Starting DHCP server: dhcpd3.
- Boot up the client box, config the bios to net boot and you should get the Ubuntu screen and Boot: prompt. Yippee!
The above steps should give you an interactive setup, very similar to if you had booted from the CD.
--- At this point in time my goal has shifted from a typical install like if you just booted from CD to a Hands Off Install where all the questions have been answered and fed to the installer as preseed. I may get back to the interactive setup, but for now I am focused on using preseed.cfg.
My configs to make a Hands Off Install that does not pull anything from the internet.
A handfull of preseed options need to be passed via kernel options. The kernel only supports 255 chars, so things are cramped. To accomodate this, I dumped some of the paths and made symlinks. That gave me just enough space for now. Note that the path/name of the kernel gets appended, so even trimming that helped.
{{{root@sahara:/var/lib/tftpboot # ln -s ubuntu-installer/i386/initrd.gz root@sahara:/var/lib/tftpboot # ln -s ubuntu-installer/i386/linux}}}
/var/lib/tftpboot/pxelinux.cfg/default
# pxelinux.cfg/default # display u0buntu-installer/i386/boot-screens/syslinux.txt default menu prompt 1 timeout 150 ontimeout boothd label menu # makes a menu out of this file, allows editing the options on the client kernel menu.c32 label boothd # boot from the first HD # (this is what happens if nothing is pressed for 15 seconds) localboot 0 label ubuntu-feisty-normal # ubuntu instaler kernel ubuntu-feisty/linux append vga=normal initrd=ubuntu-feisty/initrd.gz ramdisk_size=14984 root=/dev/rd/0 rw -- label ubuntu-feisty-hands-off # ubuntu instaler kernel ubuntu-feisty/linux append initrd=ubuntu-feisty/initrd.gz ramdisk_size=14984 root=/dev/rd/0 rw preseed/locale=en_US kbd-chooser/method=us netcfg/wireless_wep= netcfg/choose_interface=eth1 netcfg/get_hostname= preseed/url=http://192.168.1.7/preseed-feisty.cfg vga=6 --
netcfg/get_hostname= Is blank so that it will pick up the host-name supplied by the DHCP server.
netcfg/choose_interface=eth1 - for laptops, I want it to setup the wifi card, not the wired port. Problem I am having is that some use eth1 and some wlan0. What would be great is if the DHCP server could somehow pass this too.
note: The DHCP server can't pass it, but pretending that the MAC address of your wireless card is 12 : CD : 56 : AB : 78 : EF you can specify a custom pxelinux.cfg/01-12-dc-56-ab-78-ef (lowercase) instead. If you are using static dhcp, you can also use the IP address in hex for a per-machine or per-subnet or per-network configuration. See http://syslinux.zytor.com/pxe.php#config for more information.
Basically, say you have three wireless cards where the IP in hex translated to caf12d5e, caf12d6b, caf124ea, you could specify pxelinux.cfg/caf12d and pxelinux.cfg/caf12. The first two would match to the first config file and the third would match to the second config file.
Originally found at http://archive.ubuntu.com/ubuntu/dists/feisty/main/installer-i386/current/doc/manual/en/apcs01.html and saved to /var/www/preseed.cfg, here are the important changes:
d-i mirror/country string enter information manually d-i mirror/http/hostname string 192.168.1.22 d-i mirror/http/directory string /ubuntu d-i mirror/suite string feisty d-i mirror/http/proxy string
(See http://www.debian.org/releases/etch/example-preseed.txt for another example.)
Here is my current dhcpd.conf
ping-check = 1; log-facility local7; option domain-name "sahara.net"; option time-servers 192.168.1.1; option broadcast-address 192.168.1.255; option domain-name-servers 63.240.76.4, 204.127.198.4; option routers 192.168.1.1; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.10 192.168.1.254; } # Hoary test boxes group { filename="pxelinux.0" ; # You need a next-server option if TFTP and DHCPd aren't on the same system. next-server sahara; # 192.168.1.2 does not exist on my lan. # I am setting it like this to make sure the box doesn't find # a repo on the net to pull sources from. # It would be good I can figure out how to i # limit these setting to the install phase # (including the 2nd part after the reboot ) option domain-name-servers 192.168.1.2 ; option routers 192.168.1.2 ; host dwl650p { hardware ethernet 00:05:5d:5a:81:f0 ; option host-name "dwl650p" ; } # tsp2 6100 - a=wired, b=wifi host tsp2a { hardware ethernet 00:00:39:fa:ff:f3 ; option host-name "tsp2a" ; } host tsp2b { hardware ethernet 00:02:2d:b0:c8:6c ; option host-name "tsp2b" ; } host tsp1 { hardware ethernet 00:00:39:88:31:a6 ; option host-name "tsp1" ; } host e400 { hardware ethernet 00:60:08:b0:62:0d ; # fixed-address 192.168.1.181 ; option host-name "e400" ; } }
If your box doesn't have the option to boot from lan (like one of mine) you can make a boot disk that will do that part.
http://etherboot.sourceforge.net
I am pleased to say that I was able to read, download, build, run, make the floppy in under 30 min.
"Etherboot does not (yet) offer support for PCMCIA cards." so the older laptops will have to wait.
Pile of PXE related links:
http://freshmeat.net/projects/syslinux/
http://syslinux.zytor.com/memdisk.php
http://support.3com.com/infodeli/tools/nic/mba.htm New Universal NDIS Driver for DOS
http://www.qualystem.com/en/dualboot.html
http://unattended.sourceforge.net/step-by-step.php
http://unattended.sourceforge.net/advanced.php#pxe
http://syslinux.zytor.com/archives/2003-June/002185.html
http://www.intel.com/design/network/drivers/int21143.htm
http://www.tux.org/pub/distributions/tinylinux/tomsrtbt/
http://www.winimage.com/winimage.htm
http://www.weird-solutions.com/docs/pxe_booting.pdf
http://www.weird-solutions.com/bin/util/tftp_root.zip
http://marc.herbert.free.fr/linux/win2linstall.html Install GNU/Linux without any CD, floppy, USB-key, nor any other removable media.
http://osdev.berlios.de/netboot.html - Network-booting Your Operating System - the part I like: "...loads the GRUB, the second-stage loader, off the server." --- PPC Mac related links
http://www.macgeekery.com/hacks/how_to_install_debian_via_network_boot_from_a_mac