summaryrefslogtreecommitdiffstats
path: root/rescue.sh
diff options
context:
space:
mode:
Diffstat (limited to 'rescue.sh')
-rw-r--r--rescue.sh24
1 files changed, 24 insertions, 0 deletions
diff --git a/rescue.sh b/rescue.sh
new file mode 100644
index 0000000..0ec9bc4
--- /dev/null
+++ b/rescue.sh
@@ -0,0 +1,24 @@
+#!/bin/sh
+set -Ceu
+
+cryptsetup luksOpen "$1" cr_root
+mount /dev/mapper/cr_root /mnt
+mount /dev/mapper/cr_root /mnt/.snapshots -o subvol=@/.snapshots
+mount /dev/mapper/cr_root /mnt/home -o subvol=@/home
+mount /dev/mapper/cr_root /mnt/opt -o subvol=@/opt
+mount /dev/mapper/cr_root /mnt/root -o subvol=@/root
+mount /dev/mapper/cr_root /mnt/srv -o subvol=@/srv
+mount /dev/mapper/cr_root /mnt/tmp -o subvol=@/tmp
+mount /dev/mapper/cr_root /mnt/usr/local -o subvol=@/usr/local
+mount /dev/mapper/cr_root /mnt/var -o subvol=@/var
+
+mount "$2" /mnt/boot
+mount --types proc /proc /mnt/proc
+mount --rbind /sys /mnt/sys
+mount --make-rslave /mnt/sys
+mount --rbind /dev /mnt/dev
+mount --make-rslave /mnt/dev
+mount --bind /run /mnt/run
+mount --make-slave /mnt/run
+
+chroot /mnt