Debian Installation from Rescue System with PreSeed (fully automated)?

Solution 1:

If possible, I suggest you build a new CD yourself and either mail or upload it to someone who can put it in the tray for you. Use a VM to create and test the image until you can get it 100% non-interactive. Remember, you only need the most basic features. A running system with SSH and one user is enough. The rest you can do (carefully) remotely.

I haven't done this with Squeeze yet, but I assume the process is similar. Worst case, you can autoinstall Lenny and upgrade to Squeeze.

You'll need as a prerequisite a preseed file. Use debconf-get-selections to generate this. Start with the output of that command and edit as necessary. See Debian's official documentation for preseeding the installer for any information you need about the preseed contents.

1) Download an ISO from Debian.
2) Mount and copy the CD contents

mount -o loop debian-508-amd64-netinst.iso /mnt
mkdir ~/autoinstall
rsync -a -H --exclude=TRANS.TBL /mnt/ ~/autoinstall/

3) Edit isolinux/isolinux.cfg and replace the entire contents with the following:

default install

LABEL install
   kernel /install.amd/vmlinuz
   append vga=normal initrd=/install.amd/initrd.gz preseed/file=/cdrom/preseed.txt debian-installer/locale=en_US console-keymaps-at/keymap=us --
LABEL linux
   kernel /install.amd/vmlinuz
   append vga=normal initrd=/install.amd/initrd.gz preseed/file=/cdrom/preseed.txt debian-installer/locale=en_US console-keymaps-at/keymap=us --

prompt 0
timeout 0

4) Place your preseed data in the root of the CD image (in this case ~/autoinstall) named preseed.txt.
5) Build the image.

cd ~/autoinstall/
mkisofs -o ~/autoinstall.iso -r -J -no-emul-boot -boot-load-size 4  -boot-info-table -b isolinux/isolinux.bin -c isolinux/boot.cat ~/autoinstall/

You can now use the image to boot from for a VM. Anywhere the installer asks you a question, add that answer to the pressed.txt file and repeat steps 4 & 5.

Keep doing this until you have a viable installer. You'll likely build 20-30 images while tweaking your preseed file until you get it right. Make sure you include openssh-server in pkgsel/include and you should be able to remotely log in.