Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
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'.
|
|
|
|
|
|
|
|
Thanks https://bbs.archlinux.org/viewtopic.php?id=94780
libncurses should change error string from 'unknown' to '$TERM is unset'!
|
|
|
|
|
|
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.
|
|
Try to make menu-select slightly more robust to being run a second time
after a failed run.
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
committing everything without discretion
rebase -i from me
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
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.
|
|
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).
|
|
|
|
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
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).
|
|
|
|
|
|
|