Addcryptsetup to initramfs, add debug flag
This commit is contained in:
parent
69c91abbd2
commit
01ef15d1a0
@ -1,8 +1,13 @@
|
||||
#!/bin/busybox sh
|
||||
|
||||
|
||||
echo In PrawnOS Init
|
||||
|
||||
#add this to start shell at desired point
|
||||
rescue_shell() {
|
||||
[ $1 != "debug" ] && echo "Something went wrong. Dropping to a shell."
|
||||
exec setsid /bin/sh -c 'exec /bin/sh </dev/tty1 >/dev/tty1 2>&1'
|
||||
}
|
||||
|
||||
cmdline() {
|
||||
local value
|
||||
value=" $(cat /proc/cmdline) "
|
||||
@ -36,21 +41,32 @@ ROOT_DEV="${BLKID%1:*}"
|
||||
|
||||
echo ${ROOT_DEV}
|
||||
|
||||
#uncomment for debugging
|
||||
# exec setsid /bin/sh -c 'exec /bin/sh </dev/tty1 >/dev/tty1 2>&1'
|
||||
|
||||
# we use this to change what cmdline options get passed into
|
||||
# the next boot stage, aka to enable root encryption
|
||||
CMDLINE='cat /proc/cmdline'
|
||||
|
||||
# mount new root
|
||||
[ -d /newroot ] || mkdir -p /newroot
|
||||
mount ${ROOT_DEV}3 /newroot
|
||||
[ -d /boot ] || mkdir -p /boot
|
||||
mount ${ROOT_DEV}2 /boot
|
||||
|
||||
#Debugging can be facilitated by creating /boot/debug
|
||||
[ -f /boot/debug ] && rescue_shell debug
|
||||
|
||||
if [ -f /boot/root_encryption ]
|
||||
then
|
||||
#decrypt and mount the root filesystem
|
||||
cryptsetup --tries 5 luksOpen /dev/{ROOT_DEV}3 luksroot || rescue_shell
|
||||
mount /dev/mapper/luksroot /newroot
|
||||
#TODO: UPDATE THE CMDLINE??
|
||||
else
|
||||
# mount the unencrypted root filesystem
|
||||
[ -d /newroot ] || mkdir -p /newroot
|
||||
mount ${ROOT_DEV}3 /newroot
|
||||
fi
|
||||
|
||||
umount /sys
|
||||
umount /proc
|
||||
|
||||
# exec setsid /bin/sh -c 'exec /bin/sh </dev/tty1 >/dev/tty1 2>&1'
|
||||
|
||||
|
||||
#swith to the new rootfs
|
||||
exec switch_root /newroot /sbin/init ${CMDLINE}
|
@ -163,41 +163,6 @@ chroot $outmnt locale-gen
|
||||
chroot $outmnt apt update
|
||||
chroot $outmnt apt install -y initscripts udev kmod net-tools inetutils-ping traceroute iproute2 isc-dhcp-client wpasupplicant iw alsa-utils cgpt vim-tiny less psmisc netcat-openbsd ca-certificates bzip2 xz-utils ifupdown nano apt-utils git kpartx gdisk parted rsync busybox-static cryptsetup
|
||||
|
||||
#make the initramfs image that gets copied to partiton 2
|
||||
#this is not yet fully funtional, needs the kernel parts which are
|
||||
#added in "injectKernelIntoFS.sh"
|
||||
|
||||
#make a skeleton filesystem
|
||||
initramfs_src=$outmnt/InstallResources/initramfs_src
|
||||
mkdir -p $initramfs_src
|
||||
mkdir $initramfs_src/bin
|
||||
mkdir $initramfs_src/dev
|
||||
mkdir $initramfs_src/etc
|
||||
mkdir $initramfs_src/newroot
|
||||
mkdir $initramfs_src/proc
|
||||
mkdir $initramfs_src/sys
|
||||
mkdir $initramfs_src/sbin
|
||||
mkdir $initramfs_src/run
|
||||
mkdir $initramfs_src/lib
|
||||
mkdir $initramfs_src/lib/arm-linux-gnueabihf
|
||||
|
||||
#install the few tools we need, and the supporting libs
|
||||
cp $outmnt/bin/busybox $outmnt/sbin/cryptsetup $initramfs_src/bin/
|
||||
cp $outmnt/lib/arm-linux-gnueabihf/libblkid.so.1 $initramfs_src/lib/arm-linux-gnueabihf/
|
||||
cp $outmnt/lib/arm-linux-gnueabihf/libuuid.so.1 $initramfs_src/lib/arm-linux-gnueabihf/
|
||||
cp $outmnt/lib/arm-linux-gnueabihf/libc.so.6 $initramfs_src/lib/arm-linux-gnueabihf/
|
||||
|
||||
cp $outmnt/lib/ld-linux-armhf.so.3 $initramfs_src/lib/
|
||||
cp $outmnt/sbin/blkid $initramfs_src/bin/
|
||||
|
||||
#add the init script
|
||||
cp $build_resources/initramfs-init $initramfs_src/init
|
||||
chmod +x $initramfs_src/init
|
||||
|
||||
#compress and install
|
||||
find $initramfs_src -print0 | cpio --null --create --verbose --format=newc | gzip --best > $outmnt/boot/PrawnOS-initramfs.cpio.gz
|
||||
|
||||
|
||||
#add the live-boot fstab
|
||||
cp -f $build_resources/external_fstab $outmnt/etc/fstab
|
||||
chmod 644 /etc/fstab
|
||||
|
@ -64,6 +64,7 @@ mkdir $initramfs_src/bin
|
||||
mkdir $initramfs_src/dev
|
||||
mkdir $initramfs_src/etc
|
||||
mkdir $initramfs_src/newroot
|
||||
mkdir $initramfs_src/boot
|
||||
mkdir $initramfs_src/proc
|
||||
mkdir $initramfs_src/sys
|
||||
mkdir $initramfs_src/sbin
|
||||
@ -80,6 +81,27 @@ cp $outmnt/lib/arm-linux-gnueabihf/libc.so.6 $initramfs_src/lib/arm-linux-gnueab
|
||||
cp $outmnt/lib/ld-linux-armhf.so.3 $initramfs_src/lib/
|
||||
cp $outmnt/sbin/blkid $initramfs_src/bin/
|
||||
|
||||
cp $outmnt/usr/sbin/cryptsetup $initramfs_src/bin/
|
||||
|
||||
cp $outmnt/lib/arm-linux-gnueabihf/libm.so.6 $initramfs_src/lib/arm-linux-gnueabihf/libm.so.6
|
||||
cp $outmnt/lib/arm-linux-gnueabihf/libcryptsetup.so.12 $initramfs_src/lib/arm-linux-gnueabihf/libcryptsetup.so.12
|
||||
cp $outmnt/lib/arm-linux-gnueabihf/libpopt.so.0 $initramfs_src/lib/arm-linux-gnueabihf/libpopt.so.0
|
||||
cp $outmnt/lib/arm-linux-gnueabihf/libuuid.so.1 $initramfs_src/lib/arm-linux-gnueabihf/libuuid.so.1
|
||||
cp $outmnt/lib/arm-linux-gnueabihf/libblkid.so.1 $initramfs_src/lib/arm-linux-gnueabihf/libblkid.so.1
|
||||
cp $outmnt/lib/arm-linux-gnueabihf/libc.so.6 $initramfs_src/lib/arm-linux-gnueabihf/libc.so.6
|
||||
cp $outmnt/lib/ld-linux-armhf.so.3 $initramfs_src/lib/ld-linux-armhf.so.3
|
||||
cp $outmnt/lib/arm-linux-gnueabihf/libdevmapper.so.1.02.1 $initramfs_src/lib/arm-linux-gnueabihf/libdevmapper.so.1.02.1
|
||||
cp $outmnt/lib/arm-linux-gnueabihf/libssl.so.1.1 $initramfs_src/lib/arm-linux-gnueabihf/libssl.so.1.1
|
||||
cp $outmnt/lib/arm-linux-gnueabihf/libcrypto.so.1.1 $initramfs_src/lib/arm-linux-gnueabihf/libcrypto.so.1.1
|
||||
cp $outmnt/lib/arm-linux-gnueabihf/libargon2.so.1 $initramfs_src/lib/arm-linux-gnueabihf/libargon2.so.1
|
||||
cp $outmnt/lib/arm-linux-gnueabihf/librt.so.1 $initramfs_src/lib/arm-linux-gnueabihf/librt.so.1
|
||||
cp $outmnt/lib/arm-linux-gnueabihf/libdl.so.2 $initramfs_src/lib/arm-linux-gnueabihf/libdl.so.2
|
||||
cp $outmnt/lib/arm-linux-gnueabihf/libjson-c.so.3 $initramfs_src/lib/arm-linux-gnueabihf/libjson-c.so.3
|
||||
cp $outmnt/lib/arm-linux-gnueabihf/libselinux.so.1 $initramfs_src/lib/arm-linux-gnueabihf/libselinux.so.1
|
||||
cp $outmnt/lib/arm-linux-gnueabihf/libudev.so.1 $initramfs_src/lib/arm-linux-gnueabihf/libudev.so.1
|
||||
cp $outmnt/lib/arm-linux-gnueabihf/libpthread.so.0 $initramfs_src/lib/arm-linux-gnueabihf/libpthread.so.0
|
||||
cp $outmnt/lib/arm-linux-gnueabihf/libpcre.so.3 $initramfs_src/lib/arm-linux-gnueabihf/libpcre.so.3
|
||||
|
||||
#add the init script
|
||||
cp $build_resources/initramfs-init $initramfs_src/init
|
||||
chmod +x $initramfs_src/init
|
||||
|
Loading…
Reference in New Issue
Block a user