Wechseln Sie von CentOS 7 zu Oracle Linux 7
Einführung
Hinweis: CentOS 7 hat am 30. Juni 2024 das Ende der Nutzungsdauer erreicht. Diese Situation bedeutet, dass Red Hat, das Unternehmen hinter CentOS, keine Sicherheitsupdates oder Bugfixes mehr für das Betriebssystem bereitstellt.
Das folgende Tutorial enthält schrittweise Anleitungen zum automatischen Wechseln einer CentOS 7-Instanz zu Oracle Linux 7, indem CentOS-spezifische Packages entfernt oder durch das Oracle Linux-Äquivalent ersetzt werden. Die README.md im Oracle centos2ol
-Repository auf GitHub gibt an, dass das in diesem Tutorial verwendete Skript in Bearbeitung ist und nicht für alle möglichen Konfigurationen ausgelegt ist.
Stellen Sie vor dem Starten dieses Prozesses sicher, dass Sie über ein vollständiges Backup des Systems verfügen, wenn das Skript das System nicht erfolgreich konvertieren kann.
Prüfen Sie die neuesten Details für das Projekt centos2ol in der Datei README.md des Projekts.
Ziele
In diesem Tutorial gehen Sie wie folgt vor:
- Auf nicht standardmäßige Kernel prüfen
- Stellen Sie sicher, dass die
yum
-Konfiguration funktioniert - Veraltete und Nicht-CentOS-Repositorys deaktivieren oder entfernen
- Stellen Sie 5 GB freien Speicherplatz in
/var/cache
sicher - Alle automatischen Updates deaktivieren, einschließlich
yum-cron
Voraussetzung
- Ein System mit installiertem CentOS 7.
Prüfen Sie die Version CentOS
-
Öffnen Sie ein Terminal, und stellen Sie eine Verbindung zur Instanz her.
-
Rufen Sie die Version von CentOS ab.
sudo cat /etc/redhat-release
sudo cat /etc/os-release
Beide Befehle zeigen an, dass die Instanz CentOS 7 ausführt.
Auf nicht standardmäßige Kernels prüfen
-
Rufen Sie eine Liste der installierten Kernel mit
yum
ab.sudo yum list installed kernel
In der Liste werden alle Kernel angezeigt, die mit
yum
installiert wurden. Wir empfehlen dringend, alle nicht standardmäßigen Kernel zu entfernen, z. B. jeden Kernel, der vom Basis- oder Update-Repository installiert und nicht bereitgestellt wird. Enthält das Entfernen allercentosplus
-Kernel. -
Rufen Sie eine Liste der anderen installierten Kernel mit
grubby
ab.sudo grubby --info=ALL | grep ^kernel
Beispielausgabe:
[oracle@centos-7 ~]$ sudo grubby --info=ALL | grep ^kernel kernel=/boot/vmlinuz-3.10.0-1160.76.1.el7.x86_64 kernel=/boot/vmlinuz-3.10.0-1160.el7.x86_64 kernel=/boot/vmlinuz-0-rescue-281810806a454564906c048d496729db
Die Liste enthält alle Kernel, die zur Verwendung konfiguriert sind. Auch hier wird dringend empfohlen, alle nicht standardmäßigen Kernel zu entfernen.
Nicht standardmäßige Kernels mit Yum entfernen
Aufgrund der Sicherheitslücke GRUB2 BootHole kann das Oracle Linux Secure Boot-Shim nur Kernel booten, die von Oracle signiert wurden, und wir können nur die standardmäßigen CentOS-Kernel ersetzen. Dies wirkt sich zwar möglicherweise nicht auf ein System aus, wenn SecureBoot deaktiviert ist. Wenn Sie es später aktivieren, kann es jedoch nicht mehr gebootet werden. Aus diesem Grund wird dringend empfohlen, alle nicht standardmäßigen Kernel zu entfernen, z. B. jeden installierten Kernel, der weder vom base
- noch vom updates
-Repository bereitgestellt wird, einschließlich der CentOSPlus-Kernel.
Hinweis: Überspringen Sie diesen Abschnitt, wenn Ihr System keine nicht standardmäßigen Kernel basierend auf der obigen Beschreibung aufweist. (Versuchen Sie nicht, den Kernel mit
yum
zu entfernen, wenn auf Ihrem System nur ein Kernel installiert ist. Das Entfernen des Kernel-Eintrags des einzigen funktionsfähigen Kernel oder des falschen Kernel kann dazu führen, dass das System nicht gebootet werden kann und ein Booten im Einzelbenutzermodus erforderlich ist, um den fehlerhaften Server zu beheben.)
-
Entfernen Sie alle nicht standardmäßigen Kernel.
sudo yum remove <KERNEL>
Dabei ist
<KERNEL>
der vollständige Paketname, der vonrpm -q kernel
bereitgestellt wird.
Nicht standardmäßige Kernels mit Grubby entfernen
grubby
ist ein Befehlszeilentool zum Aktualisieren und Anzeigen von Informationen zu den Konfigurationsdateien des grub-Bootloaders. Mit diesem Tool kann ein Administrator Kernel deaktivieren, die außerhalb von yum
installiert sind.
Hinweis: Überspringen Sie diesen Abschnitt, wenn Ihr System keine nicht standardmäßigen Kernel basierend auf der Beschreibung im vorherigen Abschnitt enthält. (Versuchen Sie nicht, den Kernel mit
yum
zu entfernen, wenn auf Ihrem System nur ein Kernel installiert ist. Das Entfernen des Kernel-Eintrags des einzigen funktionsfähigen Kernel oder des falschen Kernel kann dazu führen, dass das System nicht gebootet werden kann und ein Booten im Einzelbenutzermodus erforderlich ist, um den fehlerhaften Server zu beheben.)
-
Ruft den Index ab, der jedem der Boot-Einträge des installierten Kernel zugewiesen ist.
sudo grubby --info=ALL | grep -E "^kernel|^index"
Beispielausgabe:
[oracle@centos-7 ~]$ sudo grubby --info=ALL | grep -E "^kernel|^index" index=0 kernel=/boot/vmlinuz-3.10.0-1160.76.1.el7.x86_64 index=1 kernel=/boot/vmlinuz-3.10.0-1160.el7.x86_64 index=2 kernel=/boot/vmlinuz-0-rescue-281810806a454564906c048d496729db index=3
-
Entfernen Sie alle nicht standardmäßigen Boot-Einträge des Kernel.
grubby --remove-kernel=<MENU_INDEX>
Dabei ist
<MENU_INDEX>
der Indexwert, der von der Ausgabe des vorherigen Befehls zurückgegeben wird.
YUM-Konfiguration prüfen
-
Rufen Sie eine Liste der aktivierten Repositorys ab.
sudo yum repolist
Beispielausgabe:
[oracle@centos-7 ~]$ sudo yum repolist Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: ftp.plusline.net * epel: mirror.imt-systems.com * extras: mirror.imt-systems.com * updates: ftp.plusline.net repo id repo name status base/7/x86_64 CentOS-7 - Base 10072 docker-ce-stable/7/x86_64 Docker CE Stable - x86_64 183 epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13738 extras/7/x86_64 CentOS-7 - Extras 515 updates/7/x86_64 CentOS-7 - Updates 4383 zfs/7/x86_64 ZFS on Linux for EL7 - dkms 55 repolist: 28946
-
Aktualisieren Sie alle installierten Pakete.
sudo yum -y upgrade
Nicht-CentOS-Repositorys entfernen oder deaktivieren
Deaktivieren Sie alle Nicht-CentOS-Repositorys. Mit diesem Schritt können Sie Packagekonflikte mit Repositorys von Drittanbietern während des Switches vermeiden. Sie können die Repositorys nach dem Wechsel erneut aktivieren.
-
Deaktivieren Sie Nicht-CentOS-Repositorys.
sudo yum-config-manager --disable <REPOSITORY_NAME>
Ersetzen Sie
<REPOSITORY_NAME>
durch den Repository-Namen eines anderen Repositorys als CentOS, das in Ihrem System aktiviert ist.
Freier Speicherplatz in /var/cache
prüfen
-
Rufen Sie einen Bericht zur Speicherplatznutzung ab.
df -h
Hinweis: In diesem Beispiel befindet sich
/var/cache
unter dem Mount Point/
, und 35G ist verfügbar. Dieses System enthält die vom Projekt centos2ol empfohlene kostenlose 5G.
Nach automatischen Updates in Cron suchen
Es gibt verschiedene Möglichkeiten, wie ein Administrator automatische Updates aktivieren kann. In diesem Abschnitt wird geprüft, ob Cron-Jobs vorhanden sind, die yum
direkt oder mit einem Skript ausführen. Deaktivieren Sie diese Jobs, falls gefunden, um zu verhindern, dass sie während des Switching-Prozesses ausgeführt werden.
-
Cron-Jobs von Root auflisten.
sudo crontab -l
-
Listen Sie die Cron-Jobs des Benutzers auf.
sudo crontab -u oracle -l
-
Listen Sie tägliche, stündliche, wöchentliche und monatliche Cron-Jobs auf.
sudo ls -al /etc/cron*
Prüfen Sie dann die einzelnen Dateien mit
less
oder dem Editor Ihrer Wahl.Hinweis: Dateien, die
yum-cron
in ihrem Namen enthalten, werden vomyum-cron
-Service verwaltet. Die Deaktivierung wird im nächsten Abschnitt des Tutorials behandelt. -
Listen Sie den Inhalt von
/etc/crontab
auf.sudo less /etc/crontab
YUM Cron-Updates deaktivieren
Eine andere Möglichkeit, Updates automatisch einzuspielen, ist yum-cron
.
-
Prüfen Sie das Package
yum-cron
.sudo yum list installed yum-cron
Beispielausgabe:
[oracle@centos-7 ~]$ yum list installed yum-cron Loaded plugins: fastestmirror, langpacks Determining fastest mirrors * base: ftp.plusline.net * epel: ftp.plusline.net * extras: ftp.plusline.net * updates: ftp.rz.uni-frankfurt.de Installed Packages yum-cron.noarch 3.4.3-168.el7.centos @base
Wenn in der Ausgabe das Package
yum-cron
angezeigt wird, das nicht auf dem System installiert ist, fahren Sie mit dem nächsten Abschnitt fort. -
Prüfen Sie den Status des systemd-Service
yum-cron
.sudo systemctl is-enabled yum-cron sudo systemctl is-active yum-cron
-
Deaktivieren Sie den systemd-Service
yum-cron
, wenn er aktiv ist und ausgeführt wird.sudo systemctl stop yum-cron sudo systemctl disable yum-cron
Konvertierungsskript herunterladen und ausführen
-
Laden Sie das Skript
centos2ol.sh
von GitHub herunter.Der einfachste Weg, das Skript zu erhalten, ist curl zu verwenden:
curl -O https://raw.githubusercontent.com/oracle/centos2ol/main/centos2ol.sh
Wenn Git installiert ist, verwenden Sie die Option
clone
, um das Repository aus GitHub abzurufen.git clone https://github.com/oracle/centos2ol.git
-
Führen Sie das Skript
centos2ol.sh
aus.Wenn Sie
git clone
verwendet haben, ändern Sie das aktuelle Arbeitsverzeichnis in das Verzeichnis centos2ol.Prüfen Sie die Verwendungsoptionen für das Skript, indem Sie die Option
-h
übergeben.sudo bash centos2ol.sh -h
Führen Sie nun das Skript aus, und warten Sie, bis es abgeschlossen ist.
sudo bash centos2ol.sh
Im Rahmen des Prozesses wird der Standardkernel auf das neueste Release von Unbreakable Enterprise Kernel (UEK) von Oracle umgestellt, um umfangreiche Performance- und Skalierbarkeitsverbesserungen für den Prozessplaner, die Speicherverwaltung, Dateisysteme und den Netzwerkstack zu ermöglichen. Wir ersetzen auch den vorhandenen CentOS-Kernel durch den entsprechenden Red Hat Compatible Kernel (RHCK), den eine bestimmte Hardware oder Anwendung möglicherweise benötigt, wenn sie strenge Kernelversionsbeschränkungen auferlegt hat.
-
Starten Sie das System neu.
sudo reboot
Systemwechsel zu Oracle Linux bestätigen
-
Stellen Sie erneut über das Terminal eine Verbindung zur Instanz her.
-
Prüfen Sie die Verteilungsversion und die Kernel-Details.
cat /etc/os-release cat /etc/redhat-release uname -r
Zum Projekt centos2ol GitHub beitragen
-
Support erhalten.
Öffnen Sie ein GitHub-Problem für nicht sicherheitsbezogene Fehlerberichte, Fragen oder Verbesserungsanfragen.
Weitere Informationen
Oracle Linux-Dokumentation
Oracle Linux-Schulung
Oracle Linux-Schulungsstation
Oracle Linux mit Leapp upgraden
Weitere Lernressourcen
Sehen Sie sich andere Übungen zu docs.oracle.com/learn an, oder greifen Sie im Oracle Learning YouTube-Channel auf weitere kostenlose Lerninhalte zu. Besuchen Sie außerdem education.oracle.com/learning-explorer, um Oracle Learning Explorer zu werden.
Die Produktdokumentation finden Sie im Oracle Help Center.