| |||
|
Allgemeines zu Debian 11.0 BullseyeUpgrade von buster auf bullseyeDieser Text basiert auf der Anleitung bei linuxconfig.org und meinem eigenem Upgrade von Stretch auf Buster.Veraltete Pakete oder solche ausserhalb der Paketverwaltung suchen (das Zeichen vor "o" ist eine Tilde!): # aptitude search '~o'Dies ergab bei mir "zoom", ??? und zwei Scanapplikationen von Epson zum ET5800, was ich ignorierte. Man kann diese gegebenenfalls nach Kontrolle mit dem Kommando # aptitude purge '~o'löschen. Jetzt das vorhandene Buster-System aktualisieren mit # apt-get update # apt-get upgrade # apt-get dist-upgradezurückgehaltene Pakete kontrollieren. # dpkg -C # apt-mark showholdDann in der /etc/apt/sources.list buster durch bullseye ersetzen,
am einfachsten mit sed. Vorsichtige Admins kontrollieren, ob das bullseye-Repository
auch auf der bevorzigten Quelle vorhanden ist. Da ich die virtualbox nicht mehr benötige,
entfernte ich die auf ubuntu bionic contrib zeigende Zeile.
Eigentich löst das der sed
# cp /etc/apt/sources.list /etc/apt/sources.list_backup # sed -i 's/buster/bullseye/g' /etc/apt/sources.list # apt-get updateDa sich unter "security" ein Pfad ändert, muss man die beiden Zeilen so anpassen: deb http://security.debian.org/debian-security bullseye-security/updates main deb-src http://security.debian.org/debian-security bullseye-security/updates mainbevor man den apt-get update startet. Vielleicht liegt es auch daran, dass bullseye noch testing und nicht stable ist.
# apt-get updateso, jetzt kann man simulieren, was beim Upgrade passiert: # apt list --upgradableauf arcturus war alles grün! Dann geht der eigentliche Upgrade los, beide Teile
dauern in Summe etwa eine Stunde (DSL 25000)
# apt-get upgrade # apt-get dist-upgradeBeim Upgrade behielt ich immer meine lokal veränderten Konfigurationstateien, antwortete also immer mit "N ". So, neu Booten, alles ok!. Eine Liste aller installierten Pakete erhält man mit # dpkg --get-selections | grep -v deinstall | awk ' { print $1 } ' System klonen / Grub nachträglich installierenNachdem ich stundenlang versucht habe, die Kopieraktion mit UEFI und einer gpt partitionierten Platte zum booten zu bekommen, habe ich erst mal aufgegeben und bin beim klassischen DOS Partitionsschema und BIOS-Boot geblieben. Da meine Systemplatten alle kleiner 2TB und meine modernste CPU ein i7-6700 ist, stellt da kein Problem dar. Den einzigen i3-9100 werde ich einfach von buster upgraden.die Zielplatte via USB anhängen oder in den 2.Wechselrahmen einstecken. Da die SSDs der Workstations und Notebooks alle mindestens 240GB haben, verwende ich für das System 80GB und fuer den Swap 20GB. # fdisk /dev/sdb 80,0 GB sdb1 83 Bootflag (ergibt /) 20,0 GB sdb2 82 swap 150,0 GB sdb3 83 (/local oder /home bei Laptops)Dateisysteme anlegen # mkfs.ext4 /dev/sdb1 # mkswap /dev/sdb2 # mkfs.ext4 /dev/sdb3Platte mounten und das gerade in Betrieb befindliche System kopieren. Ich verwende als Mountpoint meistens das (eventuell anzulegende) Verzeichnis /dest . Dadurch ist mir klar, dass es sich um das Zielverzeichnis handelt:
# mount /dev/sdb1 /destAnschliessend kopiert man die Systemplatte, ich verwende dazu mein eigenes Kommando cpHOST / /dest ALL , was im Wesentlichen ein rsync mit diversen excludes (proc ec)
ist. Anschliessend werden die kopierten BlockIDs der Installation auf der Zielplatte mit den echten BlockIDs der Zielplatte ueberschrieben. Ich habe dazu ein ebenfalls
ein Skript namens mvUUIDforBaseByDev gebaut, welches z.B. mit
# mvUUIDforBaseByDev /dest /dev/sda1 /dev/sdb1 # mvUUIDforBaseByDev /dest /dev/sda2 /dev/sdb2die UUID der Platte /dev/sda1 (Quelle) durch die der /dev/sdb1 (Ziel) in den angegebenen Dateien ersetzt,
wenn diese Platte nach /dest gemountet ist, passt das.
Ohne Verwendung von cpHost und mvUUIDforBaseByDev muss man mehr Hand anlegen,
siehe Abschnittsende.Da auch die UUID des Swapspace in einigen Dateien steckt, ist auch die zweite Zeile ( /dev/sda2 => /dev/sdb2 ) nötig.Ist die Platte noch am Quellrechner unter /dest
gemounten, setzt man anschliessend das Kommando
# update-initramfs -u -k all -t -b /dest/bootab. Falls die Platte schon als Bootplatte im Zielrechner ist, reicht: # update-initramfs -u -k allBIOS Boot anschalten, (bei Platten mit DOS-Dateilabel setzt man das Boot-Flag vorher beim Partitionieren) # parted -s /dev/sdb set 1 bios_grub onDann kann man den GRUB neu intallieren: # grub-install --root-directory=/dest /dev/sdbDer Device bezeichnet dabei das Ziel der Grub Installation, also KEINE Partition, sondern die Platte selbst. Allgemein also grub-install --root-directory=MOUNTPOINT DEVICE
Falls man update-initramfs -u -k all vergessen hat oder das aus irgendeinem Grund nich korrekt funktionierte, kein Beinbruch, man muss
beim Booten der Platte als Systemplatte nur ca 5 Minuten warten, bis der Fehler "Could not stat the resume device file '/dev/disk...'" kommt
und das system mit <ENTER> bootet.Kopieren ohne cpHost # cd / # rsync -avtHAX --exclude /dest --exclude /proc --exclude /sys --exclude /dev --exclude /home --exclude /local --exclude /homeserv / /destDas Verzeichnis /local ist eine Spezialität von mir und /home wird bei mir vom
Server gemountet. /homeserv ist das Verzeichnis, wo die Laptops das vom Server exportierte
/home hin mounten und sollte ebenfalls nicht kopiert werden (wenn vorhanden).
/local wird anschliessend genauso kopiertKopieren ohne mvUUIDforBaseByDev Die kopierte /boot/grub/grub.cfg und /etc/fstab müssen vor der grub Installation
angepasst werden. Notfalls kann man aber auch die UUID der neuen Platte aufschreiben und beim Booten im Grub
als "root" bei UUID=... eingeben. Falls man das auch vergessen hat, bekommt man die
UUID raus, indem man die Platte in einen anderen Rechner einbaut und
# blkid -o value /dev/PARTITIONaufruft. Dann die alte UUID in /etc/fstab mit der richtigen UUID ersetzen.
Sonst am einfachsten im vi:# vi /dest/etc/fstab : %s/UUIDOLD/UUIDNEW/g :wq!so wird das Vorkommen der alten UUID durch die neue ersetzt. Ziel ist dann etwa: UUID=UUIDNEW / ext4 defaults,errors=remount-ro 0 1Ebenso muss die UUID in den Dateien /etc/uswsusp.conf und /etc/initramfs-tools/conf.d/resume
angepasst werden, wenn man "Suspend to Disk" verwenden will.Langer Rede, kurzer Sinn, am Zielsystem sind 4 Dateien anzupassen: /MOUNTPOINT/etc/fstab /MOUNTPOINT/boot/grub/grub.cfg /MOUNTPOINT/etc/uswsusp.conf /MOUNTPOINT/etc/initramfs-tools/conf.d/resume Achtung #1: Beliebter Fehler vi /etc/fstab statt vi /mnt/etc/fstab , man zerschiesst das
Quellsystem!!!Achtung #2: Auch SWAP oder andere Partitionen in der /mnt/etc/fstab ersetzen.Ebenso wird jedes Vorkommen der alten UUID in der /mnt/boot/grub/grub.cfg ersetzt. |