It's possible to install Debian/Ubuntu entirely over a network. Here are some guidelines on how to do that.
Method of booting
There are several ways to boot into an installer without downloading a full ISO CD image. Each involves downloading a few small files from a mirror and booting from them. All of the necessary files can be downloaded from the netboot directory of the mirror:
The gtk subdirectory contains versions that use the graphical installer. Otherwise the installer is console-based. Surprisingly, the graphical installer is only very slightly larger.
The Mini ISO is a bootable CD image that is only 10-16MB in size. It is the file mini.iso at the top level of the netboot mirror directory mentioned above.
Download and burn this to a CD, ideally a rewritable one. This is typically a good way set up a new virtual machine, by attaching the downloaded ISO to the virtual CD drive.
Set the machine to boot from the CD drive, eg by changing the boot order to "Floppy. CD, HD".
It's possible to install GRUB on a USB flash drive and copy the netboot kernel+initrd to it. These are in the debian-installer/i386 of the netboot mirror directory mentioned above. This can be done with any flash drive, and doesn't require any repartitioning or disk imaging.
- Create a boot directory at the top level of the drive, and a grub directory within that.
- Copy the files linux and initrd.gz to the boot directory, or a subfolder of it.
- Create a menu.lst in boot/grub.
- Install GRUB to the MBR (see below).
It's possible to have multiple sets of linux+initrd for different distros and purposes all on the one drive. They don't take up much space. It's easier to keep things organized if you use separate subdirectories for each distro and release. You can also have memtest86 available, which is handy for checking suspect machines, even Windows ones.
Having GRUB in the MBR is invisible until you boot from the drive, and doesn't affect its operation in any way.
The layout of my flash drive looks like this:
Many BIOSes have a PXE boot capability. This requires a bootp+tftp server to serve the netboot kernel+initrd.
The BIOS will expect the DHCP server to identify the TFTP server that is to be used for booting. This takes significant work to set up, and may not be possible in network environments that already have a DHCP server, unless you plug the installation machine directly into another Linux machine. It's not worth the effort unless you plan to do a lot of installs this way.
The netboot kernel+initrd are the same as the ones used with GRUB as described above.
GRUB from a Windows partition
Using the installer
The machine will boot straight into the installer. You are then asked a series of questions about locale, keyboard and mirror location. It is possible to use a local mirror by selecting enter manually from the mirror list. However, this entry is right at the top and will not be obvious if your country is lower down the list.
Here in the Calgary office, our mirror host name is debian.wycliffe.ca and the directory is either /debian/ or /ubuntu/. The release name is determined internally by the installer, based on the release from which you downloaded it.
After this, and some preliminary downloading, you will be invited to select "tasks". If you want minimal install, choose "Standard" and nothing else. You can install your chosen desktop environment later using a console login and apt-get install. This allows you to install KDE, XFCE or LXDE without installing GNOME first.