summaryrefslogtreecommitdiff
path: root/src/initrd
AgeCommit message (Collapse)Author
2021-03-13firstboot: do not attempt to eject samizdat medium when booting to ramAndrew Cady
2021-03-11initrd: umount /mnt/* before bootingAndrew Cady
2021-03-11calling umount slightly sooner is more correctAndrew Cady
2021-03-03automatically make the boot medium ejectableAndrew Cady
2021-03-02Fix to make the btrfs install method work.Andrew Cady
Just figured this out. We must change the fsuid after removing the devices, because btrfs MODIFIES the READ-ONLY SEED DEVICES to mark them unavailable after when remove them from the read-write device. When we reboot with the UNMODIFIED, IMMUTABLE seed image, btrfs cannot handle the duplicate fsuid. We detect this situation (kind of) and call btrfstune -m to change the fsuid of the /dev/mapper/samizdatcrypt single device fs. Now it just works. It would be much better to call this on the booted system on the running rootfs, but btrfs can't, so we instead call it on the initrd mount time. A more proper fix might use the partition table to mark the partition as in need of 'btrfstune -m'.
2021-03-02simplify samizdat-eject.shAndrew Cady
2021-03-02make-total-destroy: try to make device unbusyAndrew Cady
2021-03-02initrd: improve console loggingAndrew Cady
2021-03-02Fix dynmenu restart errorAndrew Cady
Thanks https://bbs.archlinux.org/viewtopic.php?id=94780 libncurses should change error string from 'unknown' to '$TERM is unset'!
2021-03-02initrd: do not autoboot again if first autoboot failedAndrew Cady
2021-03-02initrd: improve terminal and error handling for menuAndrew Cady
2021-03-02initrd: improve readability and robustness to recoveryAndrew Cady
The luks.secret is stored per block device, and any existing /dev/mapper/samizdatcrypt is removed before we try to create that device. This makes it more possible to recover from a failed menu-select from the emergency console.
2021-03-02initrd: menu-select: robustnessAndrew Cady
Try to make menu-select slightly more robust to being run a second time after a failed run.
2021-02-28ignore "btrfs device ready" failureAndrew Cady
2021-02-28initrd fixes: calls to "btrfs device ready"Andrew Cady
2021-02-23boot menu: add shutdown optionAndrew Cady
2020-10-11Installed and successfully ran btrfs dev rem.Andrew Cady
Ran it in the VM with the command: make install; sudo ./src/mkinitramfs-samizdat ; sudo bash ./src/parted-usb.sh Didn't use the .patch.btrfs here yet.
2020-10-11it boots to ramAndrew Cady
2020-10-10about to reboot and try this shitAndrew Cady
2020-10-10mostly old uncommitted changesAndrew Cady
committing everything without discretion rebase -i from me
2020-08-27make set -x less noisywip-2020-09-15Andrew Cady
2020-06-19installer: begin plaintext partition at 8MiBAndrew Cady
2020-05-07initrd: ignore failure of samizdat-password-agentAndrew Cady
2020-05-06initrd: call samizdat_install_udev_rules earlierAndrew Cady
2019-10-17fixup! avoid initrd race conditionAndrew Cady
2019-10-16avoid initrd race conditionAndrew Cady
2019-10-13fix luksFormat for newer initramfs-toolsAndrew Cady
2019-10-04create /home/u with btrfs subvolumes preinstalledAndrew Cady
2019-06-19remember to remove temporary directoriesAndrew Cady
2019-06-19initrd patchroot.sh: remove cruftAndrew Cady
2019-06-19avoid redundantly copying files into rootfsAndrew Cady
2019-06-17make-total-destroyAndrew Cady
This tool is a convenience for testing. Run it in the initrd shell and it will erase the hard drive so that you can install Samizdat fresh.
2018-07-09eliminate warning (don't numerically compare the empty string)Andrew Cady
2018-07-09bugfix: new installs were never finalizedAndrew Cady
Because a non-local shell variable was accidentally overwritten, the partitions containing a fresh install to an empty disk were never relabeled to indicate finalization. They would have to be relabeled manually to boot the installed system.
2018-06-16Move unknown mountpoints before bootingAndrew Cady
If there are mountpoints outside of /root, which `run-init` does not have in its whitelist, then `run-init` will refuse to boot and will crash the kernel instead (process 1 will exit).
2018-06-13making btrfs subvolumes should be idempotentAndrew Cady
2017-04-02remove obsolete commentAndrew Cady
2017-03-28verify that we can decrypt rootfs before offering it as menu itemAndrew Cady
2017-03-28Use pxelinux "ipappend" option to choose rootfs sourceAndrew Cady
This fixes the issue described in the first 'netkeys' commit, where the network would need to be available even when it was not used. The "ipappend" option results in a $BOOTIF variable in the initrd environment. This variable is now used to determine whether to wait on the network for a rootfs & keys, or to wait on the boot device becoming available to determine whether it has the keys. That is, there may or may not be a boot device which may or may not have keys and/or rootfs, but we will always know for sure whether it does, therefore there are no races and no waiting on the network unnecessarily. The qemu.sh script was updated to provide the BOOTIF variable when PXE boot is emulated.
2017-03-28change some log locationsAndrew Cady
2017-03-28Wait for nbd-client before using /dev/nbd0Andrew Cady
For explanation, see: https://lists.freedesktop.org/archives/systemd-devel/2014-March/018053.html But for the proper solution, see: https://lists.freedesktop.org/archives/systemd-devel/2014-March/018054.html Another option would just be to use a partitioned nbd device. The nbd device _partitions_ do not have this issue at all.
2017-03-28use mountpoint /plaintext for samizdat-plaintext partitionAndrew Cady
2017-03-28Ensure we can decrypt the luks key before attempting to use itAndrew Cady
This just fails earlier when the wrong GPG key is used. The correct solution is to avoid the failure by testing for GPG keys before offering disks to boot.
2017-03-26fully enable booting from installed native partitionAndrew Cady
2017-03-26Implement booting already-installed native installAndrew Cady
This option is only available if the partitions have been renamed to indicate finalization of the install. The code that finalizes the install by renaming the partitions is available, but not yet run after the install.
2017-03-26create and boot the encrypted root filesystemAndrew Cady
2017-03-25Initial support for installing to an empty disk deviceAndrew Cady
Right now, this just installs a new GPT partition table on the disk, with the partitions samizdat needs. Then nothing happens because nothing else is implemented. It will only allow a disk to be wiped like this if there are no partitions on the disk (or if the only partitions on the disk are partially-installed samizdat partitions).
2016-05-03fix the rest of the bugsAndrew Cady
2016-05-01copy more executables from initrd to rootfs (if missing)Andrew Cady
2016-05-01netbooting, with unique keys, WORKSAndrew Cady