Advertisement
echoslider

finish_gentoo_deployment_systemd

Sep 18th, 2022 (edited)
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 6.13 KB | None | 0 0
  1. #here a gentoo install from ubuntu live system in a kvm VM.
  2.  
  3. sudo su
  4. export DEBIAN_FRONTEND=noninteractive
  5. setxkbmap de
  6.  
  7. #maybe it destroy too much.
  8. blkdiscard /dev/vda
  9. sgdisk --zap-all /dev/vda
  10.  
  11. sgdisk -n1:0:+100M -c 1:"EFI System Partition" -t 1:ef00 /dev/vda
  12. sgdisk -n2:0:+2G -c 2:"Swap Partition" -t 2:8200 /dev/vda
  13. sgdisk -n3:0:0 -c 3:"Linux /" -t 3:8300 /dev/vda
  14.  
  15. mkfs.vfat -F 32 /dev/vda1
  16. mkswap /dev/vda2
  17. swapon /dev/vda2
  18. mkfs.xfs /dev/vda3
  19.  
  20. mkdir --parents /mnt/gentoo
  21. mount /dev/vda3 /mnt/gentoo
  22. mkdir -p /mnt/gentoo/tmp
  23. chmod 1777 /mnt/gentoo/tmp
  24.  
  25. #IMPORTANT - need to check the file as required! maybe URL is outdated.
  26. wget -c https://mirror.leaseweb.com/gentoo/releases/amd64/autobuilds/current-stage3-amd64-systemd/stage3-amd64-desktop-systemd-20230723T170155Z.tar.xz -O /root/stage3.tar.xz
  27. tar --numeric-owner --xattrs -xvJpf /root/stage3.tar.xz -C /mnt/gentoo
  28.  
  29. rm /root/stage3.tar.xz
  30.  
  31. cat > /mnt/gentoo/etc/portage/make.conf << MAKECONF
  32. COMMON_FLAGS="-march=native -O2 -pipe"
  33. CFLAGS="${COMMON_FLAGS}"
  34. CXXFLAGS="${COMMON_FLAGS}"
  35. FCFLAGS="${COMMON_FLAGS}"
  36. FFLAGS="${COMMON_FLAGS}"
  37.  
  38. ### PORTAGE OPTS ###
  39. MAKEOPTS="-j2 -l2"
  40. PORTAGE_NICENESS="1"
  41. EMERGE_DEFAULT_OPTS="--jobs=2 --with-bdeps y --complete-graph-if-new-use y"
  42. FEATURES="candy fixlafiles unmerge-orphans parallel-fetch parallel-install"
  43.  
  44. USE="systemd kvm qemu spice iscsi ssh fuse acl networkmanager dbus script tools pkcs11 mount -elogind"
  45.  
  46. ACCEPT_LICENSE="*"
  47.  
  48. PORTDIR="/var/db/repos/gentoo"
  49. DISTDIR="/var/cache/distfiles"
  50. PKGDIR="/var/cache/binpkgs"
  51.  
  52. LC_MESSAGES=C
  53.  
  54. GRUB_PLATFORMS="emu efi-32 efi-64 pc"
  55. #GRUB_PLATFORMS="efi-64"
  56. MAKECONF
  57.  
  58. echo "DESKTOP-`cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 9 | head -n 1`" > /mnt/gentoo/etc/hostname
  59.  
  60. cat > /mnt/gentoo/etc/resolv.conf << NETWORK
  61. nameserver 127.0.0.53
  62. options edns0 trust-ad
  63. search martin.ads
  64. NETWORK
  65.  
  66. mount --types proc /proc /mnt/gentoo/proc
  67. mount --rbind /sys /mnt/gentoo/sys
  68. mount --make-rslave /mnt/gentoo/sys
  69. mount --rbind /dev /mnt/gentoo/dev
  70. mount --make-rslave /mnt/gentoo/dev
  71. mount --bind /run /mnt/gentoo/run
  72. mount --make-slave /mnt/gentoo/run
  73.  
  74. test -L /dev/shm && rm /dev/shm && mkdir /dev/shm
  75. mount --types tmpfs --options nosuid,nodev,noexec shm /dev/shm
  76. chmod 1777 /dev/shm /run/shm
  77.  
  78. chroot /mnt/gentoo /bin/env -i TERM=$TERM /bin/bash
  79.  
  80. source /etc/profile
  81. export PS1="(chroot) $PS1"
  82.  
  83. mount /dev/vda1 /boot
  84.  
  85.  
  86. emerge-webrsync
  87.  
  88. ## IMPORTANT! need to double check here. Profile 21 is default/linux/amd64/17.1/systemd (stable)
  89. #eselect profile list
  90. #eselect profile set 21
  91.  
  92. prof=`eselect profile list|grep systemd|grep stable|grep -v desktop|awk -F" " '{print $1}'|sed 's/\[//'|sed 's/\]//'|head -n 1`
  93. eselect profile set "$prof"
  94.  
  95.  
  96.  
  97. ##QEMU / KVM SETUP
  98.  
  99. cat > /etc/portage/package.use/qemu-kvm << QEMU
  100. app-emulation/qemu QEMU_SOFTMMU_TARGETS: arm x86_64 sparc QEMU_USER_TARGETS: x86_64
  101. app-emulation/qemu usbredir
  102. app-emulation/libvirt pcap virt-network numa fuse macvtap vepa qemu
  103. QEMU
  104.  
  105.  
  106.  
  107.  
  108. emerge  --verbose --update --deep --newuse @world
  109.  
  110.  
  111. emerge -v --autounmask-write --ask --newuse --deep \
  112. app-portage/cpuid2cpuflags sys-boot/grub app-editors/vim net-misc/wget net-wireless/wpa_supplicant app-emulation/libvirt \
  113. sys-kernel/linux-firmware sys-kernel/gentoo-sources sys-kernel/genkernel sys-fs/e2fsprogs sys-fs/dosfstools net-dns/dnsmasq \
  114. sys-apps/pciutils sys-fs/xfsprogs app-arch/dump sys-fs/xfsdump net-misc/networkmanager sys-apps/mlocate sys-boot/grub sys-boot/os-prober
  115.  
  116.  
  117.  
  118. #dispatch-conf on error and repeat
  119.  
  120. echo "*/* $(cpuid2cpuflags)" > /etc/portage/package.use/00cpu-flags
  121.  
  122. ln -sf ../usr/share/zoneinfo/Europe/Brussels /etc/localtime
  123.  
  124. cat > /etc/locale.gen << LANGGEN
  125. en_US ISO-8859-1
  126. en_US.UTF-8 UTF-8
  127. de_DE ISO-8859-1
  128. de_DE.UTF-8 UTF-8
  129. LANGGEN
  130.  
  131. locale-gen
  132.  
  133. qcat > /etc/env.d/02locale << LANGGENB
  134. LANG="de_DE.UTF-8"
  135. LC_COLLATE="C.UTF-8"
  136. LANGGENB
  137.  
  138. eselect locale set 6
  139.  
  140. cat >> /etc/conf.d/keymaps << KEYM
  141. keymap="de"
  142. extended_keymaps=""
  143. windowkeys= "YES"
  144. dumpkeys_charset=""
  145. fix_euro="NO"
  146. KEYM
  147.  
  148. env-update && source /etc/profile && export PS1="(chroot) ${PS1}"
  149.  
  150.  
  151. eselect kernel set 1
  152.  
  153.  
  154. ##Gentoo - systemd specifics
  155. ln -sf /proc/self/mounts /etc/mtab
  156.  
  157. mkdir -p /etc/modules-load.d
  158.  
  159. genkernel --virtio --install --loglevel 5 --module-rebuild all
  160.  
  161. emerge --ask --changed-use --deep @world
  162.  
  163. echo /dev/disk/by-uuid/$(blkid -s UUID -o value /dev/vda1) /boot vfat defaults,noatime 0 2 > /etc/fstab
  164. echo /dev/disk/by-uuid/$(blkid -s UUID -o value /dev/vda2) none swap sw 0 0 >> /etc/fstab
  165. echo /dev/disk/by-uuid/$(blkid -s UUID -o value /dev/vda3) / xfs noatime 0 1 >> /etc/fstab
  166.  
  167.  
  168.  
  169.  
  170. cat >> /etc/conf.d/net << NETWORKB
  171. dns_domain_lo="WORKGROUP"
  172. NETWORKB
  173.  
  174. #emerge  net-misc/dhcpcd
  175. #systemctl enable dhcpcd
  176. #systemctl start dhcpcd
  177.  
  178. #on error maybe "dispatch-conf"
  179.  
  180. systemctl enable NetworkManager
  181.  
  182. #enable weak passwords
  183. cat >  /etc/security/passwdqc.conf  << PASS
  184. #min=disabled,24,11,8,7
  185. #passphrase=3
  186. #match=4
  187. #similar=deny
  188. #enforce=everyone
  189.  
  190. min=1,1,1,1,1
  191. max=72
  192. passphrase=0
  193. match=0
  194. similar=permit
  195. random=47
  196. enforce=none
  197. retry=3
  198. PASS
  199.  
  200. echo 'root:p@ssw0rd'|chpasswd
  201. useradd -m -G users,wheel,kvm,video,audio -s /bin/bash serveradmin
  202. echo 'serveradmin:p@ssw0rd'|chpasswd
  203.  
  204.  
  205. systemctl enable sshd
  206.  
  207. #cat >> /etc/inittab << INITFILE
  208. # SERIAL CONSOLES
  209. #s0:12345:respawn:/sbin/agetty 9600 ttyS0 vt100
  210. #s1:12345:respawn:/sbin/agetty 9600 ttyS1 vt100
  211. #INITFILE
  212.  
  213. systemctl enable getty@tty1.service
  214.  
  215. cat > /etc/libvirt/libvirtd.conf << LIBVIRT
  216. auth_unix_ro = "none"
  217. auth_unix_rw = "none"
  218. unix_sock_group = "wheel"
  219. unix_sock_ro_perms = "0777"
  220. unix_sock_rw_perms = "0770"
  221. LIBVIRT
  222.  
  223.  
  224.  
  225. mkdir -p /etc/tools/
  226.  
  227.  
  228. cat > /etc/tools/update << UPDATESCRIPT
  229. emerge --sync
  230. emerge -avDuU @world
  231. glsa-check -t affected
  232. UPDATESCRIPT
  233.  
  234. chmod +x /etc/tools/update
  235. ln -sfn /etc/tools/update /bin/update
  236.  
  237.  
  238. grub-install --target=x86_64-efi --efi-directory=/boot --removable
  239.  
  240.  
  241. grub-mkconfig -o /boot/grub/grub.cfg
  242.  
  243. #more systemd specifics
  244. systemd-firstboot --prompt --setup-machine-id
  245.  
  246. emerge -avDuN @world
  247. emerge --depclean
  248.  
  249.  
  250. exit
  251. cd
  252. umount -l /mnt/gentoo/dev{/shm,/pts,}
  253. mount -R /mnt/gentoo
  254. reboot
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement