no extualy combine with in-root
This commit is contained in:
parent
0ea368b1fc
commit
54d9c8b1ab
94
elfLaptop.sh
94
elfLaptop.sh
@ -2,6 +2,7 @@
|
|||||||
HOSTNAME="ELFLaptop"
|
HOSTNAME="ELFLaptop"
|
||||||
UEFI_DISK="/dev/sdb"
|
UEFI_DISK="/dev/sdb"
|
||||||
DISK="/dev/sda"
|
DISK="/dev/sda"
|
||||||
|
USERNAME="freenen"
|
||||||
|
|
||||||
UEFI_PARTITION="${UEFI_DISK}1"
|
UEFI_PARTITION="${UEFI_DISK}1"
|
||||||
SWAP_PARTITION="${DISK}3"
|
SWAP_PARTITION="${DISK}3"
|
||||||
@ -16,7 +17,21 @@ function run(){
|
|||||||
|| {
|
|| {
|
||||||
echo -e "\e[1A\e[K[\e[31mFAIL\e[0m] $1"
|
echo -e "\e[1A\e[K[\e[31mFAIL\e[0m] $1"
|
||||||
bash -c "$3"
|
bash -c "$3"
|
||||||
exit
|
exit 10
|
||||||
|
}
|
||||||
|
echo >>install.log
|
||||||
|
}
|
||||||
|
|
||||||
|
function run-chroot(){
|
||||||
|
echo "[ ] $1"
|
||||||
|
echo "# $1" >>install.log
|
||||||
|
echo "> chroot /mnt $2" >>install.log
|
||||||
|
arch-chroot /mnt bash -c "$2" &>>install.log \
|
||||||
|
&& echo -e "\e[1A\e[K[ \e[32mOK\e[0m ] $1" \
|
||||||
|
|| {
|
||||||
|
echo -e "\e[1A\e[K[\e[31mFAIL\e[0m] $1"
|
||||||
|
bash -c "$3"
|
||||||
|
exit 20
|
||||||
}
|
}
|
||||||
echo >>install.log
|
echo >>install.log
|
||||||
}
|
}
|
||||||
@ -32,9 +47,22 @@ echo
|
|||||||
|
|
||||||
if [ "$PASS" != "$PASSRE" ]; then
|
if [ "$PASS" != "$PASSRE" ]; then
|
||||||
echo "password do not match"
|
echo "password do not match"
|
||||||
exit
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
echo -n "password for freenen: "
|
||||||
|
read -s PASS
|
||||||
|
echo
|
||||||
|
echo -n "retype password: "
|
||||||
|
read -s PASSRE
|
||||||
|
echo
|
||||||
|
|
||||||
|
if [ "$PASS" != "$PASSRE" ]; then
|
||||||
|
echo "password do not match"
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
echo
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo === setup localisation
|
echo === setup localisation
|
||||||
echo
|
echo
|
||||||
@ -74,10 +102,68 @@ run "generate fstab" "genfstab -U /mnt >>/mnt/etc/fstab"
|
|||||||
run "copy in-root script" "cp in-root.sh /mnt/root"
|
run "copy in-root script" "cp in-root.sh /mnt/root"
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo === chroot config
|
echo === set locals
|
||||||
echo
|
echo
|
||||||
|
|
||||||
arch-chroot /mnt bash /root/in-root.sh "$HOSTNAME" "$DISK" || exit
|
run-chroot "set timezone" "ln -sf /usr/share/zoneinfo/Europe/Amsterdam /etc/localtime"
|
||||||
|
run-chroot "set hwclock to UTC" "hwclock --systohc"
|
||||||
|
run-chroot "generate locals" "locale-gen"
|
||||||
|
run-chroot "config locals" "echo \"LANG=en_GB.UTF-8\" >/etc/locale.conf"
|
||||||
|
run-chroot "set hostname" "echo \"$HOSTNAME\" >/etc/hostname"
|
||||||
|
run-chroot "create hosts file" "cat >/etc/hosts <<EOF
|
||||||
|
127.0.0.1 localhost
|
||||||
|
::1 localhost
|
||||||
|
127.0.1.1 $HOSTNAME
|
||||||
|
EOF
|
||||||
|
"
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo === install bootloader
|
||||||
|
echo
|
||||||
|
|
||||||
|
run-chroot "config initramfs" "sed --in-place -e 's/HOOKS=(.*)/HOOKS=(base udev autodetect microcode modconf kms keyboard block encrypt filesystems fsck)/' /etc/mkinitcpio.conf"
|
||||||
|
run-chroot "generate initramfs" "mkinitcpio -P"
|
||||||
|
|
||||||
|
DISKUUID=$(blkid --output export ${DISK}3 | grep '^UUID' | sed 's/UUID=//')
|
||||||
|
run-chroot "install systemd-boot" "bootctl install"
|
||||||
|
run-chroot "create boot config for main" "cat >/boot/loader/entries/arch.conf <<EOF
|
||||||
|
title Elf OS
|
||||||
|
linux /vmlinuz-linux
|
||||||
|
initrd /initramfs-linux.img
|
||||||
|
options cryptdevice=UUID=$DISKUUID:cryptroot:allow-discards root=/dev/mapper/cryptroot rootflags=subvol=@ rd.luks.options=discard rw
|
||||||
|
EOF
|
||||||
|
"
|
||||||
|
run-chroot "create boot config for fallback" "cat >/boot/loader/entries/arch-fallback.conf <<EOF
|
||||||
|
title Elf OS fallback
|
||||||
|
linux /vmlinuz-linux
|
||||||
|
initrd /initramfs-linux-fallback.img
|
||||||
|
options cryptdevice=UUID=$DISKUUID:cryptroot:allow-discards root=/dev/mapper/cryptroot rootflags=subvol=@ rd.luks.options=discard rw
|
||||||
|
EOF
|
||||||
|
"
|
||||||
|
run-chroot "create main boot config" "cat >/boot/loader/loader.conf <<EOF
|
||||||
|
default arch.conf
|
||||||
|
timeout 4
|
||||||
|
console-mode max
|
||||||
|
editor no
|
||||||
|
EOF
|
||||||
|
"
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo === setup user
|
||||||
|
echo
|
||||||
|
|
||||||
|
run-chroot "add .ssh dir to skel" "mkdir -p /etc/skel/.ssh"
|
||||||
|
run-chroot "create admin group" "groupadd admin"
|
||||||
|
run-chroot "update polkit" "sed --in-place -e 's/wheel/admin/g' /usr/share/polkit-1/rules.d/50-default.rules"
|
||||||
|
run-chroot "create user" "useradd --home-dir /home/${USERNAME} --create-home --skel /etc/skel ${USERNAME} --groups ${USERNAME},admin"
|
||||||
|
run-chroot "set password for user" "echo \"${USERNAME}:$PASS\" | chpasswd"
|
||||||
|
run-chroot "add user to sudoers" "echo \"%admin ALL=(ALL:ALL) ALL\" >>/etc/sudoers"
|
||||||
|
run-chroot "touch authoized keys" "touch /home/${USERNAME}/.ssh/authorized_keys"
|
||||||
|
run-chroot "add sshkeys for new user" "curl -o /home/${USERNAME}/.ssh/authorized_keys https://github.com/FReenen.keys"
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo === umount and reboot
|
||||||
|
echo
|
||||||
|
|
||||||
run "umount drives" "umount -R /mnt"
|
run "umount drives" "umount -R /mnt"
|
||||||
run "close cryptroot" "cryptsetup close cryptroot"
|
run "close cryptroot" "cryptsetup close cryptroot"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user