Wenn ein Oracle Solaris 11-System nicht mehr gebootet werden kann, müssen Sie wahrscheinlich einen Recovery-Bootvorgang durchführen. Sie können von dem Installationsdatenträger booten oder können eine Backup-BU booten.
Wenn Sie ein vollständiges System-Recovery (Bare Metal Recovery) durchführen müssen, lesen Sie How to Create a Recovery Archive in Using Unified Archives for System Recovery and Cloning in Oracle Solaris 11.2 .
Die folgenden Fehler- und Recovery-Szenarios sind ähnlich wie in früheren Releases:
Mit dem Befehl boot –a können Sie ein Problem in der Datei /etc/system umgehen. Bei der entsprechenden Aufforderung verwenden Sie eine Syntax wie die Folgende:
Name of system file [/etc/system]: /dev/null
Drücken Sie bei den anderen Eingabeaufforderungen die Eingabetaste nach Bedarf.
Eine Backup-BU wird automatisch bei den meisten pkg update-Vorgängen erstellt. Mit dieser Funktion können Sie wieder mit einer früheren BU booten, falls es während des Imageupdateprozesses zu Fehlern kommt. Sie sollten eine Backup-BU erstellen, bevor Sie eine Änderung an der Systemkonfiguration vornehmen.
# beadm create solaris-backup # beadm list BE Active Mountpoint Space Policy Created -- ------ ---------- ----- ------ ------- solaris R - 4.01G static 2013-02-08 16:53 solaris-backup N / 47.95M static 2013-02-11 10:48
In So wird von einer Backup-BU für ein Recovery gebootet werden die einzelnen Schritte beim Booten aus einer Backup-BU beschrieben.
Booten Sie von dem Installationsdatenträger oder von einem Installationsserver über das Netzwerk für ein Recovery nach einem Problem, das das Booten des Systems verhindert, oder für ein Recovery bei einem verlorenen root-Passwort.
Booten Sie ein System im Einzelbenutzermodus, um ein geringfügiges Problem zu lösen, wie die Korrektur des Root-Shelleintrags in der Datei /etc/passwd oder den Wechsel eines NIS-Servers.
Wenn ein Bootkonfigurationsproblem gelöst werden muss, umfasst dies im Allgemeinen das Importieren des Root-Pools, das Mounten der BU und die Behebung des Problems, wie die Neuinstallation eines beschädigten x86-Bootladeprogramms.
Das Booten des Failsafe-Archivs wird bei SPARC- und x86-Plattformen nicht mehr unterstützt. Wenn möglich verwenden Sie aktuelle Backup-BUs zum Recovery. BUs sind bootfähige Instanzen des Oracle Solaris-Images, plus eventuellen anderen Anwendungssoftwarepackages, die in diesem Image installiert sind. Mehrere BUs reduzieren das Risiko, wenn Software aktualisiert wird, weil die Backup-BU die ursprüngliche BU erhält.
Sie können eine neue BU basierend auf einer aktiven oder inaktiven Bootumgebung erstellen. Sie können eine neue BU auch basierend auf einem Klon der ursprünglichen BU erstellen. Ein Klon kopiert das Root-Dataset und alle Daten hierarchisch unter dem Haupt-Root-Dataset der ursprünglichen BU. Siehe Creating and Administering Oracle Solaris 11.2 Boot Environments .
Wenn das System nicht von der aktiven BU bootet, wählen Sie eine Backup-BU, von der gebootet werden soll.
ok boot -L
Boot device: /pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/disk@0,0:a File and args: -L 1 Oracle Solaris 11.2 SPARC 2 solaris-backup Select environment to boot: [ 1 - 2 ]: 2
In der obigen Ausgabe ist die aktive BU Oracle Solaris 11.2 SPARC, die wahrscheinlich nicht mit dem tatsächlichen BU-Namen übereinstimmt, jedoch die aktuelle BU darstellt.
Nachdem Sie die BU gewählt haben, von der gebootet werden soll, identifizieren Sie den Bootpfad auf dem Bildschirm, und geben Sie diese Informationen bei der Eingabeaufforderung ein.
To boot the selected entry, invoke: boot [<root-device>] -Z rpool/ROOT/solaris-backup Program terminated {0} ok boot -Z rpool/ROOT/solaris-backup
Wenn das System nicht bootet, prüfen Sie die zusätzlichen Boot-Recovery-Schritte in So booten Sie ein System zum Recovery.
Wenn das System nicht von der Backup-BU bootet, prüfen Sie die zusätzlichen Boot-Recovery-Schritte in So booten Sie ein System zum Recovery.
x86: Live Media – Booten Sie von dem Installationsdatenträger, und verwenden Sie ein GNOME-Terminal für die Wiederherstellungsprozedur.
SPARC: Textbasierte Installation – Booten Sie von dem Installationsdatenträger oder aus dem Netzwerk, und wählen Sie die Option 3 Shell aus dem Bildschirm der textbasierten Installation.
x86: Textbasierte Installation – Wählen Sie im GRUB-Menü den Booteintrag Textbasiertes Installationsprogramm und Befehlszeile, und wählen Sie dann die Option 3 Shell aus dem Bildschirm des textbasierten Installationsprogramms.
SPARC: Automatische Installation – Verwenden Sie den folgenden Befehl, um direkt aus einem Installationsmenü zu booten, mit dem Sie eine Shell beenden können.
ok boot net:dhcp
x86: Automatische Installation – Das Booten aus einem Installationsserver in dem Netzwerk erfordert einen PXE-Boot. Wählen Sie den Eintrag Textbasiertes Installationsprogramm und Befehlszeile aus dem GRUB-Menü. Danach wählen Sie die Option 3 Shell aus dem Bildschirm der textbasierten Installation.
Beispiel: Wählen Sie die Option 3 Shell nach dem Booten des Systems.
1 Install Oracle Solaris 2 Install Additional Drivers 3 Shell 4 Terminal type (currently xterm) 5 Reboot Please enter a number [1]: 3 To return to the main menu, exit the shell #
Lösen Sie das Problem einer ungültigen Root-Shell, indem Sie das System im Einzelbenutzermodus booten und den Shell-Eintrag in der Datei /etc/passwd korrigieren.
Bearbeiten Sie bei einem x86-basierten System den gewählten Booteintrag in dem GRUB-Menü, und fügen Sie dann das –s-Kernel-Argument am Ende der Zeile $kernel hinzu.
Bei einem SPARC-basierten System fahren Sie das System herunter und booten im Einzelbenutzermodus. Nachdem Sie sich als Root-Benutzer angemeldet haben, bearbeiten Sie die Datei /etc/passwd und korrigieren den Root-Shelleintrag.
# init 0 ok boot -s Boot device: /pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/disk@0,0:a ... SunOS Release 5.11 Version 11.2 64-bit Copyright (c) 1983, 2013, Oracle and/or its affiliates. All rights reserved. Booting to milestone "milestone/single-user:default". Hostname: systema.domain Requesting System Maintenance Mode SINGLE USER MODE Enter user name for system maintenance (control-d to bypass): root Enter root password (control-d to bypass): xxxxxxx single-user privilege assigned to root on /dev/console. Entering System Maintenance Mode Aug 3 15:46:21 su: 'su root' succeeded for root on /dev/console Oracle Corporation SunOS 5.11 11.2 July 2013 su: No shell /usr/bin/mybash. Trying fallback shell /sbin/sh. root@systema.domain:~# TERM =vt100; export TERM root@systema.domain:~# vi /etc/passwd root@systema.domian:~# <Press control-d> logout svc.startd: Returning to milestone all.
Lösen Sie das Problem eines beschädigten Bootladeprogramms.
Als Erstes booten Sie von dem Datenträger oder aus dem Netzwerk mit einer der in Schritt 1 aufgeführten Bootmethoden. Danach importieren Sie den Root-Pool.
# zpool import -f rpool
Danach installieren Sie das Bootladeprogramm wie folgt neu:
# bootadm install-bootloader -f -P rpool
wobei –f die Installation des Bootladeprogramms erzwingt und Prüfungen im Zusammenhang mit einem nicht erfolgten Downgrade der Version des Bootladeprogramms im System umgeht. Die Option –P gibt den Root-Pool an.
Beenden Sie den Vorgang, und rebooten Sie das System.
# exit 1 Install Oracle Solaris 2 Install Additional Drivers 3 Shell 4 Terminal type (currently sun-color) 5 Reboot Please enter a number [1]: 5
Vergewissern Sie sich, dass das System ordnungsgemäß bootet.
Auflösen eines unbekannten Root-Kennwortes, das Sie an der Anmeldung bei dem System hindert.
Als Erstes müssen Sie von dem Datenträger oder aus dem Netzwerk booten, indem Sie eine der in Schritt 1 aufgeführten Bootmethoden verwenden. Danach importieren Sie den Root-Pool (rpool) und hängen die BU ein, um den Root-Kennworteintrag zu entfernen. Dieser Prozess ist bei SPARC- und x86-Plattformen identisch.
# zpool import -f rpool # beadm list be_find_current_be: failed to find current BE name be_find_current_be: failed to find current BE name BE Active Mountpoint Space Policy Created -- ------ ---------- ----- ------ ------- solaris - - 11.45M static 2011-10-22 00:30 solaris-2 R - 12.69G static 2011-10-21 21:04 # mkdir /a # beadm mount solaris-2 /a # TERM=vt100 # export TERM # cd /a/etc # vi shadow <Carefully remove the unknown password> # cd / # beadm umount solaris-2 # halt
In diesem Schritt wird davon ausgegangen, dass Sie ein unbekanntes Root-Kennwort im vorherigen Schritt entfernt haben.
ok boot -s Boot device: /pci@780/pci@0/pci@9/scsi@0/disk@0,0:a File and args: -s SunOS Release 5.11 Version 11.2 64-bit Copyright (c) 1983, 2012, Oracle and/or its affiliates. All rights reserved. Booting to milestone "milestone/single-user:default". Hostname: systema.domain Requesting System Maintenance Mode SINGLE USER MODE Enter user name for system maintenance (control-d to bypass): root Enter root password (control-d to bypass): <Press return> single-user privilege assigned to root on /dev/console. Entering System Maintenance Mode . . . root@sysadma.domain:~# passwd -r files root New Password: xxxxxx Re-enter new Password: xxxxxx passwd: password successfully changed for root root@systema.central:~# <Press control-d> logout svc.startd: Returning to milestone all.