Folgende Dateisystemfehler treten unter Solaris 10 auf.
Nehmen Sie den·primären Datenträger in einer ZFS-Root-Konfiguration mit Datenspiegelung nicht außer Betrieb (offline). Das System bootet nicht von einem Datenträger, der in einer gespiegelten Root-Pool-Konfiguration außer Betrieb genommen wurde.
Problemumgehung: Booten Sie von einem anderen gespiegelten Datenträger im Pool, wenn Sie einen Root-Datenträger zum Auswechseln abtrennen bzw. außer Betrieb nehmen möchten. Wählen Sie eine der folgenden Methoden:
Nehmen Sie den primären Datenträger im gespiegelten ZFS-Root-Pool wieder in Betrieb. Beispiel:
# zpool online rpool c0t1d0s0 |
Booten Sie von einem anderen Datenträger im Pool, wenn der primäre Datenträger ausgefallen ist oder ausgewechselt werden muss.
Wenn Sie mithilfe des Befehls lucreate ein ZFS-Root-Dateisystem erstellen und LOCALE auf eine nichtenglische Sprachumgebung gesetzt ist, schlägt das Erstellen des ZFS-Speicherabzugsbereichs fehl. Daraufhin wird die folgende Fehlermeldung angezeigt:
ERROR: Unable to determine dump device for boot environment <{c1t1d0s0}>. ERROR: Unable to create all required file systems for boot environment <zfsUp6>. ERROR: Cannot make file systems for boot environment <zfsUp6>. |
Abhilfemaßnahme: Wählen Sie eine der folgenden Lösungen:
Geben Sie bei der Verwendung des Befehls lucreate eine Sprachumgebung an. Beispiel:
# LC_ALL=C lucreate -n zfsUp6 -p rpool |
Wenn die Fehlermeldung zum Fehlschlagen des Erstellens des Speicherabzugsbereichs während eines lucreate-Vorgangs in einer nichtenglischen Sprachumgebung ausgegeben wird, können Sie denZFS-Speicherabzugsbereich manuell erstellen. Beispiel:
# zfs create -V 2G -b 128k rpool/dump |
Wenn Sie ein UFS-Root-Dateisystem mithilfe von Solaris Live Upgrade auf ZFS umrüsten, wird der Befehl bootlst nicht in das richtige Verzeichnis kopiert. Deswegen funktioniert der Befehl boot -L dann nicht mehr. Daraufhin wird die folgende Fehlermeldung angezeigt:
Evaluating: boot -L The file just loaded does not appear to be executable. Boot device: /pci@1f,0/pci@1/scsi@8/disk@1,0:a File and args: Can't mount root Error in Fcode execution !!! Evaluating: boot The file just loaded does not appear to be executable. |
Problemumgehung: Kopieren Sie den Befehl bootlst von /platform/`uname -m`/bootlst nach / root pool/platform/`uname -m`/bootlst. Wenn das Root-Pool beispielsweise rpool heißt, müssen Sie den folgenden Befehl eingeben:
# cp -p /platform/`uname -m`/bootlst /rpool/platform/`uname -m`/bootlst |
Der Befehl bootadm kann keinen ordnungsgemäß formatierten GRUB-Menüeintrag erzeugen, wenn ein System mit den folgenden Befehlen im 32-Bit-Modus gebootet wird:
reboot kernel/unix
reboot -- -r
Deswegen bootet das System im 64-Bit-Modus. Die fehlerhafte Datei menu.lst kann wie folgt aussehen:
findroot rootfs0 kernel /platform/i86pc/kernel/unix module /platform/i86pc/boot_archive |
Im vorigen Beispiel enthält die Kernel-Zeile keine Multiboot-Information und ist deswegen falsch. Es wird keine Fehlermeldung angezeigt.
Problemumgehung: Berabeiten Sie die Datei /boot/grub/menu.lst manuell und fügen Sie die folgenden Informationen ein:
title Solaris 10 10/08 findroot rootfs0 kernel /platform/i86pc/multiboot kernel/unix module /platform/i86pc/boot_archive |
Wenn Sie diese Änderungen vorgenommen haben, bootet das System im 32-Bit-Modus.
Die an der Datei menu.lst vorgenommenen Änderungen werden permanent beibehalten und sind auch nach einem Systemneustart wirksam.
Alternativ dazu können Sie das GRUB-Menü zur Boot-Zeit bearbeiten. Fügen Sie dazu das Boot-Argument kernel/unix ein, wie im folgenden Beispiel gezeigt:
grub edit> kernel /platform/i86pc/multiboot kernel/unix |
Änderungen am GRUB-Menü, die zur Boot-Zeit vorgenommen wurden, werden nicht·beibehalten und sind nach einem Systemneustart nicht mehr wirksam.
Weitere Informationen finden Sie unter Modifying Boot Behavior on x86 Based Systems in System Administration Guide: Basic Administration .
Wenn Sie zum Erstellen eines Root-Pools mit Datenspiegelung einen Datenträger an ein Root-Pool anfügen, kann es sein, dass zpool attach ein unzulässiges Root-Pool erstellt, wenn ein gesamter Datenträger zum Pool hinzugefügt wird. Ein ZFS-Root-Pool muss mit Datenträger-Speicherbereichen (Partitionen) erstellt werden. Die Verwendung gesamter Datenträger dafür ist nicht zulässig. Wenn Sie versuchen, das System von dem in das Pool eingefügten gesamten Datenträger zu booten, schlägt dies fehl.
Problemumgehung: Führen Sie die folgenden Schritte aus:
Trennen Sie den Datenträger vom Pool ab. Beispiel:
# zpool detach rpool c0t2d0 |
Ändern Sie das Datenträger-Label auf VTOC (SMI). Beispiel:
# format -e . . . Select disk c0t2d0 format> label [0] SMI Label [1] EFI Label Specify Label type[0]:0 Ready to label disk, continue? yes format> quit |
Fügen Sie einen Datenträger-Speicherbereich wieder in das Pool ein, um ein gespiegeltes Root-Pool zu erstellen. Beispiel:
# zpool attach rpool c0t2d0s0 |
Siehe auch zpool attach kopiert keine bootblock-Informationen (6668666).
Auf SPARC-Plattformen muss im Dataset eines Root-Pools eine menu.lst-Datei erstellt werden. Es wird keine Fehlermeldung angezeigt.
Problemumgehung: Erstellen Sie die Datei menu.lst manuell. Wenn beispielsweise zwei ZFS-Boot-Umgebungen zfs1008BE und zfs10082BE vorhanden sind, müssen Sie im ZFS-Root-Pool rpool die folgenden Befehle eingeben:
# mkdir -p /rpool/boot # cd /rpool/boot # vi menu.lst |
Fügen Sie zur Datei menu.lst die folgenden Einträge hinzu:
title zfs1008BE bootfs rpool/ROOT/zfs1008BE title zfs10082BE bootfs rpool/ROOT/zfs10082BE |
Wenn Sie mithilfe von zpool attach einen Datenträger zu einem ZFS-Root-Pool hinzufügen, werden die bootblock-Informationen nicht auf den neu hinzugefügten Datenträger kopiert. Dieses Problem betrifft keine gespiegelten ZFS-Root-Pools, die mit einer Erstinstallation erstellt werden. Das System bootet in einem gespiegelten Root-Pool nicht von einem alternativen Datenträger.
Abhilfemaßnahme: Wählen Sie eine der folgenden Lösungen:
Auf SPARC-Systemen müssen Sie den alternativen Datenträger identifizieren und die Boot-Informationen installieren. Beispiel:
# installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk /dev/rdsk/c0t1d0s0 |
Auf SPARC-Systemen müssen Sie den alternativen Datenträger identifizieren und die Boot-Informationen installieren. Beispiel:
# installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c0t1d0s0 |
Während des Bootens tritt bei Systemen mit Intel-Multiprozessoren eine Zeitüberschreitung beim ata-Treiber auf. Diese Zeitüberschreitungen treten auf, wenn sich das Root-Gerät auf einem Laufwerk befindet, dessen HBA-Controller an den ata-Legattreiber gebunden ist. Diese Zeitüberschreitungen führen zu einem vorübergehenden Hängen, einem Ausfall von Hardware oder einem Alarmzustand während des Bootens. In diesen Fällen werden Konsolenmeldungen ähnlich den Folgenden angezeigt:
scsi: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0 (ata0): timeout: reset bus, target=0 lun=0 scsi: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0 (ata0): timeout: early timeout, target=0 lun=0 gda: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0/cmdk@0,0 (Disk0): Error for command 'read sector' Error Level: Informational gda: [ID 107833 kern.notice] Sense Key: aborted command gda: [ID 107833 kern.notice] Vendor 'Gen-ATA ' error code: 0x3 gda: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0/cmdk@0,0 (Disk0): Error for command 'read sector' Error Level: Informational gda: [ID 107833 kern.notice] Sense Key: aborted command gda: [ID 107833 kern.notice] Vendor 'Gen-ATA ' error code: 0x3 scsi: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0 (ata0): timeout: abort request, target=0 lun=0 scsi: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0 (ata0): timeout: abort device, target=0 lun=0 scsi: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0 (ata0): timeout: reset target, target=0 lun=0 scsi: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0 (ata0): timeout: reset bus, target=0 lun=0 scsi: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0 (ata0): timeout: early timeout, target=0 lun=0 gda: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0/cmdk@0,0 (Disk0): Error for command 'read sector' Error Level: Informational gda: [ID 107833 kern.notice] Sense Key: aborted command gda: [ID 107833 kern.notice] Vendor 'Gen-ATA ' error code: 0x3 gda: [ID 107833 kern.warning] WARNING: /pci@0,0/pci-ide@1f,2/ide@0/cmdk@0,0 (Disk0): |
Abhilfemaßnahme: Wählen Sie eine der folgenden Lösungen:
Um eine Leistungsverschlechterung zu vermeiden, sollten die Problemumgehungen 3 oder 4 nur vorübergehend angewendet werden, bis Problemumgehung 5 angewendet werden kann.
Problemumgehung 1: Aktivieren Sie AHCI im BIOS, sofern dies auf Ihrem System möglich ist. Das Aktivieren dieser Option erfordert eine Neuinstallation des Betriebssystems Solaris.
Problemumgehung 2: Installieren Sie Solaris auf einer Festplatte mit einem Controller, der den ata-Treiber nicht verwendet.
Abhilfemaßnahme 3: Deaktivieren Sie MP im BIOS-Setup, so dass nur ein Prozessor aktiv ist.
Problemumgehung 4: Deaktivieren Sie MP im Betriebssystem Solaris, so dass nur ein Prozessor aktiv ist. Führen Sie im GRUB-Menü (Grand Unified Bootloader) die folgenden Schritte aus:
Geben Sie e ein, um den gewünschten Solaris-Boot-Eintrag zu bearbeiten.
Springen Sie in die Zeile, die mit "kernel" beginnt.
Geben Sie e ein, um in den GRUB-Bearbeitungsmodus zu schalten.
Hängen Sie -kd an die Zeile an.
Drücken Sie die Eingabetaste, um die Änderung zu übernehmen.
Geben Sie b ein, um den gewünschten Solaris-Eintrag zu booten.
Geben Sie den folgenden Befehl an der kbmd-Eingabeaufforderung ein:
use_mp/W 0 :c |
Wenn Sie das System starten möchten, gehen Sie zu Schritt 10. Ansonsten können Sie nun die Solaris 10 08/08-Software installieren.
Starten Sie das System am Ende der Installation neu. Wiederholen Sie die Schritte 1 bis 7.
Um diese Änderung permanent zu übernehmen, so dass die oben beschriebenen Schritte nicht für nachfolgende Startvorgänge wiederholt werden müssen, führen Sie Folgendes aus:
Melden Sie sich als Superuser an, nachdem das System vollständig hochgefahren ist.
Öffnen Sie die Datei /etc/system.
Fügen Sie die folgende Zeile ein:
set use_mp = 0 |
Problemumgehung 5: Deaktivieren Sie die Microcode-Aktualisierung. Geben Sie folgenden Befehl ein:
# mv /platform/i86pc/ucode /platform/i86pc/ucode.disabled |
Die Microcode-Aktualisierung kann manuell aufgerufen werden, nachdem das System hochgefahren ist:
# ucodeadm -u /platform/i86pc/ucode.disabled/intel-ucode.txt |
Wenn eine nicht-globale Zone anfänglich mit einem ZFS-Dateisystem zum Einhängen mithilfe des Unterbefehls `add fs konfiguriert und darin mountpoint=legacy angegeben wurde, schlägt die anschließende Installation fehl. Folgende Fehlermeldung wird angezeigt:
ERROR: No such file or directory: cannot mount </zones/path/root/usr/local> in non-global zone to install: the source block device or directory </path/local> cannot be accessed |
Problemumgehung: Der Zugriff auf ZFS-Dateisysteme darf erst nach der Installation nicht-globaler Zonen hinzugefügt werden.
ZFS ist ein POSIX-konformes Dateisystem, was auch in den meisten Fällen zutrifft. Es existieren jedoch zwei Randbedingungen, bei denen ZFS POSIX-Konformitätstests nicht besteht:
Aktualisieren von Kapazitätsstatistiken von ZFS-Dateisystemen
Ändern vorhandener Daten mit einem zu 100 Prozent belegten Dateisystem
Zugehörige CRs:
6362314
6362156
6361650
6343113
6343039
6742203
Bei Verwendung des Befehls fdisk -E zum Modifizieren einer Festplatte, die von einem ZFS-Speicherpool genutzt wird, wird das Pool unbrauchbar und kann einen E/A-Fehler bzw. eine Systempanik verursachen.
Abhilfemaßnahme:
Der Befehl fdisk darf nicht zum Modifizieren von Festplatten, die von einem ZFS-Speicherpool genutzt werden, verwendet werden. Wenn Sie Zugriff auf eine Festplatte, die von einem ZFS-Speicherpool genutzt wird, benötigen, sollten Sie dafür das Dienstprogramm format verwenden. Als allgemeine Faustregel gilt, dass Festplatten, die von Dateisystemen genutzt werden, nicht modifiziert werden dürfen.
ImFolgenden werden Probleme mit Brightstor ARCserve Backup beschrieben.
Der BrightStor ARCserve Backup (BAB) Client Agent für UNIX (Solaris) kann zum Erstellen von Sicherungskopien von ZFS-Dateien und Wiederherstellen dieser Dateien verwendet werden.
NFSv4-basierte ZFS-Zugriffssteuerungslisten werden beim Erstellen von Sicherungskopien jedoch nicht mitgesichert, sondern die herkömmlichen UNIX-Dateiberechtigungen und -Attribute beibehalten.
Problemumgehung: Wenn Sie Sicherungskopien von ZFS-Dateien mit NFSv4-Zugriffssteuerungslisten erstellen wollen, müssen Sie den Befehl tar mit der Option -p bzw. den Befehl cpio mit der Option -P verwenden. Anschließend können Sie mit BAB von diesem erstellten tar- bzw. cpio-Archiv eine Sicherungskopie anlegen.
Wenn Sie das Package SUNWzfsg aus Solaris 10 08/08 auf einem System installieren, auf dem eine Solaris-Version vor Release 10 6/06 ohne das Patch embedded_su läuft, sind die ZFS-Administrationsassistenten nicht vollständig funktionsfähig.
Bei Ausführung eines ZFS-Administrationsassistenten auf Systemen ohne das Patch embedded_su wird nur die ZFS-Konfiguration angezeigt. Daraufhin wird die folgende Fehlermeldung angezeigt:
/usr/lib/embedded_su: not found |
Abhilfemaßnahme:
Installieren Sie auf dem System, auf dem eine Solaris-Version vor 10 6/06 läuft, das Patch embedded_su patch (119574-02).
Triit auf einem Host eine Systempanik auf, wenn eine E/A-Operation des Dateisystems mit einem über den Solaris iSCSI Software Initiator angeschlossenen Zielgerät abläuft, kann es sein, dass die E/A-Operation den Datenpuffer zum Zielgerät nicht mehr leeren bzw. synchronisieren kann. Dadurch kann das Dateisystem beschädigt werden. Es wird keine Fehlermeldung angezeigt.
Abhilfemaßnahme:
Nutzen Sie ein Journaling-Dateisystem wie z. B. UFS. Ab Solaris 10 ist die UFS-Protokollierung standardmäßig aktiviert. Weitere Informationen zu UFS finden Sie im Abschnitt What’s New in File Systems? in System Administration Guide: Devices and File Systems.
Nach dem Upgrade eines NFSv4-Servers von Solaris Express 6/05 auf Solaris Express 7/05 oder neuere Versionen (einschließl. aller Solaris 10-Updates), können in Programmen EACCES-Fehler auftreten. Weiterhin werden Verzeichnisse möglicherweise fälschlicherweise als leer angezeigt.
Um diese Fehler zu vermeiden, hängen Sie die Client-Dateisysteme aus und wieder ein. Schlägt das Aushängen fehl, müssen Sie das Aushängen des Dateisystems möglicherweise durch Verwendung von umount -f erzwingen. Alternativ können Sie den Client auch neu starten.
Funktionen von NFSv4-Zugriffssteuerungslisten (ACL) funktionieren möglicherweise fehlerhaft, wenn Clients und Server im Netzwerk mit unterschiedlichen vorherigen Versionen von Solaris 10 installiert sind. Die betroffenen ACL-Funktionen und Befehlszeilendienstprogramme, die diese Funktionen verwenden, sind folgende:
acl()
facl()
getfacl
setfacl
Weitere Informationen über diese Funktionen und Dienstprogramme finden Sie in deren jeweiligen Man Pages.
Beispielsweise können in einem Netzwerk mit der folgenden Konfiguration möglicherweise Fehler beobachtet werden:
Ein Client, auf dem Solaris 10-Betasoftware ausgeführt wird
Ein Server, auf dem Solaris 10-Software ausgeführt wird
Die folgende Tabelle illustriert die Ergebnisse der ACL-Funktionen in Client/Server-Konfigurationen mit unterschiedlichen Solaris 10-Versionen.
Vorgang |
Client S10 BS |
Server S10 BS |
Ergebnis |
---|---|---|---|
get ACL |
S10 Beta |
S10 BS |
erzeugte ACL* |
get ACL |
S10 BS |
S10 Beta |
funktioniert einwandfrei |
set ACL |
S10 Beta |
S10 BS |
funktioniert einwandfrei |
set ACL |
S10 BS |
S10 Beta |
Fehler: EOPNOTSUP |
Problemumgehung: Damit die NFSv4-ACL-Funktionen ordnungsgemäß funktionieren, führen Sie auf Server und Client eine vollständige Installation von Solaris 10-BS durch.
In der aktuellen Solaris 10-Version ist die Solaris-Implementierung von NFSv4-ACLs jetzt mit den Spezifikationen von RFC 3530 konform. Es treten jedoch Fehler bei NFSv4-Clients auf, die die Beta 2- oder Beta1-Versionen von Solaris 10 verwenden. Diese Clients können auf den NFSv4-Servern, die die aktuelle Version von Solaris 10 verwenden, keine Dateien erstellen. Daraufhin wird die folgende Fehlermeldung angezeigt:
NFS getacl failed for server_name: error 9 (RPC: Program/version mismatch) |
Problemumgehung: Keine.
Auf Festplatten mit einer bestimmten Plattengeometrie, die größer als 8 GB sind, können unter Umständen keine Dateisysteme mit dem Befehl mkfs angelegt werden. Die abgeleitete Zylindergruppe ist zu groß für das 1-KB-Fragment. Die zusätzlichen Metadaten passen daher nicht mehr in einen Block.
Daraufhin wird die folgende Fehlermeldung angezeigt:
With 15625 sectors per cylinder, minimum cylinders per group is 16. This requires the fragment size to be changed from 1024 to 4096. Please re-run mkfs with corrected parameters. |
Problemumgehung: Verwenden Sie stattdessen den Befehl newfs. Alternativ dazu können Sie auch mkfs mit einer höheren Fragmentgröße (z. B. 4096) verwenden.
Das System kann auf einer Partition, die 1 TB groß oder größer ist, keinen Speicherabzug erzeugen. Wenn sich solch ein Gerät in einem System befindet, tritt möglicherweise nach einem Systemstart nach einer vorausgegangenen Systempanik Folgendes auf:
Das System speichert den Speicherabzug nicht.
Die folgende Meldung wird angezeigt:
0% done: 0 pages dumped, compression ratio 0.00, dump failed: error 6 |
Problemumgehung: Konfigurieren Sie die Größe Ihres Speicherabzuggeräts auf unter 1 TB.
Wenn Sie den Befehl smosservice zum Hinzufügen von BS-Diensten zu einem UFS-Dateisystem verwenden, wird eine Meldung angezeigt, dass nicht genügend Festplattenspeicher zur Verfügung steht. Dieser Fehler tritt spezifisch bei UFS-Dateisystemen auf, die sich auf Festplatten mit EFI-Bezeichnung befinden.
Problemumgehung: Das Problem lässt sich wie folgt umgehen:
Verwenden Sie die SMI VTOC-Festplattenbezeichnung.
Erstellen sie das Dateisystem neu.
Führen Sie den Befehl smosservice erneut aus.