Les systèmes SPARC et les systèmes x86 utilisent le nouveau type d'initialisation à l'aide d'une archive d'initialisation, qui est une image de système de fichiers contenant les fichiers requis pour l'initialisation. Lorsque vous initialisez un système à partir d'un système de fichiers racine ZFS, les noms de chemin de l'archive d'initialisation et du fichier noyau sont résolus dans le système de fichiers racine sélectionné pour l'initialisation.
Lorsque vous réinitialisez un système en vue d'une installation, un disque RAM est utilisé pour le système de fichiers racine tout au long du processus d'installation.
L'initialisation à partir d'un système de fichiers ZFS diffère de celle à partir d'un système de fichiers UFS car avec ZFS, un spécificateur de périphérique d'initialisation identifie un pool de stockage par opposition à un seul système de fichiers racine. Un pool de stockage peut contenir plusieurs jeux de données d'initialisation ou systèmes de fichiers racine ZFS. Lorsque vous initialisez un système à partir de ZFS, vous devez spécifier un périphérique d'initialisation et un système de fichiers racine contenu dans le pool qui a été identifié par le périphérique d'initialisation.
Par défaut, le jeu de données sélectionné pour l'initialisation est identifié par la propriété bootfs du pool. Cette sélection par défaut peut être remplacée en spécifiant un jeu de données d'initialisation alternatif dans la commande boot -Z.
Vous pouvez créer un pool racine ZFS mis en miroir lors de l'installation du système ou pouvez connecter un disque pour créer un pool racine ZFS mis en miroir après l'installation. Pour de plus amples informations, consultez les références suivantes :
Consultez les problèmes connus suivants relatifs aux pools racine ZFS mis en miroir :
CR 6668666 : vous devez installer les informations d'initialisation sur les disques supplémentaires que vous connectez, à l'aide de la commande installboot ou de la commande installgrub pour activer l'initialisation sur les autres disques du miroir. Si vous créez un pool racine ZFS mis en miroir par la méthode d'installation initiale, cette étape n'est pas nécessaire. Par exemple, si c0t1d0s0 est le deuxième disque ajouté au miroir, la syntaxe de la commande installboot ou la commande installgrub serait comme suit :
SPARC :
sparc# installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk /dev/rdsk/c0t1d0s0 |
x86 :
x86# installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c0t1d0s0 |
Vous pouvez effectuer l'initialisation à partir de divers périphériques d'un pool racine ZFS mis en miroir. Selon la configuration matérielle, la mise à jour de la PROM ou du BIOS peut s'avérer nécessaire pour spécifier un périphérique d'initialisation différent.
Vous pouvez par exemple effectuer l'initialisation à partir de l'un des deux disques (c1t0d0s0 ou c1t1d0s0) du pool suivant.
# zpool status pool: rpool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM rpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t0d0s0 ONLINE 0 0 0 c1t1d0s0 ONLINE 0 0 0 |
SPARC : entrez le disque de rechange à l'invite ok.
ok boot /pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/disk@0 |
Une fois le système réinitialisé, confirmez le périphérique d'initialisation actif. Exemple :
SPARC# prtconf -vp | grep bootpath bootpath: '/pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/disk@0,0:a' |
x86 : sélectionnez un autre disque dans le pool ZFS racine mis en miroir à partir du menu BIOS correspondant.
Utilisez ensuite une syntaxe semblable à la syntaxe suivante pour confirmer l'initialisation à partir du disque de rechange :
x86# prtconf -v|sed -n '/bootpath/,/value/p' name='bootpath' type=string items=1 value='/pci@0,0/pci8086,25f8@4/pci108e,286@0/disk@0,0:a' |
Sur un système SPARC avec environnements d'initialisation ZFS multiples, vous pouvez initialiser à partir de tout environnement d'initialisation en utilisant la commande luactivate.
Au cours de l'installation du SE Solaris et de la procédure Oracle Solaris Live Upgrade, le système de fichiers racine ZFS est automatiquement désigné avec la propriété bootfs.
Un pool peut contenir plusieurs jeux de données d'initialisation. Par défaut, l'entrée du jeu de données d'initialisation figurant dans le fichier /nom-du-pool/boot/menu.lst est identifiée par la propriété bootfs du pool. Cependant, une entrée menu.lst peut contenir une commande bootfs qui spécifie un jeu de données alternatif du pool. Le fichier menu.lst peut ainsi contenir les entrées de plusieurs systèmes de fichiers racine du pool.
Lorsqu'un système est installé avec un système de fichiers racine ZFS ou est migré vers un système de fichiers racine ZFS, une entrée du type suivant est ajoutée au fichier menu.lst :
title zfsBE bootfs rpool/ROOT/zfsBE title zfs2BE bootfs rpool/ROOT/zfs2BE |
Lorsqu'un nouvel environnement d'initialisation est créé, le fichier menu.lst est mis à jour automatiquement.
Sur un système SPARC, deux nouvelles options d'initialisation sont disponibles :
Une fois l'environnement d'initialisation activé, vous pouvez utiliser la commande d'initialisation -L pour afficher une liste de jeux de données d'initialisation contenus dans un pool ZFS. Vous pouvez ensuite sélectionner un des jeux de données d'initialisation de la liste. Des instructions détaillées permettant d'initialiser ce jeu de données s'affichent. Vous pouvez initialiser le jeu de données sélectionné en suivant ces instructions.
Vous pouvez utiliser la commande -Z dataset pour initialiser un jeu de données ZFS spécifique.
Si vous disposez de plusieurs environnements d'initialisation ZFS dans un pool de stockage ZFS situé sur le périphérique d'initialisation de votre système, vous pouvez utiliser la commande luactivate pour spécifier un environnement d'initialisation par défaut.
Par exemple, les environnements d'initialisation ZFS suivants sont disponibles comme décrit par la sortie de lustatus :
# lustatus Boot Environment Is Active Active Can Copy Name Complete Now On Reboot Delete Status -------------------------- -------- ------ --------- ------ ---------- zfsBE yes no no yes - zfs2BE yes yes yes no - |
Si votre système SPARC comporte plusieurs environnements d'initialisation ZFS, vous pouvez également utiliser la commande boot -L pour initialiser le système à partir d'un autre environnement d'initialisation que celui par défaut. Cependant, un environnement d'initialisation démarrant à partir d'une session boot -L n'est pas redéfini en tant qu'environnement d'initialisation par défaut et la propriété bootfs n'est pas mise à jour. Si vous souhaitez qu'un environnement d'initialisation démarre par défaut à partir d'une session boot -L, vous devez activer ce dernier avec la commande luactivate.
Exemple :
ok boot -L Rebooting with command: boot -L Boot device: /pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/disk@0 File and args: -L 1 zfsBE 2 zfs2BE Select environment to boot: [ 1 - 2 ]: 1 To boot the selected entry, invoke: boot [<root-device>] -Z rpool/ROOT/zfsBE Program terminated ok boot -Z rpool/ROOT/zfsBE |
Vous pouvez initialiser un système SPARC à partir de l'archive de secours située dans /platform/`uname -i`/failsafe, comme suit .
ok boot -F failsafe |
Pour initialiser une archive de secours à partir d'un jeu de données d'initialisation ZFS donné, employez une syntaxe du type suivant :
ok boot -Z rpool/ROOT/zfsBE -F failsafe |
Les entrées suivantes sont ajoutées au fichier /pool-name /boot/grub/menu.lst au cours du processus d'installation du SE Solaris ou de l'opération Oracle Solaris Live Upgrade pour initialiser ZFS automatiquement :
title Solaris 10 9/10 X86 findroot (rootfs0,0,a) kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS module /platform/i86pc/boot_archive title Solaris failsafe findroot (rootfs0,0,a) kernel /boot/multiboot kernel/unix -s -B console=ttya module /boot/x86.miniroot-safe |
Si le périphérique identifié par GRUB comme périphérique d'initialisation contient un pool de stockage ZFS, le fichier menu.lst est utilisé pour créer le menu GRUB.
Sur un système x86 contenant plusieurs environnements d'initialisation ZFS, vous pouvez sélectionner un environnement d'initialisation à partir du menu GRUB. Si le système de fichiers racine correspondant à cette entrée de menu est un jeu de données ZFS, l'option suivante est ajoutée:
-B $ZFS-BOOTFS |
Lorsqu'un système s'initialise à partir d'un système de fichiers ZFS, le périphérique racine est spécifié par le paramètre d'initialisation -B $ZFS-BOOTFS sur la ligne kernel ou module de l'entrée du menu GRUB. Cette valeur de paramètre, tout comme tous les paramètres spécifiés par l'option -B, est transmise par GRUB au noyau. Exemple :
title Solaris 10 9/10 X86 findroot (rootfs0,0,a) kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS module /platform/i86pc/boot_archive title Solaris failsafe findroot (rootfs0,0,a) kernel /boot/multiboot kernel/unix -s -B console=ttya module /boot/x86.miniroot-safe |
L'archive x86 de secours est /boot/x86.miniroot-safe et peut être initialisée en sélectionnant l'entrée "Solaris failsafe" dans le menu GRUB. Exemple :
title Solaris failsafe findroot (rootfs0,0,a) kernel /boot/multiboot kernel/unix -s -B console=ttya module /boot/x86.miniroot-safe |
Le meilleur moyen de changer d'environnement d'initialisation actif est d'utiliser la commande luactivate. En cas d'échec de l'initialisation de l'environnement actif, qu'il soit dû à un correctif défectueux ou à une erreur de configuration, le seul moyen d'initialiser à partir d'un environnement différent consiste à le sélectionner lors de l'initialisation. Vous pouvez sélectionner un autre environnement d'initialisation à partir du menu GRUB sur un système x86 ou en effectuant une initialisation explicite à partir du PROM sur un système SPARC.
Étant donné la présence d'un bogue dans la fonctionnalité Oracle Solaris Live Upgrade de Solaris 10 10/08, il se peut que l'environnement d'initialisation inactif ne puisse pas s'initialiser. Ce problème est lié à la présence d'un point de montage non valide dans les jeux de données ZFS ou dans le jeu de données ZFS de zone de l'environnement d'initialisation. Le même bogue empêche également le montage de l'environnement d'initialisation s'il dispose d'un jeu de données /var distinct.
Si le jeu de données d'une zone a un point de montage non valide, le point de montage peut être corrigé en procédant comme suit.
Initialisez le système à partir d'une archive de secours.
Importez le pool.
Exemple :
# zpool import rpool |
Vérifiez qu'elle ne contient aucun point de montage temporaire erroné.
Exemple :
# zfs list -r -o name,mountpoint rpool/ROOT/s10u6 NAME MOUNTPOINT rpool/ROOT/s10u6 /.alt.tmp.b-VP.mnt/ rpool/ROOT/s10u6/zones /.alt.tmp.b-VP.mnt//zones rpool/ROOT/s10u6/zones/zonerootA /.alt.tmp.b-VP.mnt/zones/zonerootA |
Le point de montage pour l'environnement d'initialisation racine (rpool/ROOT/s10u6) doit être /.
Si l'initialisation échoue à cause de problèmes de montage /var, recherchez un point de montage temporaire erroné similaire pour le jeu de données /var.
Réinitialisez les points de montage pour l'environnement d'initialisation ZFS et ses jeux de données.
Exemple :
# zfs inherit -r mountpoint rpool/ROOT/s10u6 # zfs set mountpoint=/ rpool/ROOT/s10u6 |
Redémarrez le système.
Lorsque vous pouvez initialiser un environnement d'initialisation spécifique, soit par le biais du menu GRUB, soit à l'invite OpenBoot PROM, sélectionnez l'environnement d'initialisation dont les points de montage viennent d'être corrigés.
Suivez la procédure suivante si vous devez initialiser le système pour pouvoir récupérer un mot de passe racine perdu ou tout problème similaire.
Vous devez démarrer en mode de secours ou en mode d'initialisation à partir d'autres média en fonction de la gravité de l'erreur. En règle générale, vous pouvez effectuer une initialisation en mode de secours pour récupérer un mot de passe racine perdu ou inconnu.
Initialisation d'un système de fichiers ZFS en mode de secours
Initialisation d'un système de fichiers ZFS à partir d'un autre média
Si vous devez récupérer un pool racine ou un instantané de pool racine, reportez-vous à la section Restauration du pool racine ZFS ou des instantanés du pool racine.
Effectuez une initialisation en mode de secours.
Sur un système SPARC :
ok boot -F failsafe |
Pour les systèmes x86, sélectionnez le mode de secours à partir de l'invite GRUB.
Lorsque vous y êtes invité, montez l'environnement d'exécution ZFS sur le répertoire /a :
. . . ROOT/zfsBE was found on rpool. Do you wish to have it mounted read-write on /a? [y,n,?] y mounting rpool on /a Starting shell. |
Accédez au répertoire /a/etc.
# cd /a/etc |
Définissez le type TERM, le cas échéant.
# TERM=vt100 # export TERM |
Corrigez le fichier passwd ou shadow.
# vi shadow |
Redémarrez le système.
# init 6 |
Si un problème empêche le système de s'initialiser correctement ou si tout autre problème grave se produit, vous devez effectuer une initialisation à partir d'un serveur d'installation sur le réseau ou à partir d'un CD-ROM d'installation Solaris, importer le pool racine, monter l'environnement d'initialisation ZFS et tenter de résoudre le problème.
Initialisez le système à partir d'un CD d'installation ou à partir du réseau.
SPARC :
ok boot cdrom -s ok boot net -s |
Si vous n'utilisez pas l'option -s, vous devrez quitter le programme d'installation.
x86 : initialisez le système à partir d'un réseau ou d'un CD en local.
Importez le pool racine et spécifiez un autre point de montage. Exemple :
# zpool import -R /a rpool |
Montez l'environnement d'initialisation ZFS. Exemple :
# zfs mount rpool/ROOT/zfsBE |
Accédez à l'environnement d'initialisation ZFS à partir du répertoire /a.
# cd /a |
Redémarrez le système.
# init 6 |