Advertisement
msjche

msjche's Gentoo LUKS, LVM, UEFI Installation

Feb 16th, 2020
9,164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.03 KB | None | 0 0
  1. #######################################################################
  2. ########### msjche's Gentoo LUKS, LVM, UEFI Installation ##############
  3. #######################################################################
  4.  
  5. ## Ensure booted via efi (on target system)
  6.  
  7. ls /sys/firmware/efi - if there's anything there then you are
  8.  
  9. ## Wireless config on target computer
  10.  
  11. ifconfig - note wireless interface
  12. wpa_passphrase <ssid> "passphrase" > /etc/wpa_supplicant/wpa_supplicant.conf
  13. wpa_supplicant -i <interface> -c /etc/wpa_supplicant/wpa_supplicant.conf
  14. passwd - for ssh access
  15. /etc/init.d/sshd restart
  16.  
  17.  
  18. ### Disk Preparation ###
  19.  
  20. fdisk -l
  21. parted -a optimal /dev/nvme0n1
  22. rm (all)
  23.  
  24. mklabel gpt
  25. unit mib
  26. mkpart primary 1 512
  27. name 1 boot
  28. set 1 BOOT on
  29. mkpart primary 512 -1
  30. name 2 lvm
  31. set 2 lvm on
  32. p -make boot,esp on 1e
  33. quit
  34.  
  35. mkfs.fat -F32 /dev/nvme0n1p1
  36.  
  37. ### LVM setup ###
  38.  
  39. modprobe dm-crypt
  40. /etc/init.d/lvmetad restart
  41.  
  42. cryptsetup -v -y -c aes-xts-plain64 -s 512 -h sha512 -i 5000 --use-random luksFormat /dev/nvme0n1p2
  43. type YES
  44. Enter: passphrase
  45. Verify
  46.  
  47. cryptsetup luksDump /dev/nvme0n1p2
  48.  
  49. cryptsetup luksOpen /dev/nvme0n1p2 GentooPC
  50. Enter passphrase
  51.  
  52. lvmdiskscan
  53.  
  54. pvcreate /dev/mapper/GentooPC
  55. pvdisplay
  56.  
  57. vgcreate gentoo /dev/mapper/GentooPC
  58. vgdisplay
  59.  
  60. lvcreate -C y -L 16G gentoo -n swap
  61. lvcreate -L 32G gentoo -n root
  62. lvcreate -L 65G gentoo -n var
  63. lvcreate -l +100%FREE gentoo -n home
  64. lvdisplay
  65.  
  66. vgscan (may say running but disabled)
  67.  
  68. vgchange -ay (should say active now)
  69.  
  70. mkswap /dev/mapper/gentoo-swap
  71. mkfs.ext4 /dev/mapper/gentoo-root
  72. mkfs.ext4 /dev/mapper/gentoo-var
  73. mkfs.ext4 /dev/mapper/gentoo-home
  74.  
  75. swapon /dev/mapper/gentoo-swap
  76. mount /dev/mapper/gentoo-root /mnt/gentoo
  77. mkdir /mnt/gentoo/boot
  78. mkdir /mnt/gentoo/home
  79. mkdir /mnt/gentoo/var
  80. mount /dev/nvme0n1p1 /mnt/gentoo/boot
  81. mount /dev/mapper/gentoo-var /mnt/gentoo/var
  82. mount /dev/mapper/gentoo-home /mnt/gentoo/home
  83.  
  84. lsblk /dev/nvme0n1
  85. Should print out schematic of lvm
  86.  
  87. free -m
  88.  
  89. ### Install Base System ###
  90.  
  91. date
  92.  
  93. ntpd -q -g
  94.  
  95. cd /mnt/gentoo
  96. links https://www.gentoo.org/downloads/mirrors/
  97. download Stage3 tarball
  98.  
  99. tar xpvf stage3-* --xattrs-include='*.*' --numeric-owner
  100.  
  101. nano -w /mnt/gentoo/etc/portage/make.conf
  102.  
  103. CFLAGS="-march=native..."
  104. MAKE_OPTS="-j13"
  105. L10N="en-us"
  106. ACCEPT_LICENSE="*"
  107.  
  108. #USE="ncurses plymouth cryptsetup crypt pulseaudio bluetooth python icu networkmanager branding png jpeg bindist"
  109.  
  110. #VIDEO_CARDS="intel nvidia"
  111. #INPUT_DEVICES="libinput"
  112. #ALSA_CARDS="hda-intel usb-audio"
  113.  
  114.  
  115. mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
  116.  
  117. mkdir --parents /mnt/gentoo/etc/portage/repos.conf
  118. cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf
  119. - may need to change "sync-rsync-verify-manifest = yes" to = no
  120.  
  121. cp --dereference /etc/resolv.conf /mnt/gentoo/etc/
  122.  
  123. mount --types proc /proc /mnt/gentoo/proc
  124. mount --rbind /sys /mnt/gentoo/sys
  125. mount --rbind /dev /mnt/gentoo/dev
  126. mount --make-rslave /mnt/gentoo/sys
  127. mount --make-rslave /mnt/gentoo/dev
  128.  
  129. test -L /dev/shm && rm /dev/shm && mkdir /dev/shm
  130. mount --types tmpfs --options nosuid,nodev,noexec shm /dev/shm
  131. chmod 1777 /dev/shm
  132.  
  133. mkdir /mnt/gentoo/hostrun
  134. mount --bind /run /mnt/gentoo/hostrun/
  135.  
  136. chroot /mnt/gentoo /bin/bash
  137. source /etc/profile
  138. export PS1="(chroot) $PS1"
  139.  
  140. emerge-webrsync
  141.  
  142. emerge --sync - change verify setting to "no" (above) if server error
  143.  
  144. # Set up /etc/portage
  145. cd /etc/portage/
  146. mkdir package.accept_keywords
  147.  
  148. # Install Vim (optional)
  149. echo "app-editors/vim lua luajit perl python ruby terminal vim-pager" > package.use/vim
  150. emerge -av vim eix
  151.  
  152. emerge -uvDNa @world
  153.  
  154. # Enable cpu features
  155. emerge -av cpuid2cpuflags
  156.  
  157. cpuid2cpuflags >> /etc/portage/make.conf
  158.  
  159. echo "America/Los_Angeles" > /etc/timezone
  160. emerge --config sys-libs/timezone-data
  161.  
  162. vim /etc/locale.gen
  163. uncomment en_US-utf8
  164. locale-gen
  165. eselect locale list
  166. eselect locale set X -select en_US-utf8
  167.  
  168. env-update && source /etc/profile && export PS1="(chroot) ${PS1}"
  169.  
  170. eselect profile list
  171. eselect profile set X -likely no change - keep as base version until reboot
  172.  
  173. emerge -av gentoo-sources genkernel-next cryptsetup lvm2 linux-firmware
  174.  
  175. # Intel 9560 wifi iwlwifi specific
  176. scp msjche@192.168.1.5:/home/msjche/Gentoo/iwlwifi-9000-pu-b0-jf-b0-34.ucode /lib/firmware/
  177.  
  178.  
  179. vim /etc/fstab
  180.  
  181. /dev/nvme0n1p1 /boot vfat noatime 0 2
  182. /dev/mapper/gentoo-root / ext4 rw,relatime,data=ordered 0 1
  183. /dev/mapper/gentoo-home /home ext4 rw,relatime,data=ordered 0 2
  184. /dev/mapper/gentoo-var /var ext4 rw,relatime,data=ordered 0 2
  185. /dev/mapper/gentoo-swap none swap defaults 0 0
  186.  
  187. # Manual kernel config
  188. cd /usr/src
  189. ls -la
  190. cd linux/
  191. make menuconfig
  192. Google all system hardware (bluetooth, pulseaudio, thunderbolt, sd-card readers, etc)
  193. make -j13
  194. make -j13 modules_install
  195. make install
  196.  
  197. # Genkernel method
  198. scp msjche@192.168.1.5:/home/msjche/Gentoo/kernel-config-4.19.97 /usr/src/linux
  199. vim /etc/genkernel.conf
  200. enable LUKS, LVM
  201. genkernel --makeopts=-j13 --menuconfig --lvm --luks --no-zfs all
  202. lvm requirements
  203. luks requirements (sha512,AES)
  204. nvme
  205.  
  206. # if getting "not initialized in udev database" during boot (because / is in lvm)
  207. vim /etc/lvm/lvm.conf - find and change the following:
  208.  
  209. devices {
  210. multipath_component_detection = 0
  211. md_component_detection = 0
  212. }
  213.  
  214. activation {
  215. udev_sync = 0
  216. udev_rules = 0
  217. }
  218.  
  219. genkernel --lvm --luks initramfs
  220.  
  221. echo "sys-boot/grub mount device-mapper" > /etc/portage/package.use/grub
  222. emerge -av grub gentoolkit
  223.  
  224. vim /etc/default/grub
  225.  
  226. GRUB_CMDLINE_LINUX="crypt_root=/dev/nvme0n1p2 root=/dev/mapper/gentoo-root rootfstype=ext4 dolvm quiet"
  227.  
  228. grub-install --target=x86_64-efi --efi-directory=/boot /dev/nvme0n1
  229.  
  230. grub-mkconfig -o /boot/grub/grub.cfg
  231.  
  232. passwd
  233.  
  234. useradd -m -G users,wheel,audio,video -s /bin/bash msjche
  235. passwd msjche
  236.  
  237. rm stage...
  238.  
  239. echo "4n4rch14" > /etc/hostname
  240. vim /etc/hosts
  241. 127.0.0.1 4n4rch1a.localdomain localhost
  242.  
  243. emerge -av syslog-ng cronie mlocate
  244. rc-update add syslog-ng default
  245. rc-update add cronie default
  246. rc-update add sshd default
  247. rc-update add lvm boot
  248.  
  249. # Networking
  250.  
  251. vim /etc/portage/make.conf
  252. uncomment USE="..."
  253.  
  254. desktop:
  255. emerge -av net-misc/dhcpcd
  256.  
  257. laptop:
  258. emerge -av wireless-tools net-tools app-text/tree wpa_supplicant networkmanager
  259. emerge -av x11-misc/xdotool x11-misc/wmctrl - for libinput
  260. rc-update add NetworkManager default
  261.  
  262. tree /sys/class/net
  263.  
  264. zgrep 'IWLWIFI\|IWLDVM\|IWLMVM' /proc/config.gz
  265. * iwlwifi
  266. M iwldvm
  267. M iwlmvm
  268.  
  269. exit
  270. cd
  271.  
  272. umount -l /mnt/gentoo/dev{/shm,/pts,}
  273. umount -R /mnt/gentoo
  274.  
  275. reboot
  276.  
  277. should see "Enter passphrase for /dev/sda2"
  278.  
  279. echo "SOLARIZED=TRUE" > /etc/eixrc/99-color
  280. SOLARIZED=true
  281.  
  282. ## Updating Plymouth Theme
  283.  
  284. plymouth-set-default-theme --list
  285. plymouth-set-default-theme set X
  286.  
  287. genkernel --luks --lvm initramfs
  288. grub-mkconfig -o /boot/grub/grub.cfg
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement