![Como redimensionar/ampliar/aumentar uma partição ext4 não-LVM](https://rvso.com/image/1108690/Como%20redimensionar%2Fampliar%2Faumentar%20uma%20parti%C3%A7%C3%A3o%20ext4%20n%C3%A3o-LVM.png)
Já pesquisei nos fóruns, mas não consegui encontrar uma boa resposta adequada:
Eu tenho um Ubuntu Server 10.04 como KVM Host e um sistema convidado, que também roda 10.04. O sistema host usa LVM e há três volumes lógicos, que são fornecidos ao convidado como dispositivos de bloco virtuais - um para /, um para /home e um para swap. O convidado foi particionado sem LVM.
Já ampliei o volume lógico no sistema host - o convidado vê com sucesso o disco virtual maior. No entanto, este disco virtual contém uma partição "boa e velha", que ainda possui o antigo tamanho pequeno.
A saída de fdisk -l é
me@produktion:/$ LC_ALL=en_US sudo fdisk -l
Disk /dev/vda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000c8ce7
Device Boot Start End Blocks Id System
/dev/vda1 * 1 3917 31455232 83 Linux
Disk /dev/vdb: 2147 MB, 2147483648 bytes
244 heads, 47 sectors/track, 365 cylinders
Units = cylinders of 11468 * 512 = 5871616 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000f2bf7
Device Boot Start End Blocks Id System
/dev/vdb1 1 366 2095104 82 Linux swap / Solaris
Partition 1 has different physical/logical beginnings (non-Linux?):
phys=(0, 32, 33) logical=(0, 43, 28)
Partition 1 has different physical/logical endings:
phys=(260, 243, 47) logical=(365, 136, 44)
Disk /dev/vdc: 225.5 GB, 225485783040 bytes
255 heads, 63 sectors/track, 27413 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00027f25
Device Boot Start End Blocks Id System
/dev/vdc1 1 9138 73398272 83 Linux
A saída de parted print all é
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 32.2GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 1049kB 32.2GB 32.2GB primary ext4 boot
Model: Virtio Block Device (virtblk)
Disk /dev/vdb: 2147MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 1049kB 2146MB 2145MB primary linux-swap(v1)
Model: Virtio Block Device (virtblk)
Disk /dev/vdc: 225GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 1049kB 75.2GB 75.2GB primary ext4
O que eu quero alcançar é simplesmente aumentar ou redimensionar a partição /dev/vdc1 para que ela use todo o espaço fornecido pelo dispositivo de bloco virtual /dev/vdc. O problema é que quando tento fazer isso com o parted, ele reclama:
(parted) select /dev/vdc
Using /dev/vdc
(parted) print
Model: Virtio Block Device (virtblk)
Disk /dev/vdc: 225GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 1049kB 75.2GB 75.2GB primary ext4
(parted) resize 1
WARNING: you are attempting to use parted to operate on (resize) a file system.
parted's file system manipulation code is not as robust as what you'll find in
dedicated, file-system-specific packages like e2fsprogs. We recommend
you use parted only to manipulate partition tables, whenever possible.
Support for performing most operations on most types of file systems
will be removed in an upcoming release.
Start? [1049kB]?
End? [75.2GB]? 224GB
Error: File system has an incompatible feature enabled. Compatible features are has_journal, dir_index, filetype, sparse_super and large_file. Use tune2fs
or debugfs to remove features.
Então o que eu posso fazer? Este é um sistema de produção sem cabeça. Qual é uma maneira segura de aumentar esta partição? POSSO desmontá-lo - então esse não é o problema.
Editar: Cfdisk mostrou um pequeno espaço livre não particionado, depois a partição (sinalizada como "boot" e Linux/ext3) e depois o restante do espaço não particionado. Depois de excluir a partição e criá-la novamente usando cfdisk - cfdisk mostra uma grande área particionada (o que seria bom para mim) e como sistema de arquivos digite apenas "Linux"
Resize2fs retorna este erro
resize2fs 1.41.11 (14-Mar-2010) resize2fs: Bad magic number in super-block while trying to open /dev/vdc1 Couldn't find valid filesystem superblock
Responder1
Essepage indica a maneira de fazer isso: desmontar, excluir, recriar a partição com o tamanho desejado e usar resize2fs para estender a partição. A página de manual do resize2fs concorda.
Eu sei que 'excluir a partição' parece assustador, mas não altera os dados em nada. Apenas muda aquilo que faz referência ao contêiner. Contanto que você NÃO faça isso, mkfs.ext4
você ficará bem.
O ponto inicial da sua partição precisa ser o mesmo ou o sistema operacional não saberá como interpretar o que está por trás dele. O ponto final pode então ser mais avançado para formar uma partição maior.
Acho que o erro no comentário está relacionado à movimentação do ponto inicial. Você precisa iniciá-lo exatamente no mesmo ponto em que foi iniciado. O ponto final pode se mover.
Crédito parapsusipor sugerir fdisk em vez de cfdisk e confirmar o problema do ponto inicial.
Responder2
Um exemplo:
/dev/sdb2 é a partição /boot. Tem 100 MB, o que é bastante pequeno. Para aumentar esta partição ext4 em um sistema em execução, faça (como root ou sudo):
desmontar /inicializar
parted /dev/sdb
(separado) imprimir
Modelo: Disco ATA Patriot Torqx 2 (scsi)
/dev/sdb: 32,0 GB
Tamanho do setor (lógico/físico): 512B/512B
Tabela de partição: msdosNúmero Início Fim Tamanho Tipo Sistema de arquivos Sinalizadores
1 1049kB 12,9GB 12,9GB tipo primário = 83
2 12,9GB 13,0GB 107MB primário tipo ext4=83(separou-se) rm 2
(separado) mkpart
Tipo de partição? primário/estendido? tipo de sistema de arquivos principal
? [ext2]?
Começar? Fim de 12,9 GB
? 13,4 GB(separado) desistir
redimensionar2fs /dev/sdb2
resize2fs 1.42.6 (21 de setembro de 2012)
O sistema de arquivos em /dev/sdb2 é montado em /boot; redimensionamento on-line necessário
old_desc_blocks = 1, new_desc_blocks = 2
O sistema de arquivos em /dev/sdb2 agora tem 498.688 blocos de comprimento.
feito!
Todos os dados permanecem no lugar. /boot está pronto para uso e tem 472 MB (parted não é tão seguro com os tamanhos, leia o manual para saber o porquê)
Todos os dados foram copiados antes, mas apenas por precaução. Eu recomendo fazer o mesmo.
Use o seguinte comando para encontrar o processo que está interrompendo a desmontagem de /boot se falhar:
lsof /boot
Boa sorte!
Responder3
Se você tentar excluir e recriar uma partição, quando sua partição for iniciada abaixo de 2048, você poderá ter alguns problemas como eu tive resize2fs
.
Couldn't find valid filesystem superblock.
Defdisk versão 2.17.2, o fdisk IIUC força você a começar a partir de 2048 para garantir que seu disco rígido esteja "alinhado corretamente". Portanto, se sua partição original começou antes de 2048, você terá uma jornada difícil tentando recriar a partição.
A melhor abordagem érsync ao clonar um disco.