"No pain, no gain"
Some notes on the process of heading off the next upgrade apocalypse.
Loosely acknowledges the existence of the official Linux Mint Installation Guide.
- /home
- /etc
- /usr/local
- /opt
- /var/log
- /var/mail
- /var/spool
- ~/.config/gnome-session/
- ~/.config/gnome-initial-setup-done
- ~/.config/gnome-shell/
- ~/.config/gnome-control-center/
- ~/.config/gnome-software/
- ~/.config/dconf/
- ~/.local/share/gnome-shell/
- ~/.local/share/gnome-software/
- ~/.config/ubuntu-advantage/ (Ubuntu-specific)
Search for and delete any obvious additional cruft.
- Select "Something else" in partitioning step
- Partition table (sizes are for illustration)
| Device | Type | Mount point | Format | Size |
|---|---|---|---|---|
| nvme0n1p1 | efi | /boot/efi | Y | 500M |
| nvme0n1p2 | ext4 | / | Y | 130G |
| nvme0n1p3 | ext4 | /home | N | 480G |
| sda1 | ext4 | /d1 | N | 3T |
DO NOT reformat /home or /d1 !
-
Relink /etc/resolv.conf:
sudo rm /etc/resolv.conf sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.confEdit /etc/systemd/resolved.conf:
#DNS= DNSStubListener=noDisabling the listener is not strictly necessary, but required if you want to run your own nameserver (dnsmasq or BIND).
-
Set static networking for IPv4
-
Set dynamic networking for IPv6
-
Add br0 interface (includes renaming primary interface to device name)
- Install vim and configure as default editor (select
vim-basic):sudo update-alternatives --config editor - Install additional software from List of useful software
Most of these can be addessed by backing up /etc and then selectively reapplying configurations after install complete.
- Add user to docker group
- Change Docker data directory
- Add user to libvirt, kvm groups
- Relocate libvirtd images directory
- Restore /etc/libvirt/qemu
- Recreate networks in /etc/libvirt/qemu/networks
- Recreate virtual machines in /etc/libvirt/qemu
- Configure KVM name resolver and DHCP
Restore:
- /etc/nginx/nginx.conf
- /etc/nginx/sites-available
- /etc/nginx/sites-enabled
Install and configure chrony in place of systemd-timesyncd:
sudo apt install chrony
sudo vi /etc/chrony/chrony.confMy chrony.conf:
# pool ntp.ubuntu.com iburst maxsources 4
# pool 0.ubuntu.pool.ntp.org iburst maxsources 1
# pool 1.ubuntu.pool.ntp.org iburst maxsources 1
# pool 2.ubuntu.pool.ntp.org iburst maxsources 2
server 0.us.pool.ntp.org iburst
server 1.us.pool.ntp.org iburst
server 2.us.pool.ntp.org iburst
server 3.us.pool.ntp.org iburstIf you want chrony to act as an NTP server, append allow [your network/dd (e.g., allow 10.0.1.0/24) to the configuration and open UDP port 123 (sudo ufw allow ntp).
- Restore crontab
- Test scripts
- Configure desktop features, including Variety desktop backgrounds
-
Restore restic group and user with same ID and password
sudo groupadd -g dddd restic sudo useradd -g restic -u dddd -d /home/restic -s /bin/bash -c "Restic backup" resticBe sure to match the existing gid and uid for your restic user.
-
Restore crontab
-
Test scripts in /home/restic
- Restore each user's group and account with same gid, uid, and password.
- Make members of additional groups as necessary:
Admin or dev users might also getsudo usermod -a -G cdrom,dip,plugdev,users,lpadmin,sambashare [username]adm,sudo,docker,kvm,libvirt,dialoutand any resource group (e.g.,staff).