forked from AsahiLinux/asahi-scripts
-
Notifications
You must be signed in to change notification settings - Fork 0
/
first-boot
executable file
·47 lines (37 loc) · 1.29 KB
/
first-boot
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/bin/sh
# SPDX-License-Identifier: MIT
set -e
root_dev=$(findmnt -n -o SOURCE /)
efi_dev=$(findmnt -n -o SOURCE /boot/efi)
if [ -e "$root_dev" ]; then
echo "Randomizing root filesystem UUID..."
tune2fs -U random "$root_dev"
root_uuid="$(blkid -c /dev/null "$root_dev" -o export | grep '^UUID=')"
echo "Root filesystem: $root_uuid"
echo
fi
if [ -e "$efi_dev" ] && \
blkid "$efi_dev" | grep -q 'TYPE="vfat"'; then
echo "Randomizing EFI system partition UUID..."
# Ugly... why isn't there a command to do this?
ssize="$(blockdev --getss "$efi_dev")"
dd bs=1 seek=67 count=4 conv=notrunc if=/dev/urandom of="$efi_dev"
dd bs=1 skip=67 seek=$((67+6*$ssize)) count=4 conv=notrunc if="$efi_dev" of="$efi_dev"
efi_uuid="$(blkid -c /dev/null "$efi_dev" -o export | grep '^UUID=')"
echo "EFI partition: $efi_uuid"
echo
fi
if [ ! -z "$root_uuid" ] && [ ! -z "$efi_uuid" ]; then
echo "Regenerating /etc/fstab..."
tee /etc/fstab <<EOF
$root_uuid / ext4 rw,relatime,x-systemd.growfs 0 1
$efi_uuid /boot/efi vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro 0 2
EOF
echo
fi
update-grub
echo
echo "Initializing Pacman keyring..."
pacman-key --init
pacman-key --populate archlinuxarm asahilinux
echo