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:

Voraussetzung

Prüfen Sie die Version CentOS

  1. Öffnen Sie ein Terminal, und stellen Sie eine Verbindung zur Instanz her.

  2. 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

  1. 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 aller centosplus-Kernel.

  2. 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.)

  1. Entfernen Sie alle nicht standardmäßigen Kernel.

    sudo yum remove <KERNEL>
    

    Dabei ist <KERNEL> der vollständige Paketname, der von rpm -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.)

  1. 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
    
  2. 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

  1. 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
    
  2. 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.

  1. 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

  1. 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.

  1. Cron-Jobs von Root auflisten.

    sudo crontab -l
    
  2. Listen Sie die Cron-Jobs des Benutzers auf.

    sudo crontab -u oracle -l
    
  3. 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 vom yum-cron-Service verwaltet. Die Deaktivierung wird im nächsten Abschnitt des Tutorials behandelt.

  4. 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.

  1. 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.

  2. Prüfen Sie den Status des systemd-Service yum-cron.

    sudo systemctl is-enabled yum-cron
    sudo systemctl is-active yum-cron
    
  3. 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

  1. 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
    
  2. 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.

  3. Starten Sie das System neu.

    sudo reboot
    

Systemwechsel zu Oracle Linux bestätigen

  1. Stellen Sie erneut über das Terminal eine Verbindung zur Instanz her.

  2. Prüfen Sie die Verteilungsversion und die Kernel-Details.

    cat /etc/os-release
    cat /etc/redhat-release
    uname -r
    

Zum Projekt centos2ol GitHub beitragen

  1. 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.