Guest User

Untitled

a guest
Jan 2nd, 2018
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.51 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. set -e
  4. set -v
  5. set -o pipefail
  6. set -o errtrace
  7. set -o nounset
  8. set -o errexit
  9.  
  10. KEYMAP='us'
  11. LANG='en_US'
  12. TIMEZONE='Canada/Eastern'
  13. FONT=Lat2-Terminus16
  14.  
  15. BLOCKDEVICEDISK=/dev/sda
  16. BLOCKDEVICEBOOT=/dev/sda1
  17. BLOCKDEVICECRYPT=/dev/sda2
  18.  
  19. CRYPTDEVICE=archcrypt
  20.  
  21. VOLUMEGROUP=vg
  22. LOGICALROOT=root
  23. LOGICALROOTSIZE=40G
  24. LOGICALSWAP=swap
  25. LOGICALSWAPSIZE=4G
  26. LOGICALHOME=home
  27.  
  28. MNT=/mnt
  29.  
  30. #PACKAGES='dialog wpa_supplicant openssh mesa xf86-video-amdgpu libva-mesa-driver vulkan-radeon intel-ucode xorg xterm xorg-xrandr'
  31. PACKAGES='dialog wpa_supplicant openssh intel-ucode'
  32.  
  33. HOSTNAME=audrey-arch
  34. DEFAULTUSER=audrey
  35.  
  36. (
  37.     echo o
  38.     echo Y
  39.     echo n
  40.     echo 1
  41.     echo
  42.     echo +512M
  43.     echo ef00
  44.     echo n
  45.     echo 2
  46.     echo
  47.     echo
  48.     echo 8e00
  49.     echo w
  50.     echo Y
  51. ) | sudo gdisk $BLOCKDEVICEDISK > /dev/null
  52.  
  53. mkfs.fat -F 32 $BLOCKDEVICEBOOT
  54.  
  55. cryptsetup -v -y -c aes-xts-plain64 -s 512 luksFormat $BLOCKDEVICECRYPT
  56. cryptsetup luksOpen /dev/sda2 $CRYPTDEVICE
  57.  
  58. pvcreate /dev/mapper/$CRYPTDEVICE -f
  59. vgcreate $VOLUMEGROUP /dev/mapper/$CRYPTDEVICE -f
  60. lvcreate -L$LOGICALSWAPSIZE $VOLUMEGROUP -n $LOGICALSWAP
  61. lvcreate -L$LOGICALROOTSIZE $VOLUMEGROUP -n $LOGICALROOT
  62. lvcreate -l 100%FREE $VOLUMEGROUP -n $LOGICALHOME -q -y
  63.  
  64. mkfs.ext4 /dev/mapper/$VOLUMEGROUP-$LOGICALROOT
  65. mkfs.ext4 /dev/mapper/$VOLUMEGROUP-$LOGICALHOME
  66. mkswap /dev/mapper/$VOLUMEGROUP-$LOGICALSWAP
  67. swapon /dev/mapper/$VOLUMEGROUP-$LOGICALSWAP
  68.  
  69. mount /dev/mapper/$VOLUMEGROUP-$LOGICALROOT $MNT
  70. mkdir -p $MNT/{boot,home}
  71. mount $BLOCKDEVICEBOOT $MNT/boot
  72. mount /dev/mapper/$VOLUMEGROUP-$LOGICALHOME $MNT/home
  73.  
  74. pacstrap $MNT base base-devel $PACKAGES
  75. genfstab -U $MNT >> /mnt/etc/fstab
  76.  
  77. arch-chroot $MNT ln -sf /usr/share/zoneinfo/$TIMEZONE /etc/localtime
  78. arch-chroot $MNT hwclock --systohc
  79.  
  80. echo $LANG.UTF-8 UTF-8 > $MNT/etc/locale.gen
  81. arch-chroot $MNT locale-gen
  82.  
  83. echo LANG=$LANG.UTF-8 >> $MNT/etc/locale.conf
  84. echo KEYMAP=$KEYMAP > $MNT/etc/vconsole.conf
  85. echo FONT=$FONT >> $MNT/etc/vconsole.conf
  86.  
  87. echo $HOSTNAME >> $MNT/etc/hostname
  88. echo 127.0.0.1  $HOSTNAME.localdomain   $HOSTNAME >> $MNT/etc/hosts
  89.  
  90. arch-chroot $MNT useradd -m -G wheel -s /bin/bash $DEFAULTUSER
  91. echo 'root ALL=(ALL) ALL' > $MNT/etc/sudoers
  92. echo '%wheel ALL=(ALL) ALL' >> $MNT/etc/sudoers
  93.  
  94. MKINITCPIOCONF=$MNT/etc/mkinitcpio.conf
  95. echo 'MODULES=()' > $MKINITCPIOCONF
  96. echo 'BINARIES=()' >> $MKINITCPIOCONF
  97. echo 'FILES=()' >> $MKINITCPIOCONF
  98. echo 'HOOKS=(base udev autodetect modconf block keymap keyboard encrypt lvm2 filesystems fsck)' >> $MKINITCPIOCONF
  99. echo 'COMPRESSION=lzma' >> $MKINITCPIOCONF
  100.  
  101. arch-chroot $MNT mkinitcpio -p linux
  102.  
  103. LOADERCONF=$MNT/boot/loader/loader.conf
  104. arch-chroot $MNT bootctl --path=/boot install
  105. echo 'default arch' > $LOADERCONF
  106. echo 'timeout 3' >> $LOADERCONF
  107. echo 'editor  1' >> $LOADERCONF
  108. BOOTENTRY=$MNT/boot/loader/entries/arch.conf
  109. echo 'title   Arch Linux' > $BOOTENTRY
  110. echo 'linux   /vmlinuz-linux' >> $BOOTENTRY
  111. echo 'initrd  /intel-ucode.img' >> $BOOTENTRY
  112. echo 'initrd  /initramfs-linux.img' >> $BOOTENTRY
  113. echo "options cryptdevice=UUID=$(blkid -s UUID -o value $BLOCKDEVICECRYPT):$CRYPTDEVICE root=/dev/mapper/$VOLUMEGROUP-$LOGICALROOT rw" >> $BOOTENTRY
  114.  
  115. arch-chroot $MNT systemctl enable dhcpcd.service
  116. arch-chroot $MNT systemctl enable sshd.service
  117.  
  118. echo 'Installation almost complete. Setting passwords'
  119. echo 'Choose a root password:'
  120. arch-chroot $MNT passwd
  121.  
  122. nano /etc/pacman.conf
  123.  
  124. echo Choose a password for $DEFAULTUSER:
  125. arch-chroot $MNT passwd $DEFAULTUSER
  126.  
  127. #umount -R $MNT
  128. #clear
  129. echo 'Installation finished, please reboot now.'
Add Comment
Please, Sign In to add comment