@george1421 Done.
Best posts made by RobPomeroy
-
Preseeded (unattended) netboot UEFI Debian installation
With the assistance of @george1421 in this thread, I arrived at the following process.
Features
- Unattended installation, preseeded (using a
preseed.cfg
) - Completely hands-off, after selecting the appropriate FOG menu item on PXE boot
- Based on Debian’s netboot - no need to download the Debian ISO
- Uses HTTP only (though you could swap in NFS, TFTP, etc., if you prefer)
- The three files required for the installation can reside in a single location on the FOG server
- Process can be generalised to other versions of Debian and other OSes (though you’d need to work out the Kickstart part for RedHat distros, etc.)
- Works with UEFI - I repeat, works with UEFI!!!
Process
On the FOG server, Unpack netboot.tar.gz to a folder under the Apache root, e.g.:
mkdir -p /home/fogproject/www/os/debian/10.7N cd /home/fogproject/www/os/debian/10.7N wget http://ftp.nl.debian.org/debian/dists/buster/main/installer-amd64/current/images/netboot/netboot.tar.gz tar zxf netboot.tar.gz rm netboot.tar.gz chown -R apache:apache /home/fogproject/www/os/debian/10.7N
Note that I relocated my
www
root to/home/fogproject
. Yours may still be at/var/www
. or similar.The above unpacks:
debian-installer/ pxelinux.0@ pxelinux.cfg@ version.info
We only really need two files, which are in the
debian-installer
directory:linux
andinitrd.gz
. Still, I leave this folder structure as it is.Place your preseed file (normally
preseed.cfg
) in the same directory as the netboot files above (/home/fogproject/www/os/debian/10.7N
in my example). The content of your preseed file is entirely up to you. See the official example, to get started.Create a FOG menu entry as follows:
Menu item: os.Debian.10.7.auto.UEFI
Description: Unattended Debian 10.7 installation (UEFI)
Parameters:kernel http://${fog-ip}/os/debian/10.7N/debian-installer/amd64/linux auto=true url=http://${fog-ip}/os/debian/10.7N/preseed.cfg interface=auto hostname=debian-10 domain=local initrd=initrd.gz vga=788 noprompt quiet imgfetch http://${fog-ip}/os/debian/10.7N/debian-installer/amd64/initrd.gz boot || goto MENU
Menu Show with: All hosts
Notes
If you need an option for manual installation, simply drop the auto parameters from the kernel line:
kernel http://${fog-ip}/os/debian/10.7N/debian-installer/amd64/linux initrd=initrd.gz vga=788 quiet
The clue to getting this working was to include
initrd=initrd.gz
in thekernel
line and then useimgfetch
to makeinitrd.gz
available. - Unattended installation, preseeded (using a
-
RE: Fully automated UEFI-based O/S installation (Debian 10)
@george1421 George, firstly thanks again for the all the work you’ve put into this!
This steered me in exactly the right direction. The following are the parameters I used for a completely automated netboot install (no Live ISO required). This is the point I was hoping to get to. Brilliant.
kernel tftp://${fog-ip}/debian-installer/amd64/linux auto=true url=http://${fog-ip}/os/autoinstall/debian-10/preseed.cfg interface=auto hostname=debian-10 domain=local initrd=initrd.gz vga=788 noprompt quiet imgfetch tftp://${fog-ip}/debian-installer/amd64/initrd.gz boot || goto MENU
So this removes the need to mess around with
grub.cfg
or boot to an intermediate (grub) menu. All you need are thenetboot.tar.gz
files and apreseed.cfg
. Next I’ll try doing this all via HTTP (rather than TFTP), to avoid polluting/tftpboot
. I’m mindful that I would like to make the backup and restoration of FOG itself as straightforward as possible.I know I’ve said this a few times in this thread (!) but once more: thank you. If I can help by writing up a wiki page for this process, do point me in the right direction.
-
RE: Fully automated UEFI-based O/S installation (Debian 10)
Yep, HTTP worked perfectly too, which means I could put the three required files in a single location under the web root. FOG menu parameters:
kernel http://${fog-ip}/os/autoinstall/debian-10/debian-installer/amd64/linux auto=true url=http://${fog-ip}/os/autoinstall/debian-10/preseed.cfg interface=auto hostname=debian-10 domain=local initrd=initrd.gz vga=788 noprompt quiet imgfetch http://${fog-ip}/os/autoinstall/debian-10/debian-installer/amd64/initrd.gz boot || goto MENU
This is clean & efficient. I like it. Probably not as quick as using a Live image, but I’m doing this over a fast internet connection and it’s a minimal install. So the whole thing is done in ten minutes or so.
Again, I’m more than willing to write this up somewhere if useful for others.