make autodiscover not automatically reboot
[automated-distro-installer] / README
diff --git a/README b/README
index 3e6123b51c2ef09566d1c740010769115b7c0bad..07b54a803af60796ebb4ef67e6a316532c3ea54b 100644 (file)
--- a/README
+++ b/README
@@ -1,10 +1,9 @@
 PXE install w multi-boot, btrfs & Libreboot support
 
 Some things are specific to my home network, and uses files with secrets
 PXE install w multi-boot, btrfs & Libreboot support
 
 Some things are specific to my home network, and uses files with secrets
-that are not in this repo. Uses pxe or pxe-kexec (on libreboot, I have
-not added a pxe rom, I use a minimal debian stable subvolume which acts
-like a pxe rom). I use this for bare metal and vms, and two scripts
-which can run post boot so I use them on vps distributed image as well.
+that are not in this repo. I use this for bare metal and vms, and two
+scripts which can run post boot so I use them on vps distributed image
+as well.
 
 Features people may find useful: installs encrypted trisquel, debian,
 ubuntu, and arch (havne't done recently, probably a bit broken), in a
 
 Features people may find useful: installs encrypted trisquel, debian,
 ubuntu, and arch (havne't done recently, probably a bit broken), in a
@@ -12,6 +11,27 @@ multi-boot setup using multiple subvolumes of a single btrfs filesystem.
 Utilizes multiple disks, with scripts to automatically decrypt on
 intentional reboots, but not after shutdown or power loss.
 
 Utilizes multiple disks, with scripts to automatically decrypt on
 intentional reboots, but not after shutdown or power loss.
 
+Normal install mode for fai is using pxe, but on a libreboot system,
+there is no pxe. The pxe in a normal computer is nonfree
+firmware. Alternatives to normal pxe that I've tried:
+
+* libreboot + seabios + ipxe
+
+* Use a live cd to call pxe-kexec, this is described later in this file.
+
+* Use the fai autodiscover iso. This is more automated, so nicer.
+
+* Use an install method above to setup a gnu/linux disk partition that
+  coordinates with libreboot grub to acts like a pxe boot using
+  kexec. The boot process takes a bit longer than normal pxe. This is
+  the bootstrap partition in my scripts.
+
+Things I haven't tried:
+
+* The bios chip has enough room for an initrd. This could be setup to
+  work like the partition I use to kexec, but it would be faster, and
+  not require installing to disk.
+
 The partititioning and filesystem script is at
 fai/config/hooks/partition.DEFAULT. Disks are grouped as ssd or hdd and
 raided in raid 1 or raid 0 per configuration. The base partitions are
 The partititioning and filesystem script is at
 fai/config/hooks/partition.DEFAULT. Disks are grouped as ssd or hdd and
 raided in raid 1 or raid 0 per configuration. The base partitions are
@@ -43,23 +63,27 @@ Some of the scripts have dependencies for some simple obvious utility
 scripts from https://iankelling.org/git, and of course there are some
 hostnames that are specific to my network.
 
 scripts from https://iankelling.org/git, and of course there are some
 hostnames that are specific to my network.
 
+
+
 All scripts meant to be used directly are listed here:
 
 
 # Scripts to setup the environment for the install
 
 All scripts meant to be used directly are listed here:
 
 
 # Scripts to setup the environment for the install
 
+sudo fai-cd -g grub.cfg.autodiscover -f -A $BASEFILE_DIR/autodiscover.iso # create autodiscover cd
+mymk-basefile # Create basefiles for various distros
 arch-pxe # Setup arch pxe boot server from an arch base image
 fai-redep # Deploy fai configuration to host "faiserver"
 arch-pxe # Setup arch pxe boot server from an arch base image
 fai-redep # Deploy fai configuration to host "faiserver"
-faiserver-revm # using pxe & preseed, create a vm which is a fai server
 faiserver-uninstall # uninstall fai-server
 faiserver-setup # install fai-server on the current machine
 myfai-chboot # setup fai tftp and nfs. useful for doing pxe-kexec
 pxe-server # disable/enable pxe dhcp, tfp, and nfs. calls myfai-chboot
 faiserver-uninstall # uninstall fai-server
 faiserver-setup # install fai-server on the current machine
 myfai-chboot # setup fai tftp and nfs. useful for doing pxe-kexec
 pxe-server # disable/enable pxe dhcp, tfp, and nfs. calls myfai-chboot
-wrt-setup-remote  # setup my router in general: dhcp, dns, etc.
+wrt-setup  # setup my router in general: dhcp, dns, etc.
 
 
 # Script to do a distro install
 
 
 
 # Script to do a distro install
 
+faiserver-revm # using pxe & preseed, create a vm which is a fai server
 dsfull # install & post-install a new fai distro
 arch-init-remote # install arch after it's been booted into it's setup env
 fai-kexec # Kexec this or a remote machine using host faiserver
 dsfull # install & post-install a new fai distro
 arch-init-remote # install arch after it's been booted into it's setup env
 fai-kexec # Kexec this or a remote machine using host faiserver
@@ -82,7 +106,40 @@ faiserver-disable # Disable the fai nfs server exports
 fresize # resize swap or boot partitions in a host
 
 
 fresize # resize swap or boot partitions in a host
 
 
-License stuff:
+# Replacing a raid 10 disk
+
+pxe-server -S HOST fai
+ssh root@HOST
+cat >p
+PASSWORD HERE(ctrl-d ctrl-d)
+for d in /dev/disk/by-id/ata*part1; do cryptsetup luksOpen --key-file p $d crypt_dev_${d##*/}; done
+# btrfs replace disk # i forget the actual command
+x=(/dev/mapper/*part1); mount -o subvol=root_trisquelflidas $x /mnt
+mount -o subvol=boot_trisquelflidas /dev/sda3 /mnt/boot
+for x in dev proc sys; do mount -o bind /$x /mnt/$x; done
+chroot /mnt /bin/bash
+# replace disk in fstab
+# replace disk in /etc/crypttab
+update-grub
+update-initramfs -u
+mount /a
+/a/exe/keyscript-on
+exit
+reboot
+
+
+# Expected output in fai logs
+
+For flidas, when installing systemd, this error happens, and it's
+a superflous upstream bug based on reading the post install script:
+
+addgroup: The group `systemd-journal' already exists as a system group. Exiting.
+Operation failed: No such file or directory
+
+
+
+# License
+
 The license for the project is GPLv2 or later, mostly because fai is and
 I periodically merge the upstream example config, which contains small
 scripts. Also, there is a modified encrypt.upstream, which is from the
 The license for the project is GPLv2 or later, mostly because fai is and
 I periodically merge the upstream example config, which contains small
 scripts. Also, there is a modified encrypt.upstream, which is from the