Les bogues de systèmes de fichiers suivants s'appliquent à la version Solaris10.
L'opération de rattachement échoue sur les zones marquées, bien qu'elle fonctionne sur les zones (Solaris 10) natives. Le message d'erreur suivant s'affiche :
zone mount operation is invalid for branded zones. Cannot generate the information needed to attach this zone. |
Solution de contournement : utilisez la commande attach - F pour les zones marquées non natives. Pour plus d'informations sur cette procédure, reportez-vous au document System Administration Guide: Solaris Containers-Resource Management and Solaris Zones.
Ne mettez pas le disque principal d'une configuration racine ZFS mise en miroir hors ligne. Le système ne s'exécute pas à partir d'un disque hors ligne dans une configuration de pool racine.
Solution de contournement : si la mise hors ligne ou la déconnexion d'un disque racine mis en miroir est nécessaire pour le remplacer, effectuez l'initialisation à partir d'un autre disque mis en miroir du pool. Choisissez une des méthodes ci-dessous :
Remettez en ligne le disque principal d'un pool racine ZFS mis en miroir. Exemple :
# zpool online rpool c0t1d0s0 |
Si le disque racine a échoué ou doit être remplacé, effectuez l'initialisation à partir d'un autre disque mis en miroir du pool.
Si vous utilisez la commande lucreate pour créer un système de fichiers racine ZFS et que l'environnement linguistique n'est pas en anglais, la création du volume de vidage ZFS échoue. Le message d'erreur suivant s'affiche :
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>. |
Solution de contournement : choisissez l'un des palliatifs suivants :
Incluez le paramètre d'environnement linguistique dans la commande lucreate. Exemple :
# LC_ALL=C lucreate -n zfsUp6 -p rpool |
Si des messages d'échec du périphérique de vidage s'affichent lors d'une opération lucreate avec un environnement linguistique autre qu'anglais, vous pouvez créer le volume de vidage ZFS manuellement. Exemple :
# zfs create -V 2G -b 128k rpool/dump |
Lorsque Solaris Live Upgrade sert à convertir un système de fichiers racine UFS en ZFS, la commande bootlst n'est pas copiée vers l'emplacement qui convient. Cette erreur empêche la commande boot -L de fonctionner. Le message d'erreur suivant s'affiche :
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. |
Solution de contournement : copiez la commande bootlst de /platform/`uname -m`/bootlst vers / pool racine/platform/`uname -m`/bootlst. Si, par exemple, votre pool racine se nomme rpool, entrez la commande suivante :
# cp -p /platform/`uname -m`/bootlst /rpool/platform/`uname -m`/bootlst |
La commande bootadm n'a pas réussi à créer une entrée de menu GRUB au format qui convient à l'initialisation du système en mode 32 bits à l'aide des commandes suivantes :
reboot kernel/unix
reboot -- -r
En conséquence, le système a démarré en mode 64 bits. Le fichier menu.lst défectueux peut apparaître de la manière suivante :
findroot rootfs0 kernel /platform/i86pc/kernel/unix module /platform/i86pc/boot_archive |
Dans l'exemple précédent, la ligne du noyau ne contient pas les informations multiboot et est donc incorrecte. Aucun message d'erreur n'est affiché.
Solution de contournement : modifiez manuellement le fichier /boot/grub/menu.lst et ajoutez les informations suivantes :
title Solaris 10 10/08 findroot rootfs0 kernel /platform/i86pc/multiboot kernel/unix module /platform/i86pc/boot_archive |
Après avoir apporté ces modifications, le système démarre en mode 32 bits.
Les changements modifiant le fichier menu.lst sont conservés après la réinitialisation du système.
Vous pouvez modifier le menu GRUB à l'amorçage en ajoutant l'argument kernel/unix comme indiqué dans l'exemple suivant :
grub edit> kernel /platform/i86pc/multiboot kernel/unix |
Le menu GRUB est alors modifié de façon temporaire ; les changements ne sont pas conservés après la réinitialisation du système.
Pour plus d'informations, reportez-vous à la section Modifying Boot Behavior on x86 Based Systems du System Administration Guide: Basic Administration .
Lorsque vous reliez un lecteur à un pool racine afin de créer un pool racine en miroir, il est possible que zpool attach crée un pool racine illégal si un disque entier est ajouté au pool. Un pool racine ZFS doit être créé avec des tranches de disque, non pas avec des disques entiers. Si vous essayez d'amorcer le système depuis le disque entier ajouté au pool racine copié en miroir, le système ne démarre pas.
Solution de contournement : Procédez comme suit :
Dissociez le disque du pool. Par exemple
# zpool detach rpool c0t2d0 |
Remplacez l'étiquette du disque par une étiquette VTOC (SMI). Exemple :
# 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 |
Ajoutez une tranche de disque dans le pool pour créer un pool racine en miroir. Exemple :
# zpool attach rpool c0t2d0s0 |
Voir également La commande zpool attach ne copie pas les informations bootblock (6668666).
Sur une plate-forme SPARC, un fichier menu.lst doit être créé dans les jeux de données du pool racine. Aucun message d'erreur n'est affiché.
Solution de contournement : créez manuellement le fichier menu.lst. Si, par exemple, vous possédez deux environnements d'amorçage ZFS, zfs1008BE et zfs10082BE, dans le pool racine ZFS, rpool, tapez les commandes suivantes :
# mkdir -p /rpool/boot # cd /rpool/boot # vi menu.lst |
Ajoutez les entrées suivantes au fichier menu.lst :
title zfs1008BE bootfs rpool/ROOT/zfs1008BE title zfs10082BE bootfs rpool/ROOT/zfs10082BE |
Si vous utilisez la commande zpool attach pour ajouter un disque vers un pool racine ZFS, les informations bootblock ne sont pas copiées vers le disque récemment ajouté. Ce problème n'affecte pas les pools racine ZFS copiés en miroir générés par une installation initiale. Le système ne s'amorce pas depuis l'autre disque du pool racine en miroir.
Solution de contournement : choisissez l'un des palliatifs suivants :
Sur un système SPARC, identifiez le disque alternatif et installez les informations d'amorçage. Exemple :
# installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk /dev/rdsk/c0t1d0s0 |
Sur un système x86, identifiez le disque alternatif et installez les informations d'amorçage. Exemple :
# installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c0t1d0s0 |
Des expirations du pilote ata peuvent se produire à l'initialisation du système sur les systèmes multiprocesseur Intel. Ces expirations se produisent lorsque le périphérique racine se trouve sur un disque avec le contrôleur HBA lié au pilote ata existant. Elles entraînent un blocage momentané, un blocage permanent ou une panique du système à l'initialisation du système et des messages similaires aux suivants s'affichent sur la console :
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): |
Solution de contournement : choisissez l'un des palliatifs suivants :
Pour éviter d'affecter les performances, n'appliquez les solutions de contournement 3 et 4 que de manière temporaire, jusqu'à ce que la solution 5 soit envisageable.
Solution de contournement 1 : activez l'interface AHCI dans le BIOS si elle est disponible sur le système. L'activation de ce paramètre requiert la réinstallation du SE Solaris.
Solution de contournement 2 : installez Solaris sur un disque d'un contrôleur n'utilisant pas le pilote ata.
Solution de contournement 3 : désactivez MP dans la configuration du BIOS afin qu'un seul processeur soit actif.
Solution de contournement 4 : désactivez MP dans Solaris afin qu'un seul processeur soit actif. Réalisez les opérations suivantes à partir du menu GRUB (Grand Unified Bootloader, grand chargeur de démarrage unifié) :
Tapez e pour modifier l'entrée Solaris sélectionnée.
Accédez à la ligne commençant par kernel.
Tapez e pour passer au mode d'édition GRUB.
Ajoutez -kd à cette ligne.
Appuyez sur Entrée pour accepter les modifications.
Tapez b pour initialiser l'entrée Solaris sélectionnée.
À l'invite kbmd, tapez la commande ci-dessous :
use_mp/W 0 :c |
Si vous initialisez le système, passez à l'étape 10. Dans le cas contraire, installez le logiciel Solaris 10 5/09.
À la fin de l'installation, réinitialisez le système. Répétez les étapes 1 à 7.
Pour rendre cette modification permanente et éviter d'avoir à répéter les étapes ci-dessus lors des initialisations suivantes, procédez comme suit :
Une fois l'initialisation du système terminée, devenez superutilisateur.
Ouvrez le fichier /etc/system.
Ajoutez la ligne suivante :
set use_mp = 0 |
Solution de contournement 5 : désactivez la mise à jour du microcode. Tapez la commande suivante\~:
# mv /platform/i86pc/ucode /platform/i86pc/ucode.disabled |
Une fois le système actif, vous pouvez appeler manuellement la commande de mise à jour du microcode :
# ucodeadm -u /platform/i86pc/ucode.disabled/intel-ucode.txt |
Ce problème est causé en raison d'un problème avec le mode E/S synchrone est gérée lorsqu'un système de fichiers n'est pas monté. Lorsque plusieurs ZFS doit être existe dans un pool racine ZFS, un récursif instantané risque d'échouer.
cannot create snapshot 'rpool@today': dataset is busy |
Solution de contournement : choisissez l'un des palliatifs suivants :
Solution 1 : montez et démontez les systèmes de fichiers indiqués comme Occupé dans les messages d'erreur.
Solution 2 : Supprimer tout autre ZFS BEs récursif avant de créer un instantané d' un pool racine ZFS.
Si une zone non globale est initialement configurée avec un système de fichiers ZFS à monter avec la sous-commande `add fs et avec la spécification mountpoint=legacy, la tentative d'installation de zone suivante échoue. Le message d'erreur suivant s'affiche :
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 |
Solution de contournement : après avoir installé la zone non globale, ajoutez l'accès à un système de fichiers ZFS.
ZFS est conçu pour être un système de fichiers compatible POSIX et il l'est dans la plupart des cas. Il existe cependant deux exceptions où ZFS ne satisfait pas les tests de compatibilité POSIX :
Mise à jour des statistiques de capacité du système de fichiers ZFS.
Modification des données existantes dans un système de fichiers saturé.
CR connexes :
6362314
6362156
6361650
6343113
6343039
6742203
Si vous exécutez la commande fdisk -E pour modifier un disque utilisé par un pool de stockage ZFS, le pool devient inutilisable et peut entraîner une erreur d'E/S ou une erreur système grave.
Solution de contournement :
N'utilisez pas la commande fdisk pour modifier un disque utilisé par un pool de stockage ZFS. Pour accéder à un disque utilisé par un pool de stockage, utilisez plutôt l'utilitaire format. Les disques utilisés par des systèmes de fichiers ne doivent généralement pas être modifiés.
Les problèmes suivants concernent les produits Brightstor ARCserve Backup.
L'agent client BrightStor ARCserve Backup (BAB) pour UNIX (Solaris) permet de sauvegarder et de restaurer les fichiers ZFS.
Cependant, les ACL ZFS de type NFSv4 ne sont pas conservées. Les attributs et droits d'accès aux fichiers UNIX habituels sont conservés.
Solution de contournement : pour conserver les fichiers ZFS avec les ACL NFSv4, exécutez la commande tar avec l'option -p ou la commande cpio avec l'option -P pour intégrer les fichiers ZFS à un fichier. Ensuite, utilisez BAB pour sauvegarder l'archive tar ou cpio.
Lorsque vous ajoutez le package SUNWzfsg à partir d'une version Solaris 10 5/09 à un système exécutant une version antérieure à Solaris 10 6/06 et sur lequel le patch embedded_su n'est pas installé, les assistants de l'application ZFS Administration ne fonctionnent pas parfaitement.
Si vous tentez d'exécuter l'application ZFS Administration sur un système sur lequel le patch embedded_su n'est pas installé, vous ne pourrez pas consulter la configuration de votre ZFS. Le message d'erreur suivant s'affiche :
/usr/lib/embedded_su: not found |
Solution de contournement :
Ajoutez le patch embedded_su (119574-02) au système exécutant une version antérieure à Solaris 10 6/06.
Si un hôte panique avec l'E/S d'un système de fichiers sur une cible qui est connectée à l'aide de l'initiateur Solaris iSCSI, l'E/S risque de ne pas pouvoir vider ou synchroniser sur le périphérique cible. Cette incapacité à vider ou à synchroniser peut entraîner une corruption du système de fichiers. Aucun message d'erreur n'est affiché.
Solution de contournement :
Utilisez un système de fichier journalisé comme UFS. Dans Solaris 10, la journalisation UFS est activée par défaut. Pour plus d'informations sur UFS, reportez-vous à What’s New in File Systems? du System Administration Guide: Devices and File Systems .
Après la mise à niveau d'un serveur NFSv4 de Solaris Express 6/05 vers Solaris Express 7/05 ou version ultérieure (y compris toutes les versions Solaris 10), des erreurs EACCES peuvent se produire dans les programmes. En outre, des répertoires sont anormalement vides.
Pour ces erreurs, démontez et remontez les systèmes de fichiers clients. Si le démontage échoue, il peut être nécessaire de démonter le système de fichiers concerné à l'aide de la commande umount -f. Vous pouvez également réinitialiser le client.
Les fonctions de la liste de contrôle d'accès NFSv4 (ACL, Access Control List) peuvent ne pas fonctionner correctement si des versions antérieures de Solaris10 sont installées sur les clients et les serveurs du réseau. Les fonctions ACL concernées et les utilitaires de ligne de commande qui ont recours à ces fonctions sont :
acl() ;
facl() ;
getfacl ;
setfacl.
Pour plus d'informations concernant ces fonctions et ces utilitaires, reportez-vous à leurs pages man respectives.
Des erreurs peuvent par exemple être observées sur un réseau avec la configuration suivante :
un client fonctionnant avec le logiciel Solaris10 bêta ;
un serveur fonctionnant avec le logiciel Solaris10.
Le tableau suivant indique les résultats des fonctions ACL dans des configurations client-serveur avec différentes versions de Solaris10.
Opération |
Système d'exploitation client S10 |
Système d'exploitation serveur S10 |
Résultat |
---|---|---|---|
obtenir ACL |
S10 bêta |
Système d'exploitation S10 |
ACL * fabriquée |
obtenir ACL |
Système d'exploitation S10 |
S10 bêta |
fonctionne correctement |
définir ACL |
S10 bêta |
Système d'exploitation S10 |
fonctionne correctement |
définir ACL |
Système d'exploitation S10 |
S10 bêta |
Erreur : EOPNOTSUP |
Solution de contournement : pour que la fonctionnalité ACL NFSv4 fonctionne correctement, effectuez une installation complète du SE Solaris 10 sur le serveur et le client.
Dans la version Solaris10 actuelle, l'implémentation de l'ACL NFSv4 est désormais conforme aux spécifications RFC 3530. Cependant, des erreurs se produisent pour les clients NFSv4 qui fonctionnent avec les versions Solaris10 bêta 2 ou bêta 1. Ces clients ne peuvent pas créer de fichiers sur les serveurs NFSv4 qui fonctionnent avec la version Solaris10 actuelle. Le message d'erreur suivant s'affiche :
NFS getacl failed for server_name: error 9 (RPC: Program/version mismatch) |
Solution de contournement : aucune.
La commande mkfs risque de ne pas réussir à créer un système de fichiers sur les disques présentant une certaine géométrie et une capacité supérieure à 8 Go. La capacité du groupe de cylindres dérivé est trop importante pour le fragment de 1 ko. La grande capacité du groupe de cylindres implique un volume de métadonnées qu'un bloc ne suffit pas à contenir.
Le message d'erreur suivant s'affiche :
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. |
Solution de contournement : utilisez plutôt la commande newfs. Vous pouvez également attribuer une plus grande taille de fragment, telle que 4096, lorsque vous utilisez la commande mkfs.
Le système ne peut pas générer le vidage de la mémoire sur une partition dont la taille est supérieure ou égale à 1 To. Si un périphérique de cette taille se trouve sur un système, la réinitialisation du système à la suite d'une panique peut entraîner ce qui suit :
le système n'enregistre pas le vidage de la mémoire ;
Le message suivant s'affiche :
0% done: 0 pages dumped, compression ratio 0.00, dump failed: error 6 |
Solution de contournement : configurez la taille du périphérique de vidage de votre système de sorte qu'elle soit inférieure à 1 To.