I’ve just released version 0.2 of v-i, my non-interactive, fairly fast, unofficial, alternative installer of Debian for physical computers (“bare metal”). It’s what I use to install Debian on my PCs now. I blogged about it previously.

Below is a transcript of me installing Debian to my Thinkpad T480 laptop, from my desktop machine.

$ scp exolobe1-spec.yaml root@v-i:
exolobe1-spec.yaml                             100%  228   190.6KB/s   00:00
$ ssh root@v-i
Linux v-i 5.10.0-16-amd64 #1 SMP Debian 5.10.127-1 (2022-06-30) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Aug  7 13:10:02 2022 from
root@v-i:~# time ./v-i exolobe1-spec.yaml
OK, done

real    1m11.003s
user    0m30.671s
sys 0m8.645s
root@v-i:~# reboot
Connection to v-i closed by remote host.
Connection to v-i closed.

The exolobe1-spec.yaml file contains:

hostname: exolobe1
drive: /dev/sda
  - name: home
    size: 300G
    mounted: /home
  user_pub: |
   ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPQe6lsTapAxiwhhEeE/ixuK+5N8esCsMWoekQqjtxjP liw personal systems

To summarize what happened above:

  • I wrote the installer image to a USB drive, and booted the laptop with that drive
  • I logged into the installer, running on the laptop, using SSH, to run the installer
  • the installer asks no questions: I give it a file with all the information it needs to install Debian
  • the installation command took 1 minute 11 seconds
    • Disclaimer: this is the second install with the same USB drive. The first install takes about four minutes longer, because it runs debootstrap. Later installs use a cache of its output.
  • that time doesn’t include the time to write the USB drive, or to boot the target PC to the installer, or to boot the installed system
  • the installed system is fairly minimal, and does not have, say, a desktop system, a software stack to run web applications, or anything much else that’s actually useful
  • the installed system is, however, accessible over SSH, and can be provisioned with a configuration management system such as Ansible

See https://files.liw.fi/v-i/0.2/ for the installer image I used above, and some other bits and bobs. See git repository to open issues or to contribute.