From ef8043eae57a33bd59ced7b30b13460197932bf7 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 22 Jul 2023 12:47:09 +0300 Subject: docs(tutorial.md): simplify and update Sponsored-by: author --- tutorial.md | 84 ++++++++++++++++++++++++++++++++----------------------------- 1 file changed, 44 insertions(+), 40 deletions(-) (limited to 'tutorial.md') diff --git a/tutorial.md b/tutorial.md index 91d7f9f..74b966a 100644 --- a/tutorial.md +++ b/tutorial.md @@ -17,42 +17,44 @@ The steps: wget -c https://files.liw.fi/v-i/v-i.img.xz ~~~ -2. Unpack the image. +2. Unpack the downloaded image. ~~~sh unxz v-i.img.xz ~~~ + + This will use a few gigabytes of disk apace. -3. Insert USB drive and write the image to the stick. I prefer GNOME - Disks for this, but dd will work. Look up the device of the USB - stick: run `sudo dmsg -T` and look for relevant kernel message, or - use GNOME Disks, or something else. Replace the actual device for - `sdx` below, then run the following command: - - ~~~sh - dd if=v-i.img bs=1M oflag=direct status=progress of=/dev/sdx - ~~~ - -4. Configure the installer. Create a YAML file like the one below, but - with valued customized for you. You need one of - `authorized_keys_file` or `user_ca_pub_file`, the others are only - necessary to avoid the SSH prompt for a new host. +3. Write a configuration file for the installer, to allow logging in + via SSH to the running installer. If you don't intend to do that, + you can just create an empty file. Otherwise, create a YAML file + like the one below, but with values customized for you. You need + one of `authorized_keys_file` or `user_ca_pub_file`. ~~~yaml user_ca_pub_file: ~liw/.ssh/ca/userca.pub authorized_keys_file: ~liw/.ssh/id_personal.pub - host_key_file: host.key - host_cert_file: host.key-cert.pub ~~~ + + Either of these two lines configures the installer SSH to allow you + to log in as `root` using SSH. Password logins are not allowed for + SSH. You can also log in via the console, as `root`, without a + password. - Then run `sudo ./configure-installer your-config.yaml /dev/sdx` (it - should be quite fast). +4. Insert USB drive and find out the device allocated it. I prefer GNOME + Disks for this, but you can also look up the device of the USB + stick: run `sudo dmsg -T`. The device name is usually `/dev/sdx` + for some value of x. + +5. Write the installer image to the USB drive, and configure it. + + ~~~sh + sudo ./write-and-config.sh config.yaml /dev/sdx v-i.img + ~~~ - Alternatively, create a second stick with a file system with the - label `v-i-config` and a file called `authorized_keys`, and have - that in another USB port when you boot from the v-i USB drive + This will take a few minutes. -5. Make sure everything has been written to the USB drive. Again, I +6. Make sure everything has been written to the USB drive. Again, I prefer GNOME Disks for this, but from the command line: ~~~sh @@ -60,40 +62,42 @@ The steps: eject /dev/sdx ~~~ -6. Move the USB drive to the target machine and boot off the drive. - How this happens varies from machine to machine. On my Thinkpad, I - press F12 at the POST screen and then choose the right drive from - the boot menu. +7. Move the USB drive to the target machine and boot off the drive. + How this happens varies from machine to machine. On my Thinkpad + X220, I press F12 at the POST screen and then choose the right + drive from the boot menu. -7. Wait for the system to boot. Log in as root, either from the +8. Wait for the system to boot. Log in as root, either from the virtual console (no password), or via SSH. -8. Create a target specification file `foo-target.yaml`. The name can +9. Create a target specification file `foo-target.yaml`. The name can be anything, but it must be valid YAML. In the example below, there - is one NVMe drive that will get the system installed. The primary - All drives will be encrypted using LUKS, with the password - "hunter2". + is one NVMe drive that will get the system installed. All drives + will be encrypted using LUKS, with the password "hunter2". ~~~yaml drive: /dev/nvme0n1 luks: hunter2 ~~~ -9. Install. Add the `--verbose` option to `./v-i` if you want to know - what's happening. The first time you run this on a given v-i USB - drive, it takes a while: it runs `vmdebootstrap` and that is just - slow. However, the output is cached, so further runs are faster. +10. Install. Add the `--verbose` option to `./v-i` if you want to know + what's happening. The first time you run this on a given v-i USB + drive, it takes a while: it runs `vmdebootstrap` and that is just + slow. However, the output is cached, so further runs are faster. ~~~sh rm -f install.log ./v-i --verbose foo-target.yaml ~~~ + + This will take few minutes the first time, assuming a fast + Internet connection. Further runs go faster. -10. Reboot into the installed system. +11. Reboot into the installed system. -11. Finish configuring the system in whatever way you like to do that. - You can log into it via SSH as root. I use Ansible. +12. Finish configuring the system in whatever way you like to do that. + I use Ansible. Remember to change the LUKS password for each drive. -12. Optional: Let me know how it went. +13. Optional: Let me know how it went. -- cgit v1.2.1