Provavelmente você já deve ter experimentado clonar um disco com sistema operacional Linux, virtual ou físico, que possua, além das partições primárias, algumas partições estendidas. “Criar particionamentos estendidos no Linux é comum além de ser uma boa prática, mas isso é assunto para um outro artigo”. Percebeu também que por algum motivo estas partições estendidas não foram montadas automaticamente na máquina destino após utilizar o procedimento de clonagem de discos do Clonezilla. Neste artigo estarei demostrar de forma fácil e objetiva a correção deste problema, demonstrarei como realizar a recuperação destas partições estendidas após a clonagem do disco sem perda dos dados.
CONSIDERAÇÕES
É importante lembrar que este artigo é um complemento ao artigo Clonezilla – Clonando discos/partições via rede. Caso você deseje realizar clonagem de máquinas físicas ou converter máquinas virtuais entre hypervisors distintos, é de primordial importância que lei o artigo citado. Estamos levando em consideração que possua aptidão necessária sobre Linux e os temas aqui abordados. Tenha responsabilidade sobre suas ações, os assuntos aqui tratados são de primordial importância e qualquer erro pode gerar consequências em seu ambiente. Seja consciente, seja profissional!
1) ANALISANDO ERRO.
Vamos então analisar o erro para que possamos chegar a um solução. Após bootar a máquina recém clonada, é possível observar que ao carregar o sistema operacional Linux, o mesmo não encontra alguns UUIDs das partições estendidas como ilustrado abaixo.
Este erro ocorre devido as mudanças de nomenclaturas do disco origem, comparado ao disco destino no momento da clonagem, o que acaba dificultando o particionamento e montagem das partições estendidas. Podemos também observar que após algumas tentativas de leitura de partições o sistema operacional não carrega o boot e sugere a entrada no modo de manutenção, como ilustrado abaixo.
Entrando no modo de manutenção e executando o comando sugerido “journalctl -xb“, podemos obter mais informações sobre o problema. Analisando o arquivo de log é possível notar que o sistema operacional ao tentar realizar a montagem dos pontos /var, /opt e swap, não obtiveram exito, isso ocorre porque não foi possível encontrar as partições necessárias dependentes, como ilustrado abaixo.
Agora que sabemos do problema e identificamos a falha, precisamos corrigi-la. Como não estamos conseguindo inicializar o sistema operacional, vamos precisar utilizar um Linux Live CD. Como vimos, nosso problema está relacionado ao particionamento. No Linux, a ferramenta mais utilizada para trabalhar com particionamentos é o fdisk. Vamos então realizar o boot da máquina problemática a partir do Live CD Debian 9.
OBS: Fique a vontade para utilizar qualquer Live CD, tenha em mente que o fdisk utilizado tem que ser o mais atualizado possível. 😉
2) UTILIZANDO A FERRAMENTA FDISK.
Após bootar na máquina problemática com o Live CD, iremos utilizar o prompt de comando para acessar o fdisk. Porém, para que possamos utilizar a ferramenta, será necessário primeiramente logar em nosso Live CD como root. Não irei gastar nosso precioso tempo explicando como bootar com root em um live CD, mas abaixo disponibilizei uma ilustração do procedimento que deve ser adotado. 😉
Agora que estamos logados como root, vamos então descobrir a nomenclatura de nosso disco. Para isso, execute o comando como ilustrado abaixo.
fdisk -l
Após a execução do comando, podemos realizar algumas observações:
- Podemos obter a nomenclatura do disco problemático que é “/dev/sda“.
- Também é possível constatar a quantidade de partições existentes no disco, além de observar que existe somente uma partição estendida com um valor total atrelado.
Repare que através da análise do log realizada anteriormente, havíamos descoberto que alguns pontos de montagem não tinham sido montados. Comparando agora o log com a tabela de partições, descobrimos que na verdade existe uma única partição estendida no qual possui um tamanho atrelado, mas que não corresponde aos três pontos de montagem que estão pendentes no log. Esta partição estendida somente resolveria o problema de um ponto, mas ainda faltaria duas partições para os outros dois pontos remanecentes.
Será que realmente não existem outras partições estendidas? Para tirar esta dúvida, precisamos executar o fdisk na máquina origem.
Resumindo: A máquina virtual que originou a cópia de nossa máquina destino, possui o quadro de partições completo, precisamos realizar esta verificação e comparar os setores atribuídos dentro do disco. Este detalhamento fará toda a diferença para montagem das partições em nossa máquina destino sem perda de dados.
Acesse a máquina origem e execute o comando ilustrado abaixo.
fdisk -l
Após executar o fdisk na máquina destino podemos realizar uma comparação com clareza, veja que na máquina origem é possível identificar 7 (sete) partições, enquanto na máquina destino identificamos apenas 5 (cinco).
“Como isso é possível, já que realizamos uma clonagem de disco? Bom amigo, se chegou até aqui, sabe que nem tudo são flores. Já ouviu falar na lei de Murphy?”
Com estas informações em mãos, podemos resolver o problema. Para isso, vamos voltar a máquina destino e realizar algumas edições através do fdisk. Acesse o disco utilizando o fdisk como ilustrado abaixo.
fdisk /dev/sda
Dentro do fdisk é possível realizar vários procedimentos, se deseja verificar a lista de comandos que podem ser utilizados no fdisk, pressione a letra “m“, será exibido um menu com varias opções e explicações.
OBS: Não irei abordar todas as opções utilizadas no fdisk, pois não é o objetivo do artigo. Estou levando em consideração que já possua aptidão necessária para isso, como já informado no inicio do artigo 😉 . Se não conhece o fdisk sugiro dar uma googlada ou acessar a man do Linux para saber mais sobre a ferramenta e o que ela faz.
Vamos criar as partições que estão faltando. Para isso, vamos utilizar a letra “n“, que serve para criar novas partições.
Repare que aqui está o “PULO DO GATO“, precisamos criar as partições faltantes com a mesma numeração de setores que antes foram criadas lá na máquina origem. Como fazemos isso? Olhe no fdisk da máquina origem e utilize a mesma numeração de “Start” e “End” lá informados.
Ao utilizarmos a mesma numeração, será identificada uma assinatura de formatação no qual foi escrita no disco no momento da formatação e instalação do sistema operacional pela primeira vez, em seguida nos será perguntado se desejamos remover esta assinatura ou não. Marque “N” para não remover e continuar utilizando a assinatura.
OBS: Se escolher sim, todo o trabalho até aqui foi por água a baixo e terá que realizar a clonagem do disco novamente, então PRESTE ATENÇÃO! Se caso fez besteira, você ainda sim é um cara de sorte, o fdisk só faz as alterações no momento que salva e sai do fdisk, então atenção redobrada ao salvar o fdisk, tenha clareza no que está fazendo.
Realize o procedimento para todas as partições faltantes, ao final do procedimento, utilize o comando “p” para visualizar suas partições recém criadas, e compare com as partições de sua máquina origem.
Se tudo tiver certo, utilize o comando “w” para salvar é sair do fdisk. Reinicie a máquina e remova o Live CD.
3) CONFIGURANDO /etc/fstab.
Ao reiniciar a máquina ainda teremos erros decorrentes da procura de UUIDs de disco, porém, perceba que as partições que antes não existiam, agora existem, e uma das prova disso e o carregamento do sistema operacional que agora é possível.
Para corrigir este problema precisamos editar o arquivo “/etc/fstab“. Perceba que nem todos os UUIDs que ali estão informados são relacionados aos particionamentos existentes. Observe o UUID da partição swap comparado com o comando “blkid” 😉 .
Utilize o comando “blkid” e compare os UUIDs com os informados no arquivo “/etc/fstab“. Os UUIDs precisam ser iguais, caso possua diferenças, realize a alteração no arquivo e reinicie a máquina novamente.
Pronto, ao reiniciar a máquina perceba que o problema não existe mais e sua máquina virtual esta 100% funcional.
CONCLUSÃO
Neste artigo foi demostrado de forma clara e objetiva a correção de particionamentos para máquinas Linux que foram clonadas através da ferramenta Clonezilla.
Se você gostou deste post e através dele pude lhe ajudar, o que acha de aproximarmos nosso contato? Siga meu blog e me adicione no Linkedin, aproveite para classificar algumas das minhas competências/recomendações, este simples gesto faz toda a diferença.
Att,
Rafael Oliveira
SysAdmin