Você pode utilizar o utilitário beadm para criar e gerenciar instantâneos e clones dos ambientes de inicialização.
Observe as seguintes distinções relevantes à administração do ambiente de inicialização:
Um instantâneo é uma imagem de somente leitura de um conjunto de dados ou de um ambiente de inicialização em um determinado momento. Um instantâneo não é inicializável.
Um ambiente de inicialização é um ambiente inicializável do Oracle Solaris, que consiste em um conjunto de dados raiz e, opcionalmente, outros conjuntos de dados montados abaixo dele. Exatamente um ambiente de inicialização pode estar ativo de cada vez.
Um clone de um ambiente de inicialização é criado copiando-se outro sistema de inicialização. Um clone é inicializável.
Um clone do ambiente de inicialização organiza tudo de forma hierárquica no banco de dados raiz do ambiente de inicialização original. Os conjuntos de dados compartilhados não estão abaixo do conjunto de dados raiz e não estão clonados. Em vez disso, o ambiente de inicialização acessa o conjunto de dados compartilhado original.
Um conjunto de dados é um nome genérico das entidades ZFS como clones, sistemas de arquivos e instantâneos. No contexto da administração de ambiente de inicialização, o conjunto de dados se refere mais especificamente às especificações do sistema de arquivos para um determinado instantâneo ou ambiente de inicialização.
Conjuntos de dados compartilhados são arquivos definidos pelo usuário, como /export, que contêm o mesmo ponto de montagem nos ambientes de inicialização ativo e inativo. Os conjuntos de dados compartilhados estão localizados fora da área de conjunto de dados raiz de cada ambiente de inicialização.
Os conjuntos de dados críticos de um ambiente de inicialização estão incluídos na área de conjunto de dados raiz desse ambiente.
É necessário assumir a função raiz do sistema para utilizar o utilitário beadm.
Para obter instruções detalhadas sobre o utilitário beadm, consulte a página do comando man beadm(1M). Consulte também o Capítulo 4Apêndice: Referência beadm.
Todos os instantâneos, ambientes de inicialização e conjuntos de dados que foram criados pelo comando beadm podem ser exibidos com o subcomando beadm list.
Os instantâneos e os ambientes de inicialização podem ser criados pelo comando beadm. Eles também podem ser criados por outros utilitários. Por exemplo, o comando pkg pode criar automaticamente um clone de um ambiente de inicialização quando você utilizá-lo para instalar ou atualizar pacotes. A saída do comando beadm list também exibe ambientes de inicialização criados pelo comando pkg .
Escolha a informação que deseja visualizar, conforme descrito na etapa seguinte.
Escolha uma opção para o comando beadm list da lista a seguir:
-a: Lista todas as informações disponíveis sobre o ambiente de inicialização. Esta opção inclui instantâneos e conjuntos de dados subordinados.
-d: Lista as informações sobre os conjuntos de dados do ambiente de inicialização.
-s: Lista as informações sobre os instantâneos do ambiente de inicialização.
-H: Omite as informações do cabeçalho a partir da exibição. Esta opção permite que seja mais fácil analisar a exibição em busca de scripts ou outros programas.
Também é possível optar se um nome de ambiente de inicialização será especificado no comando beadm list.
Por padrão, se um nome de ambiente de inicialização não for incluído no comando, os resultados incluirão todos os ambientes de inicialização.
Mas, se um nome de ambiente de inicialização for incluído no comando beadm list, os resultados incluirão somente as informações sobre esse ambiente de inicialização.
Digite o comando beadm list com as opções de sua preferência.
Por exemplo, inclua a opção -a e especifique o ambiente BE1 da seguinte forma:
$ beadm list -a BE1 |
Examine as informações exibidas sobre os ambientes de inicialização disponíveis.
Este exemplo inclui a opção -a e especifica o ambiente do BE2 da seguinte forma:
$ beadm list -a BE2 |
São exibidos os resultados de amostra. O ambiente BE2 será ativado na reinicialização, conforme indicado pelo R na coluna Ativo.
BE/Dataset Active Mountpoint Space Policy Created ---------- ------ ---------- ----- ------ ------- BE2 rpool/ROOT/BE2 R /mnt 89.67M static 2008-09-17 20:17 rpool/ROOT/BE2/var - /mnt/var 0 static 2008-09-17 20:17 |
Dois conjuntos de dados estão incluídos em BE2: o conjunto de dados rpool/ROOT/BE2 e o conjunto de dados rpool/ROOT/BE2/var. Os valores da coluna Ativo são os seguintes:
R: ativo na reinicialização
N: ativo agora
“-”: inativo
Este exemplo inclui a opção -s, que exibe informações de qualquer instantâneo que exista na imagem atual. O status desses instantâneos é a mesma lista exibida pelo comando zfs(1M).
$ beadm list -s test-2 |
São exibidos os resultados de amostra.
BE/Snapshot Space Policy Created ----------- ----- ------ ------- test-2 test-2@2010-04-12-22:29:27 264.02M static 2010-04-12 16:29 test-2@2010-06-02-20:28:51 32.50M static 2010-06-02 14:28 test-2@2010-06-03-16:51:01 16.66M static 2010-06-03 10:51 test-2@2010-07-13-22:01:56 25.93M static 2010-07-13 16:01 test-2@2010-07-21-17:15:15 26.00M static 2010-07-21 11:15 test-2@2010-07-25-19:07:03 13.75M static 2010-07-25 13:07 test-2@2010-07-25-20:33:41 12.32M static 2010-07-25 14:33 test-2@2010-07-25-20:41:23 30.60M static 2010-07-25 14:41 test-2@2010-08-06-15:53:15 8.92M static 2010-08-06 09:53 test-2@2010-08-06-16:00:37 8.92M static 2010-08-06 10:00 test-2@2010-08-09-16:06:11 193.72M static 2010-08-09 10:06 test-2@2010-08-09-20:28:59 102.69M static 2010-08-09 14:28 test-2@install 205.10M static 2010-03-16 19:04 |
No resultado da amostra, cada título de instantâneo inclui um carimbo de data/hora, indicando quando o instantâneo foi feito.
Se quiser criar um backup de um ambiente de inicialização existente, por exemplo, antes de modificar o ambiente de inicialização original, você poderá usar o comando beadm para criar e montar um novo ambiente de inicialização que seja um clone do ambiente de inicialização ativo. Esse clone ficará inativo e será exibido na inicialização como uma alternativa no menu GRUB em sistemas x86 ou no menu de inicialização em sistemas SPARC. O menu de inicialização em SPARC está em /rpool/boot/menu.lst.
Ao criar um novo ambiente de inicialização, o processo primeiro faz, automaticamente, um instantâneo do ambiente de inicialização original e, em seguida, cria um novo clone derivado desse instantâneo. Tanto o novo instantâneo quanto o novo clone são conservados pelo sistema.
Na linha de comando, digite o seguinte:
$ beadm create beName |
beName é uma variável do nome do novo ambiente de inicialização. Esse novo ambiente de inicialização está inativo.
beadm create não cria um ambiente de inicialização parcial. O comando cria com sucesso um ambiente de inicialização completo ou falha.
(Opcional) Você pode usar o comando beadm mount para montar o novo ambiente de inicialização da seguinte forma:
$ beadm mount beName mountpoint |
Se o diretório do ponto de montagem não existir, o utilitário beadm criará o diretório e, em seguida, montará o ambiente de inicialização nesse diretório.
Se o ambiente de inicialização já estiver montado, o comando beadm mount falhará e não remontará o ambiente de inicialização no local recém-especificado.
O ambiente de inicialização é montado, mas permanece inativo. Você pode atualizar um ambiente de inicialização inativo, montado.
Desmonte o ambiente de inicialização antes de reinicializar.
(Opcional) Se quiser inicializar esse novo ambiente de inicialização, use o seguinte comando para ativar o ambiente de inicialização:
$ beadm activate beName |
beName é uma variável do nome do ambiente de inicialização que será ativado.
Na reinicialização, o ambiente de inicialização recém-ativado é exibido como a seleção padrão no menu GRUB em x86 ou no menu de inicialização em SPARC.
O menu GRUB ou menu de inicialização sempre exibe o ambiente de inicialização ativado mais recentemente como o padrão.
O exemplo a seguir ilustra os conjuntos de dados em um ambiente de inicialização recém-criado.
Digite o seguinte comando.
$ beadm create BE2 |
O ambiente de inicialização original neste exemplo é BE1. O novo ambiente de inicialização, BE2, contém conjuntos de dados separados clonados de BE1. Se BE1 contiver conjuntos de dados separados para sistemas de arquivos tradicionais, como /var ou /opt, esses conjuntos de dados também serão clonados.
rpool/ROOT/BE1 rpool/ROOT/BE1/usr rpool/ROOT/BE1/var rpool/ROOT/BE1/opt |
rpool/ROOT/BE2 rpool/ROOT/BE2/usr rpool/ROOT/BE2/var rpool/ROOT/BE2/opt |
O rpool neste exemplo é o nome do pool de armazenamento. O pool já existe no sistema, configurado anteriormente pela instalação inicial ou pela atualização. ROOT é um conjunto de dados especial também criado anteriormente pela instalação inicial ou pela atualização. ROOT está reservado exclusivamente para o uso pelas raízes do ambiente de inicialização.
O exemplo a seguir ilustra um ambiente de inicialização recém-criado que possui conjuntos de dados compartilhados.
Conjuntos de dados compartilhados são diretórios definidos pelo usuário, como /export, que contêm o mesmo ponto de montagem nos ambientes de inicialização ativo e inativo. Os conjuntos de dados compartilhados estão localizados fora da área de conjunto de dados raiz de cada ambiente de inicialização.
Digite o seguinte comando.
$ beadm create BE2 |
Os conjuntos de dados compartilhados, rpool/export e rpool/export/home, não são clonados quando o ambiente de inicialização é clonado. Eles estão localizados fora dos conjuntos de dados rpool/ROOT/<BE> e são referenciados em seus locais originais pelo ambiente de inicialização clonado.
O ambiente de inicialização original, BE1, e os conjuntos de dados são os seguintes:
rpool/ROOT/BE1 rpool/ROOT/BE1/usr rpool/ROOT/BE1/var rpool/ROOT/BE1/opt rpool/export rpool/export/home |
O ambiente de inicialização clonado, BE2, tem novos conjuntos de dados raiz, mas os conjuntos de dados compartilhados originais, rpool/export e rpool/export/home, não são alterados.
rpool/ROOT/BE2 rpool/ROOT/BE2/usr rpool/ROOT/BE2/var rpool/ROOT/BE2/opt rpool/export rpool/export/home |
Por padrão, um novo ambiente de inicialização é criado a partir de um sistema de inicialização ativo. No entanto, você pode usar o comando beadm create para criar um novo ambiente de inicialização baseado em um ambiente de inicialização inativo existente.
Torne-se superusuário ou assuma uma função equivalente.
Para criar um novo ambiente de inicialização inativo a partir de um ambiente de inicialização inativo existente, digite o seguinte comando:
$ beadm create -e non-activeBeName beName |
non-activeBeName é uma variável do BE inativo existente clonado por este comando.
beName é a variável do nome do novo BE.
Por padrão, o novo ambiente de inicialização está inativo.
Você pode criar manualmente um instantâneo de um ambiente de inicialização existente para referência. Esse instantâneo é uma imagem de somente leitura de um conjunto de dados ou de um ambiente de inicialização em um determinado momento. É possível criar para o instantâneo um nome personalizado que indique quando ele foi criado ou o seu conteúdo.
Utilize o comando a seguir para criar um instantâneo.
$ beadm create BEname@snapshotdescription |
Substitua a variável BEname@snapshotdescription por um nome personalizado para o instantâneo. O nome personalizado deve utilizar o formato BEname@snapshotdescription, no qual BEname é o nome de um ambiente de inicialização existente a partir do qual você deseja fazer um instantâneo. Digite um snapshotdescription personalizado para identificar a data ou a finalidade do instantâneo.
São exemplos de nomes de instantâneo:
BE1@0312200.12:15pm
BE2@backup
BE1@march132008
A menos que se utilize o comando beadm create para atribuir um título personalizado a um instantâneo, títulos para instantâneos que incluem automaticamente carimbo de data/hora indicam quando o instantâneo foi feito.
Um instantâneo de um ambiente de inicialização não é inicializável. No entanto, pode-se criar um novo ambiente de inicialização a partir de um instantâneo existente. Em seguida, pode-se ativar e inicializar esse novo ambiente de inicialização.
Use o comando a seguir para criar um novo ambiente de inicialização a partir de um instantâneo.
$ beadm create -e BEname@snapshotdescription beName |
Substitua a variável BEname@snapshotdescription pelo nome de um instantâneo existente. Conforme descrito na tarefa anterior, os nomes de instantâneos usam o formato BEname@snapshotdescription, onde BEname é o nome de um ambiente de inicialização existente e snapshotdescription é uma descrição de um instantâneo específico feito de um ambiente de inicialização existente.
Substitua a variável BEname por um nome personalizado para o novo ambiente de inicialização.
Consulte o exemplo abaixo.
$ beadm create -e BE1@now BE2 |
Esse comando cria um novo ambiente de inicialização, denominado BE2, a partir de um instantâneo existente denominado BE1@now. Você pode usar o próximo procedimento para ativar esse ambiente de inicialização.
Você pode alterar um ambiente de inicialização inativo para um ambiente de inicialização ativo. Somente um ambiente de inicialização pode estar ativo de cada vez. O ambiente de inicialização recém-ativado se tornará o ambiente padrão depois da reinicialização.
Utilize o comando a seguir para ativar um ambiente de inicialização inativo existente:
$ beadm activate beName |
beName é uma variável do nome do ambiente de inicialização que será ativado.
Observe as especificações a seguir.
beadm activate beName ativa um ambiente de inicialização ao definir a propriedade do pool inicializável, bootfs, como o valor do conjunto de dados ROOT do ambiente de inicialização que está sendo ativado.
beadm activate define o ambiente de inicialização recém-ativado como padrão no arquivo menu.lst.
Quando um ambiente de inicialização é criado, estando ele ativo ou inativo, uma entrada é criada para o ambiente de inicialização no menu GRUB em x86 ou no menu de inicialização em SPARC. O ambiente de inicialização padrão é o ambiente de inicialização que foi ativado por último.
Reinicialize.
O ambiente de inicialização recém-ativado é agora o padrão no menu GRUB em x86 ou no menu de inicialização em SPARC.
Se o ambiente de inicialização falhar ao inicializar, reinicialize e selecione o ambiente de inicialização anterior no menu GRUB ou no menu de inicialização.
Se você desejar atualizar pacotes em um ambiente de inicialização inativo existente, é possível montar esse ambiente e, opcionalmente, atualizar os pacotes nele.
Você pode usar o comando beadm mount para montar um ambiente de inicialização da seguinte forma:
$ beadm mount beName mountpoint |
Se o diretório do ponto de montagem não existir, o utilitário beadm criará o diretório e, em seguida, montará o ambiente de inicialização nesse diretório.
Se o ambiente de inicialização já estiver montado, o comando beadm mount falhará e não remontará o ambiente de inicialização no local recém-especificado.
O ambiente de inicialização é montado, mas permanece inativo.
(Opcional) É possível atualizar os pacotes no ambiente de inicialização utilizando o comando pkg.
Por exemplo, é possível utilizar o comando pkg install com a opção -R para atualizar pacotes específicos no ambiente de inicialização.
$ pkg -R /mnt install packagename |
Onde /mnt é o ponto de montagem para o ambiente de inicialização.
Desmonte o ambiente de inicialização antes de reinicializar.
Para obter mais informações, consulte a página do manual pkg(1).
Você pode usar o comando beadm para desmontar um ambiente de inicialização da seguinte forma:
Não é possível desmontar o ambiente de inicialização atualmente inicializado.
Se você quiser disponibilizar mais espaço no sistema, use o comando beadm para destruir um ambiente de inicialização existente.
Observe as seguintes especificações.
Não é possível destruir o ambiente de inicialização atualmente inicializado.
O comando beadm destroy remove a entrada do ambiente de inicialização destruído automaticamente do menu GRUB em x86 ou do menu de inicialização em SPARC.
O comando beadm destroy destrói somente os conjuntos de dados críticos ou não compartilhados do ambiente de inicialização. Os conjuntos de dados compartilhados estão localizados fora da área de conjunto de dados raiz do ambiente de inicialização e não são afetados quando um ambiente de inicialização é destruído.
Veja o exemplo a seguir, onde BE1 e BE2 compartilham os conjuntos de dados rpool/export e rpool/export/home. Os conjuntos de dados incluem o seguinte:
rpool/ROOT/BE1 rpool/ROOT/BE2 rpool/export rpool/export/home |
Destrua BE2 com o seguinte comando:
beadm destroy BE2 |
Os conjuntos de dados compartilhados, rpool/export e rpool/export/home, não são destruídos quando o ambiente de inicialização BE2 é destruído. Os conjuntos de dados a seguir permanecem.
rpool/ROOT/BE1 rpool/export rpool/export/home |
Para destruir um ambiente de inicialização, digite o seguinte:
$ beadm destroy beName |
O comando beadm destroy pede confirmação antes de destruir o ambiente de inicialização. Adicione a opção -F ao comando beadm destroy para forçar a destruição do ambiente de inicialização sem uma solicitação de confirmação. Adicione a opção -f para forçar a destruição do ambiente de inicialização, mesmo que ele esteja montado.
O comando beadm rename permite renomear um ambiente de inicialização existente. Esse comando permite criar um nome personalizado para um ambiente de inicialização, um nome que tenha mais significado para sua situação específica. Por exemplo, você pode renomear um ambiente de inicialização para especificar como personalizou esse ambiente. O nome do conjunto de dados do ambiente de inicialização também é alterado para se adaptar ao novo nome do ambiente de inicialização.
Não é possível renomear um ambiente de inicialização ativo. Somente um ambiente de inicialização inativo pode ser renomeado. Também não é possível renomear o ambiente de inicialização atualmente inicializado. Se você desejar renomear o ambiente de inicialização ativo, torne outro ambiente de inicialização ativo e inicialize esse ambiente. Assim, é possível renomear o ambiente de inicialização inativo.