diff options
| author | Marc Vertes <mvertes@free.fr> | 2020-06-01 22:20:51 +0200 |
|---|---|---|
| committer | Marc Vertes <mvertes@free.fr> | 2020-06-01 22:20:51 +0200 |
| commit | 39bcc0e9bf2b655849024ba28676145e794f538d (patch) | |
| tree | f9a7accea460583610ace4d452f7e73e10d05cfb /bin | |
| parent | b87761ba92a15794d3cf8a65cf7feddfc088cd6f (diff) | |
update
Diffstat (limited to 'bin')
| -rwxr-xr-x | bin/yoda | 34 |
1 files changed, 24 insertions, 10 deletions
@@ -35,6 +35,16 @@ skip() { return 1 } +# return 1 if any of the required commands is missing +prereq() { + ok='ok' + for cmd in cryptsetup dd fdisk mkfs.fat mkfs.ext4 mount pacstrap genfstab arch-chroot + do + command -v "$cmd" >/dev/null || { ok=''; echo "$cmd not found"; } + done + test "$ok" +} + # Step 0: Prepare by wiping all data and randomize (very long). step0() { cryptsetup open --type plain -d /dev/urandom "$dev" to_be_wiped @@ -64,13 +74,13 @@ EOT # Step 2: Encrypt root partition. step2() { rootpart="/dev/mapper/$par" - cryptsetup -y -v luksFormat ${dev}2 - cryptsetup open ${dev}2 $par + cryptsetup -y -v luksFormat ${dev}${ppref}2 + cryptsetup open ${dev}${ppref}2 $par } # Step 3: Format partitions. step3() { - mkfs.fat -F32 "${dev}1" + mkfs.fat -F32 "${dev}${ppref}1" yes | mkfs.ext4 "$rootpart" } @@ -78,7 +88,7 @@ step3() { step4() { mount "$rootpart" /mnt mkdir /mnt/boot - mount ${dev}1 /mnt/boot + mount ${dev}${ppref}1 /mnt/boot trap cleanup EXIT } @@ -161,8 +171,8 @@ EOT DNSSEC=no EOT - packages="linux linux-firmware intel-ucode amd-ucode sudo vi wireless_tools -wpa_supplicant openssh arch-install-scripts" + packages="linux linux-firmware intel-ucode amd-ucode sof-firmware \ + dosfstools sudo vi wireless_tools wpa_supplicant openssh arch-install-scripts" arch-chroot /mnt << EOT locale-gen @@ -181,6 +191,7 @@ EOT echo "$user ALL=(ALL) ALL" > "/mnt/etc/sudoers.d/01_$user" fi + mkdir -p /mnt/etc/wpa_supplicant cat /etc/wpa_supplicant/wpa_supplicant*.conf > /mnt/etc/wpa_supplicant/wpa_supplicant-wlan0.conf cat > /mnt/boot/loader/loader.conf << \EOT @@ -190,10 +201,10 @@ console-mode max EOT if skip 2; then - uid=$(blkid -p -s UUID -o value "${dev}2") + uid=$(blkid -p -s UUID -o value "${dev}${ppref}2") rdopt="root=/dev/disk/by-uuid/$uid" else - uid=$(blkid -p -s UUID -o value "${dev}2") + uid=$(blkid -p -s UUID -o value "${dev}${ppref}2") rdopt="rd.luks.name=$uid=root root=/dev/mapper/root" fi cat > /mnt/boot/loader/entries/arch.conf << EOT @@ -202,7 +213,7 @@ linux /vmlinuz-linux initrd /intel-ucode.img initrd /amd-ucode.img initrd /initramfs-linux.img -option $rdopt net.ifnames=0 rw +options $rdopt net.ifnames=0 rw EOT } @@ -229,9 +240,12 @@ shift $((OPTIND - 1)) [ "$(id -u)" = 0 ] || die "not root" [ "$1" ] && dev=$1 || die 'no device' par=${dev##*/}root -rootpart="${dev}2" +case $dev in (*nvme*) ppref='p';; esac +rootpart="${dev}${ppref}2" myself=$(type -p $0) +prereq || exit 1 + echo -n "Device $dev will be completely erased. Continue ? Y/N " read -r resp && [ "$resp" = 'Y' ] || exit |
