initial luks support
This commit is contained in:
52
generate
52
generate
@@ -28,7 +28,7 @@ fi
|
||||
tmpdir="$(mktemp -d /tmp/initramfs.XXXXXXXX)"
|
||||
kernel="$(uname -r)"
|
||||
moddir="/lib/modules"
|
||||
binaries="./busybox udevd udevadm mount modprobe umount $binaries"
|
||||
binaries="./busybox findfs blkid udevd udevadm mount modprobe umount $binaries"
|
||||
|
||||
# structure
|
||||
for d in dev var run etc usr/lib usr/bin mnt/root proc root sys; do
|
||||
@@ -49,6 +49,7 @@ done
|
||||
# TODO parse fstab | crypttab
|
||||
#while [ "$use_fstab" -eq 1 ] && read fs dir type opts; do thing; done < /etc/fstab
|
||||
|
||||
# TODO implement busybox mdev/mdevd
|
||||
# install mdev
|
||||
#mkdir "$tmpdir/usr/lib/mdev"
|
||||
#cp ./mdev/mdev.conf ./mdev/passwd ./mdev/group "$tmpdir/etc"
|
||||
@@ -79,21 +80,39 @@ find "/usr/lib/udev" -type f | grep -v "rc_keymaps\|hwdb.d" | cpio -pd "$tmpdir"
|
||||
#nobody:x:99:99::/dev/null:/bin/false
|
||||
#EOF
|
||||
|
||||
# TODO implement use_lvmconf
|
||||
# handle lvm
|
||||
if [ "$use_lvm" = 1 ] && [ -x "$(command -v lvm)" ]; then
|
||||
binaries="lvm dmsetup $binaries"
|
||||
mkdir "$tmpdir/etc/lvm"
|
||||
|
||||
# avoid lvmetad warning message
|
||||
echo "use_lvmetad = 0" >> "$tmpdir/etc/lvm/lvm.conf"
|
||||
|
||||
if [ "$lvm_discard" = 1 ]; then
|
||||
echo "issue_discards = 1" >> "$tmpdir/etc/lvm/lvm.conf"
|
||||
fi
|
||||
# TODO implement use_lvmconf
|
||||
fi
|
||||
|
||||
# TODO handle luks
|
||||
#if [ "$use_luks" = 1 ] && [ -x "$(command -v cryptsetup)" ]; then
|
||||
# binaries="cryptsetup $binaries"
|
||||
#fi
|
||||
# handle luks
|
||||
if [ "$use_luks" = 1 ] && [ -x "$(command -v cryptsetup)" ]; then
|
||||
binaries="cryptsetup dmsetup $binaries"
|
||||
|
||||
# avoid locking directory missing warning message
|
||||
mkdir "$tmpdir/run/cryptsetup"
|
||||
|
||||
# TODO get rid of this workaround
|
||||
# workaround for luks2
|
||||
cp "$(readlink -f libgcc_s.so.1)" "$tmpdir/usr/lib"
|
||||
cp -a /usr/lib/libgcc_s.so.1 "$tmpdir/usr/lib"
|
||||
|
||||
if [ "$luks_discard" = 1 ]; then
|
||||
luks_args="--allow-discards $luks_args"
|
||||
fi
|
||||
|
||||
# TODO detached header
|
||||
# TODO keyfile
|
||||
fi
|
||||
|
||||
# TODO rewrite drivers installing | handle $drivers config var
|
||||
# install drivers
|
||||
@@ -162,17 +181,20 @@ chmod +x "$tmpdir/init"
|
||||
# initialize config
|
||||
cat <<EOF > "$tmpdir/config"
|
||||
root="$root"
|
||||
rootfstype="$rootfstype"
|
||||
rootflags="$rootflags"
|
||||
drivers="$drivers"
|
||||
#use_lvm="$use_lvm"
|
||||
#lvm_discard="$lvm_discard"
|
||||
#use_luks="$use_luks"
|
||||
#luks_header="$luks_header"
|
||||
#luks_keyfile="$luks_keyfile"
|
||||
#luks_discard="$luks_discard"
|
||||
root_type="$root_type"
|
||||
root_args="$root_args"
|
||||
#drivers="$drivers"
|
||||
use_lvm="$use_lvm"
|
||||
lvm_discard="$lvm_discard"
|
||||
use_luks="$use_luks"
|
||||
luks_root="$luks_root"
|
||||
luks_header="$luks_header"
|
||||
luks_keyfile="$luks_keyfile"
|
||||
luks_discard="$luks_discard"
|
||||
luks_args="$luks_args"
|
||||
EOF
|
||||
|
||||
# TODO add another compession tools
|
||||
# packing
|
||||
if ! ( cd "$tmpdir" && find . | cpio --create --verbose --format=newc | gzip --best ) > "./initramfs-$kernel.img.gz" 2>/dev/null; then
|
||||
echo "failed"
|
||||
|
Reference in New Issue
Block a user