Advertisement
Guest User

Untitled

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