Boa tarde querida
Vou lhe dizer uma rápida que poderia levar à perda completa de dados na máquina virtual, mas a saída ainda foi encontrada com: parted
Dados de origem:SO: Debiab 9 64bit
FS: ext4 sem LVM
Objetivo: expandir o FS em uma máquina virtual de 14 GB para 60 GB
Em princípio, para o administrador, essa tarefa é trivial, mas às vezes as estrelas podem convergir para que tudo não corra como gostaríamos. Sob o corte, tentarei restaurar o curso dos eventos, o que levou ao fato de o primeiro administrador quase não receber VM em funcionamento.
Dia 1:O administrador recebeu uma tarefa completamente simples - você precisa expandir o tamanho do FS na VM. Anteriormente, já havia sido feito um trabalho para expandir a imagem do disco para esta VM e, portanto, o problema permaneceu pequeno - expanda o tamanho do FS na VM.
Estrutura FS na VM:/ boot - 56Mb
/ - todo o espaço restante - ext4
Como a máquina virtual é criada a partir de um modelo, não há LVM, o que obviamente simplificaria todo o procedimento.
E assim o administrador na quinta-feira à noite começa a executar a tarefa. Seu primeiro passo foi inicializar a VM usando uma imagem ISO - SystemRescue. Depois de carregar a VM com êxito com a ajuda da iso-imagem, o administrador começa a trabalhar e com a ajuda do fdisk exclui a seção
/ (/ dev / vda2) , que está correta, pois precisa ser expandida. Após excluir a partição (/ dev / vda2), o administrador cria uma nova partição - / dev / vda2 e o primeiro erro ocorre - o administrador cria uma partição de extensão primeiro e só depois cria a primária e depois de comparar a nova marcação, sai do fdisk e tenta montar a partição:

Como o layout do disco foi alterado e o início e o final da partição / dev / vda5 foram alterados, apareceu um erro esperado indicando que nenhum superbloco foi encontrado ou um erro. O erro é bastante sério e, se você abordar a solução incorretamente, poderá perder arquivos ou vencê-los. É claro que você pode reverter, mas o problema também está no fato de o administrador não ter capturado uma captura de tela do layout de disco anterior antes de seu trabalho.
Como a partição não pode ser montada ... o administrador tenta corrigir a situação excluindo as partições que ele criou e criando um novo primário, mas como isso não significa o final do lote com dados, todas as suas tentativas levam ao mesmo resultado:
Superbloco inválido .
Após várias tentativas de restaurar a partição por conta própria, o primeiro administrador solicita ajuda do segundo administrador.
Primeiro, o segundo administrador sai da VM e copia a imagem de disco atual chamada vm_bad_disk. A seguir, a VM sai da mesma versão do sistema operacional - Debian 9 de 64 bits e se conecta ao segundo disco - vm_bad_disk.
Tendo entrado em uma nova VM através do ssh - examinamos a lista de discos na VM:
root@recovery:~# fdisk -l
Disk /dev/vda: 4.9 GiB, 5242880000 bytes, 10240000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x09dea38e
Device Boot Start End Sectors Size Id Type
/dev/vda1 * 2048 499711 497664 243M 83 Linux
/dev/vda2 501758 10237951 9736194 4.7G 5 Extended
/dev/vda5 501760 10237951 9736192 4.7G 83 Linux
Disk /dev/vdb: 58.6 GiB, 62914560000 bytes, 122880000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xe8c76303
Device Boot Start End Sectors Size Id Type
/dev/vdb1 * 2048 194559 192512 94M 83 Linux
/dev/vdb2 196606 30717951 30521346 14.6G 5 Extended
/dev/vdb5 198656 30717951 30519296 14.6G 83 Linux
Aqui está / dev / vdb - este é o nosso vm_bad_disk. A primeira coisa que o segundo administrador remove / dev / vdb2 e / dev / vdb5 e tenta criar / dev / vdb2 com o 194560 iniciado e um fim aproximado, mas também obtém:
Superbloco inválido .
Para trabalhar com a partição / dev / vdb, um utilitário dividido é instalado para um trabalho mais conveniente com a partição.
Repetimos a ação com a remoção de / dev / vdb2 já em parte e fazendo ajuda.
A atenção do administrador é chamada ao comando de resgate, que permite definir o início e o fim da partição para encontrar o FS nele. Não há nada complicado na sintaxe do comando:
Basta digitar em partes:
> resgate
O sistema perguntará:
Início - indicou 194560
Agora o administrador precisa calcular o final (fim da partição). Como o administrador sabia inicialmente que o tamanho do disco inteiro era de 14 GB e que 1 setor é de 512 bytes ... os seguintes cálculos são feitos:
14 GB são aproximadamente 15032385536 bytes, calculamos o número de setores:
15032385536/512 = 29360128
Este valor deve ser especificado em parted:
Fim 29360128
Pressione Enter com ousadia e aguarde o resultado ... Nesse caso, não tive que esperar muito tempo e nos separamos, mostrando que o FS foi encontrado e se valia a pena fazer as alterações - respondemos SIM
Parted fará as alterações necessárias e o administrador sairá do Parted.
Admin retorna para a linha de comando do sistema e faz:
mount / dev / vdb2 / mntA partição é montada sem problemas e mostra que seu tamanho é de cerca de 14 GB, o que é correto, pois o FS ainda não foi expandido. O administrador verifica rapidamente os arquivos e tudo indica que não há artefatos e arquivos quebrados à primeira vista.
Como a partição parece ativa, o administrador faz:
umount / dev / vdb2 e inicia:
e2fsck / dev / vdb2 após a verificação ser concluída - executa o comando para expandir a seção:
resize2fs / dev / vdb2
A operação passa sem problemas e o administrador monta a partição novamente para garantir que está tudo bem:
mount / dev / vdb2 / mntA partição é montada sem erros e, usando o comando
df -p , ela vê uma partição já expandida.
O administrador mais uma vez verifica os arquivos e diretórios deste lote e decide que está tudo bem com o FS e os arquivos.
O administrador executa o comando: shutdown -p now e remove a unidade mapeada da VM com a qual as ações foram executadas.
Ele salva a imagem de disco da VM original, da qual tudo foi iniciado em um armazenamento separado, a substitui pela imagem de disco correta e envia a VM para a inicialização.
A VM é inicializada sem problemas e todos os dados estão no local.
Moral:1) Faça um SnapShot antes de suas ações
2) Tire uma captura de tela das configurações desejadas (neste caso, marcação de partição)
3) Antes do trabalho, faça backup de arquivos importantes