Os sistemas baseados em SPARC e em x86 usam o novo estilo de inicialização com um arquivo de inicialização, que é a imagem de um sistema de arquivos que contém os arquivos necessários para a inicialização. Ao inicializar de um sistema de arquivos raiz ZFS, os nomes de caminho do arquivo de inicialização e do arquivo de kernel são resolvidos no sistema de arquivos raiz selecionado para a inicialização.
Quando um sistema é inicializado para instalação, um disco RAM é utilizado para o sistema de arquivos raiz durante todo o processo de instalação.
A inicialização de um sistema de arquivos ZFS é diferente da inicialização de um sistema de arquivos UFS porque, com o ZFS, o especificador de dispositivos de inicialização identifica um conjunto de armazenamento, e não um único sistema de arquivos raiz. Um pool de armazenamento pode conter vários conjuntos de dados inicializáveis ou sistemas de arquivos raiz ZFS. Ao inicializar do ZFS, você deve especificar um dispositivo de inicialização e um sistema de arquivos raiz dentro do pool identificado pelo dispositivo de inicialização.
Por padrão, o conjunto de dados selecionado para inicialização é aquele identificado pela propriedade bootfs do conjunto. Esta seleção padrão pode ser ignorada ao especificar um conjunto de dados inicializável alternativo no comando boot -Z.
Você pode criar um pool raiz ZFS espelhado quando o sistema for instalado ou anexar um disco para criar um pool raiz ZFS espelhado após a instalação. Para obter mais informações, consulte:
Consulte os problemas conhecidos em relação aos pools raiz ZFS espelhados:
CR 6668666: é necessário instalar as informações de inicialização nos discos anexados adicionais utilizando os comandos installboot ou installgrub para ativar a inicialização em outros discos no espelho. Se criar um pool raiz ZFS espelhado com o método de instalação inicial, esta etapa não necessária. Por exemplo, se c0t1d0s0 foi o segundo disco adicionado ao espelho, então os comandos de sintaxe installboot ou installgrub devem ser:
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 |
Você pode inicializar de outros dispositivos em um pool raiz espelhado. Dependendo da configuração de hardware, pode ser necessário atualizar o PROM ou o BIOS para especificar outro dispositivo de inicialização.
Por exemplo, é possível inicializar a partir de ambos os discos (c1t0d0s0 ou c1t1d0s0) no conjunto a seguir.
# 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: insira o disco alternativo no prompt ok.
ok boot /pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/disk@0 |
Após reinicializar o sistema, comprove o dispositivo de inicialização ativo. Por exemplo:
SPARC# prtconf -vp | grep bootpath bootpath: '/pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/disk@0,0:a' |
x86: selecione um disco alternativo no conjunto raiz ZFS espelhado do menu apropriado da BIOS.
Então, utilize sintaxe semelhante à seguinte para confirmar que está sendo inicializado do disco alternativo:
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' |
Em um sistema com base em SPARC com vários BEs do ZFS, é possível inicializar a partir de qualquer BE utilizando o comando luactivate.
Durante o processo de instalação do Solaris OS e do Oracle Solaris Live Upgrade, o sistema de arquivos raiz ZFS é atribuído automaticamente com a propriedade bootfs.
Pode haver vários conjuntos de dados inicializáveis dentro de um pool. Por padrão, a entrada do conjunto de dados inicializável no arquivo /nome-do-pool/boot/menu.lst é identificada pela propriedade bootfs do pool. No entanto, a entrada de menu.lstpode conter o comando bootfs, que especifica um conjunto de dados alternativo no pool. Desta forma, o arquivo menu.lst pode conter entradas para vários sistemas de arquivos dentro do pool.
Quando um sistema de arquivos é instalado com o sistema de arquivos raiz ZFS ou é migrado para um sistema de arquivos raiz ZFS, uma entrada semelhante à seguinte é adicionada ao arquivo menu.lst:
title zfsBE bootfs rpool/ROOT/zfsBE title zfs2BE bootfs rpool/ROOT/zfs2BE |
Quando um novo BE é criado, o arquivo menu.lst é atualizado automaticamente.
Em um sistema com base no SPARC, há duas novas opções disponíveis:
Depois que o BE é ativado, é possível utilizar o comando de inicialização -L para exibir uma lista dos conjuntos de dados inicializáveis de um conjunto ZFS. Em seguida, pode selecionar um dos conjuntos de dados inicializáveis da lista. São exibidas as instruções para a inicialização de tal conjunto de dados. É possível inicializar o conjunto de dados selecionado seguindo tais instruções.
É possível utilizar o comando de inicialização -Z dataset para inicializar um conjunto de dados específico ZFS.
Se possuir vários BEs do ZFS em um conjunto de armazenamento ZFS no dispositivo de inicialização do sistema, é possível utilizar o comando luactivate para especificar um BE padrão.
Por exemplo, os seguintes BEs do ZFS estão disponíveis conforme descrito pela saída 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 - |
Se possui vários BEs do ZFS em seu sistema com base em SPARC, é possível utilizar o comando boot -L de um BE que é diferente do BE padrão. Entretanto, um BE que é inicializado de uma sessão boot -L não é redefinido como o BE padrão, nem a propriedade bootfs atualizada. Se deseja fazer o BE inicializado de uma sessão boot -L o BE padrão, então é necessário ativá-lo com o comando luactivate.
Por exemplo:
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 |
Em um sistema com base no SPARC, você pode inicializar a partir do arquivo à prova de falhas localizado em /platform/`uname -i`/failsafe da seguinte forma:
ok boot -F failsafe |
Para inicializar um arquivo à prova de falha a partir de um determinado conjunto de dados ZFS, utilize uma sintaxe semelhante à seguinte:
ok boot -Z rpool/ROOT/zfsBE -F failsafe |
As entradas a seguir são adicionadas ao arquivo /pool-name /boot/grub/menu.lst durante o processo de instalação do Solaris OS ou durante a operação do Oracle Solaris Live Upgrade para inicializar automaticamente o ZFS:
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 |
Se o dispositivo identificado pelo GRUB como o dispositivo de inicialização contiver um pool de armazenamento do ZFS, o arquivo menu.lst é usado para criar o menu GRUB.
Em um ssietma com base no x86 com vários BEs do ZFS, você pode selecionar um BE no menu GRUB. Se o sistema de arquivos raiz correspondente a esta entrada do menu for um conjunto de dados ZFS, a opção seguinte é adicionada:
-B $ZFS-BOOTFS |
Quando um sistema inicializa de um sistema de arquivos ZFS, o dispositivo raiz é especificado pelo parâmetro de inicialização -B $ZFS-BOOTFS nas linhas kernel ou module na entrada do menu GRUB. Este valor de parâmetro, semelhante a todos os parâmetros especificados pela opção -B, é passado ao kernel pelo GRUB. Por exemplo:
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 |
O arquivo à prova de falhas do x86 é /boot/x86.miniroot-safe e pode ser inicializado pela seleção da entrada à prova de falhas do Solaris no menu GRUB. Por exemplo:
title Solaris failsafe findroot (rootfs0,0,a) kernel /boot/multiboot kernel/unix -s -B console=ttya module /boot/x86.miniroot-safe |
A melhor forma de alterar o ambiente de inicialização ativo é usando o comando luactivate. Se a inicialização do ambiente ativo falha devido à uma instalação de patch incorreta ou a um erro de configuração, a única forma de inicializar a partir de outro ambiente é selecionando tal ambiente no momento da inicialização. É possível selecionar um BE alternativo no menu GRUB em um sistema com base em x86 ou inicializá-lo explicitamente a partir da PROM em um sistema com base em SPARC.
Devido a um erro no Oracle Solaris Live Upgrade na versão Solaris 10 10/08, o ambiente de inicialização que não estiver ativo pode falhar ao inicializar porque o conjunto de dados ZFS ou o conjunto de dados ZFS da região no ambiente de inicialização possuem um ponto de montagem inválido. O mesmo erro também impede que o BE seja montado se tiver um conjunto de dados /var diferente.
Se um conjunto de dados de região possui um ponto de montagem inválido, tal ponto de montagem pode ser corrigido realizando as etapas a seguir.
Inicialize o sistema a partir de um arquivo à prova de falhas.
Importe o pool.
Por exemplo:
# zpool import rpool |
Procure os pontos de montagem temporários incorretos.
Por exemplo:
# 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 |
O ponto de montagem do BE raiz (rpool/ROOT/s10u6) deve ser /.
Se a inicialização estiver falhando devido a problemas com o ponto de montagem /var, procure um ponto de montagem temporário similar do conjunto de dados /var.
Redefina os pontos de montagem do BE do ZFS e seus conjuntos de dados.
Por exemplo:
# zfs inherit -r mountpoint rpool/ROOT/s10u6 # zfs set mountpoint=/ rpool/ROOT/s10u6 |
Reinicialize o sistema.
Quando a opção para inicializar um ambiente de inicialização específico for apresentada, tanto no menu GRUB quanto no prompt do OpenBoot PROM, selecione o ambiente de inicialização cujos pontos de montagem acabam de ser corrigidos.
Utilize o procedimento a seguir se necessita inicializar o sistema para que possa recuperar uma senha de raiz perdida ou problema semelhante.
Será necessário inicializar no modo à prova de falhas ou de uma mídia alternativa, dependendo da severidade do erro. No geral, é possível inicializar no modo à prova de falhas para recuperar uma senha de raiz perdida ou desconhecida.
Se desejar recuperar de um conjunto de raiz ou de uma captura de conjunto de raiz, consulte Recuperando o pool raiz ZFS ou instantâneos do pool raiz.
Inicialize o modo à prova de falhas.
Em um sistema SPARC:
ok boot -F failsafe |
Em um sistema x86, selecione o modo à prova de falhas no prompt do GRUB.
Monte o BE do ZFS no /a quando solicitado:
. . . 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. |
Altere para o diretório /a/etc.
# cd /a/etc |
Se necessário, defina o tipo TERM.
# TERM=vt100 # export TERM |
Corrija o arquivo passwd ou shadow.
# vi shadow |
Reinicialize o sistema.
# init 6 |
Se um problema impede a inicialização com êxito do sistema ou algum outro problema severo ocorra, será necessário inicializar de um servidor de instalação de rede ou do CD de instalação do Solaris. Importe o conjunto raiz, monte o BE do ZFS e tente resolver o problema.
Inicialize de um CD de instalação ou da rede.
SPARC:
ok boot cdrom -s ok boot net -s |
Se não utilizar a opção -s, será necessário sair do programa de instalação.
x86: selecione a opção de inicialização de rede ou de inicialização de um CD local.
Importe o conjunto raiz e especifique um ponto de montagem alternativo. Por exemplo:
# zpool import -R /a rpool |
Monte o BE do ZFS. Por exemplo:
# zfs mount rpool/ROOT/zfsBE |
Acesse o conteúdo do BE do ZFS do diretório /a.
# cd /a |
Reinicialize o sistema.
# init 6 |