Jeg foretrækker faktisk at installere en ny version helt fra bunden, fremfor en egentlig opgradering.
Det er ret ligetil, når man har sin home-mappe med diverse program-indstillinger liggende på en særskilt partition – det betyder at diverse programmer i Ubuntu husker mine indstillinger fra den "gamle" Ubuntu.
Jeg har en mappe (System) i min home-mappe, hvor jeg gemmer diverse ting som jeg skal bruge/huske. Det kan f.eks. være nogle kommandoskabeloner og en log over de programmer jeg har tilføjet (via aptitude) siden jeg installerede Ubuntu.
Inden jeg installerer ny version, laver jeg en ny mappe i min home-mappe (kalder den System_upg_xx.xx) og tager en kopi af kommando-skabeloner, programlog og udvalgte systemfiler (f.eks. fstab). Dette bruger jeg for at tilpasse det nyinstallerede system.
Ovennævnte mappe danner jeg med et bash-script (se sidst i dette indlæg).
Nogle system-filer skal kopieres med sudo, og de bliver gemt med "root" som ejer idet indholdet kan kompromitere sikkerheden. De kan læses med "sudo cat
Eventuelt kan køres en "chown" på filerne, MEN SÅ SKAL DE SLETTES EFTER BRUG (kan evt. pakkes i en fil beskyttet med kodeord inden sletning).
Til sidst sletter jeg den gamle System-mappe og omdøber den nye systemmappe til System.
#!/bin/bash -u
declare new_v="20.04"
declare old_v="$(lsb_release -r | cut -f2)"
declare mig_dir="${HOME}/System_upg_${DESKTOP_SESSION^}-${new_v}"
declare bash_dir="${mig_dir}/bash-settings"
declare bin_dir="${mig_dir}/bin_$(date "+%Y-%m-%d_%H-%M-%S")"
declare old_sys="${mig_dir}/System_$old_v"
declare dsk_inf="${old_sys}/diskinfo_$(date "+%Y-%m-%d_%H-%M-%S").txt"
declare -a sys_file_arr=("fstab" "group" "hosts" "passwd")
printf "\n%s\n" "Opretter ${old_sys} ..."
mkdir -p "${old_sys}" && tree --noreport "${mig_dir}"
printf "\n%s\n" "Opretter ${bash_dir} ..."
mkdir -p "${bash_dir}"
printf "\n%s\n" "Kopierer nogle systemfiler:"
for f in "${sys_file_arr[@]}" ; do
cp -vp "/etc/${f}" "${old_sys}/${f}_${old_v}"
done
printf "\n%s\n" "Kopier /etc/default/grub:"
sudo cp -vp "/etc/default/grub" "${old_sys}/grub_${old_v}"
printf "\n%s\n" "Kopier shadow (kræver sudo):"
sudo cp -vp "/etc/shadow" "${old_sys}/shadow_${old_v}"
printf "\n%s\n" "Kopier network-connections (kræver sudo) ..."
sudo cp -pr "/etc/NetworkManager/system-connections" "${old_sys}/NetworkManager_system-connections/"
printf "\n%s\n" "Gemmer disk-info i ${dsk_inf} ..."
printf "\n\n%s\n" "Resultat af lsblk:" > "$dsk_inf"
lsblk -o MODEL,NAME,SIZE,TYPE,FSTYPE,LABEL,UUID,RM,MOUNTPOINT -I8 >> "$dsk_inf"
printf "\n\n%s\n" "Resultat af df (BEMÆRK: Kun mounted drev vises):" >> "$dsk_inf"
df -hl --output=source,fstype,size,used,avail,pcent,target -x tmpfs -x squashfs -x devtmpfs >> "$dsk_inf"
printf "\n%s\n" "Gemmer hardware-info i en fil ..."
sudo lshw > "${mig_dir}/hardware.txt"
printf "\n%s\n" "Kopier ini-filer til Firefox og Thunderbird:"
cp -vpr "${HOME}/.mozilla/firefox/profiles.ini" "${mig_dir}/Firefox_profiles.ini"
cp -vpr "${HOME}/.thunderbird/profiles.ini" "${mig_dir}/Thunderbird_profiles.ini"
printf "\n%s\n" "Kopier min 'log-fil' med efter-installerede programmer:"
cp -vpr "${HOME}/System/Program-log.txt" "${mig_dir}/"
printf "\n%s\n" "Bruger 'aptitude ~d' til at gemme programliste ..."
aptitude -w110 search ~d > "${old_sys}/aptitude-d_${old_v}.txt"
printf "\n%s\n" "Kopierer mine sys-tilpasnings 'scripts' ..."
cp -pr "${HOME}/System/sys-tilpasning" "${mig_dir}"
printf "\n%s\n" "Kopierer nogle bash-settings ..."
cp -p -t "${bash_dir}" "${HOME}/.bash_aliases" ""${HOME}/.bashrc""
printf "\n%s\n" "Kopierer mine scripts (bin) ..."
cp -pr "${HOME}/bin" "${bin_dir}"