Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- set -e
- set -v
- set -o pipefail
- set -o errtrace
- set -o nounset
- set -o errexit
- KEYMAP='us'
- LANG='en_US'
- TIMEZONE='Canada/Eastern'
- FONT=Lat2-Terminus16
- BLOCKDEVICEDISK=/dev/sda
- BLOCKDEVICEBOOT=/dev/sda1
- BLOCKDEVICECRYPT=/dev/sda2
- CRYPTDEVICE=archcrypt
- VOLUMEGROUP=vg
- LOGICALROOT=root
- LOGICALROOTSIZE=40G
- LOGICALSWAP=swap
- LOGICALSWAPSIZE=4G
- LOGICALHOME=home
- MNT=/mnt
- #PACKAGES='dialog wpa_supplicant openssh mesa xf86-video-amdgpu libva-mesa-driver vulkan-radeon intel-ucode xorg xterm xorg-xrandr'
- PACKAGES='dialog wpa_supplicant openssh intel-ucode'
- HOSTNAME=audrey-arch
- DEFAULTUSER=audrey
- (
- echo o
- echo Y
- echo n
- echo 1
- echo
- echo +512M
- echo ef00
- echo n
- echo 2
- echo
- echo
- echo 8e00
- echo w
- echo Y
- ) | sudo gdisk $BLOCKDEVICEDISK > /dev/null
- mkfs.fat -F 32 $BLOCKDEVICEBOOT
- cryptsetup -v -y -c aes-xts-plain64 -s 512 luksFormat $BLOCKDEVICECRYPT
- cryptsetup luksOpen /dev/sda2 $CRYPTDEVICE
- pvcreate /dev/mapper/$CRYPTDEVICE -f
- vgcreate $VOLUMEGROUP /dev/mapper/$CRYPTDEVICE -f
- lvcreate -L$LOGICALSWAPSIZE $VOLUMEGROUP -n $LOGICALSWAP
- lvcreate -L$LOGICALROOTSIZE $VOLUMEGROUP -n $LOGICALROOT
- lvcreate -l 100%FREE $VOLUMEGROUP -n $LOGICALHOME -q -y
- mkfs.ext4 /dev/mapper/$VOLUMEGROUP-$LOGICALROOT
- mkfs.ext4 /dev/mapper/$VOLUMEGROUP-$LOGICALHOME
- mkswap /dev/mapper/$VOLUMEGROUP-$LOGICALSWAP
- swapon /dev/mapper/$VOLUMEGROUP-$LOGICALSWAP
- mount /dev/mapper/$VOLUMEGROUP-$LOGICALROOT $MNT
- mkdir -p $MNT/{boot,home}
- mount $BLOCKDEVICEBOOT $MNT/boot
- mount /dev/mapper/$VOLUMEGROUP-$LOGICALHOME $MNT/home
- pacstrap $MNT base base-devel $PACKAGES
- genfstab -U $MNT >> /mnt/etc/fstab
- arch-chroot $MNT ln -sf /usr/share/zoneinfo/$TIMEZONE /etc/localtime
- arch-chroot $MNT hwclock --systohc
- echo $LANG.UTF-8 UTF-8 > $MNT/etc/locale.gen
- arch-chroot $MNT locale-gen
- echo LANG=$LANG.UTF-8 >> $MNT/etc/locale.conf
- echo KEYMAP=$KEYMAP > $MNT/etc/vconsole.conf
- echo FONT=$FONT >> $MNT/etc/vconsole.conf
- echo $HOSTNAME >> $MNT/etc/hostname
- echo 127.0.0.1 $HOSTNAME.localdomain $HOSTNAME >> $MNT/etc/hosts
- arch-chroot $MNT useradd -m -G wheel -s /bin/bash $DEFAULTUSER
- echo 'root ALL=(ALL) ALL' > $MNT/etc/sudoers
- echo '%wheel ALL=(ALL) ALL' >> $MNT/etc/sudoers
- MKINITCPIOCONF=$MNT/etc/mkinitcpio.conf
- echo 'MODULES=()' > $MKINITCPIOCONF
- echo 'BINARIES=()' >> $MKINITCPIOCONF
- echo 'FILES=()' >> $MKINITCPIOCONF
- echo 'HOOKS=(base udev autodetect modconf block keymap keyboard encrypt lvm2 filesystems fsck)' >> $MKINITCPIOCONF
- echo 'COMPRESSION=lzma' >> $MKINITCPIOCONF
- arch-chroot $MNT mkinitcpio -p linux
- LOADERCONF=$MNT/boot/loader/loader.conf
- arch-chroot $MNT bootctl --path=/boot install
- echo 'default arch' > $LOADERCONF
- echo 'timeout 3' >> $LOADERCONF
- echo 'editor 1' >> $LOADERCONF
- BOOTENTRY=$MNT/boot/loader/entries/arch.conf
- echo 'title Arch Linux' > $BOOTENTRY
- echo 'linux /vmlinuz-linux' >> $BOOTENTRY
- echo 'initrd /intel-ucode.img' >> $BOOTENTRY
- echo 'initrd /initramfs-linux.img' >> $BOOTENTRY
- echo "options cryptdevice=UUID=$(blkid -s UUID -o value $BLOCKDEVICECRYPT):$CRYPTDEVICE root=/dev/mapper/$VOLUMEGROUP-$LOGICALROOT rw" >> $BOOTENTRY
- arch-chroot $MNT systemctl enable dhcpcd.service
- arch-chroot $MNT systemctl enable sshd.service
- echo 'Installation almost complete. Setting passwords'
- echo 'Choose a root password:'
- arch-chroot $MNT passwd
- nano /etc/pacman.conf
- echo Choose a password for $DEFAULTUSER:
- arch-chroot $MNT passwd $DEFAULTUSER
- #umount -R $MNT
- #clear
- echo 'Installation finished, please reboot now.'
Add Comment
Please, Sign In to add comment