Guia de administração do ZFS Oracle Solaris

Inicializando a partir de um sistema de arquivos raiz ZFS

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.

Inicializando a partir de um disco alternativo em um pool raiz ZFS espelhado

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:

SPARC: inicializando a partir de um sistema de arquivos raiz ZFS

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:


Exemplo 5–8 SPARC: inicializando a partir de um ambiente de inicialização 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


Exemplo 5–9 SPARC: inicializando um sistema de arquivos no modo à prova de falhas

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

x86: inicializando a partir de um sistema de arquivos raiz ZFS

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

Exemplo 5–10 x86: inicializando um sistema de arquivos ZFS

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

Exemplo 5–11 x86: inicializando um sistema de arquivos no modo à prova de falhas

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

Resolvendo problemas do ponto de montagem ZFS que impedem a inicialização com êxito (Solaris 10 10/08)

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.

ProcedureComo resolver problemas de ponto de montagem ZFS

  1. Inicialize o sistema a partir de um arquivo à prova de falhas.

  2. Importe o pool.

    Por exemplo:


    # zpool import rpool
    
  3. 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.

  4. 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
    
  5. 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.

Inicializando com o propósito de recuperação em um ambiente raiz ZFS

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.

ProcedureComo inicializar o ZFS no modo à prova de falhas

  1. 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.

  2. 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.
  3. Altere para o diretório /a/etc.


    # cd /a/etc
    
  4. Se necessário, defina o tipo TERM.


    # TERM=vt100
    # export TERM
  5. Corrija o arquivo passwd ou shadow.


    # vi shadow
    
  6. Reinicialize o sistema.


    # init 6
    

ProcedureComo inicializar o ZFS de uma mídia alternativa

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.

  1. 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.

  2. Importe o conjunto raiz e especifique um ponto de montagem alternativo. Por exemplo:


    # zpool import -R /a rpool
    
  3. Monte o BE do ZFS. Por exemplo:


    # zfs mount rpool/ROOT/zfsBE
    
  4. Acesse o conteúdo do BE do ZFS do diretório /a.


    # cd /a
    
  5. Reinicialize o sistema.


    # init 6