Como redimensionar / ampliar / aumentar uma partição ext4 não LVM

20

Eu já procurei nos fóruns, mas não consegui encontrar uma boa resposta adequada:

Eu tenho um Ubuntu Server 10.04 como host KVM e um sistema convidado, que também executa o 10.04. O sistema host usa LVM e há três volumes lógicos, que são fornecidos ao convidado como dispositivos de bloco virtual - um para /, um para / home e outro para troca. O convidado foi particionado sem LVM.

Eu já ampliei o volume lógico no sistema host - o convidado vê com êxito o disco virtual maior. No entanto, esse disco virtual contém uma partição "boa e velha", que ainda possui o tamanho pequeno e antigo.

A saída do 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 da impressão parcial é

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 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? Porém, POSSO desmontá-lo - então esse não é o problema.

Edit: O Cfdisk mostrou um pequeno espaço livre e não particionado, depois a partição (sinalizada como "boot" e Linux / ext3) e 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 tipo de sistema de arquivos, apenas "Linux"

Resize2fs retorna esse 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

Mischa
fonte

Respostas:

18

Esta página indica como desmontar, excluir, recriar a partição com o tamanho desejado e usar resize2fs para estender a partição. A página de manual resize2fs concorda.

Eu sei que 'excluir a partição' parece assustador, mas não altera os dados. Apenas muda o que faz referência ao contêiner. Contanto que você NÃO mkfs.ext4deva ficar bem.

O ponto inicial da partição precisa ser o mesmo que era ou o sistema operacional não saberá como interpretar o que está por trás dele. O ponto final pode ser mais adiante para criar uma partição maior.

Eu acho que o erro no comentário está relacionado à mudança do ponto de partida. Você precisa iniciá-lo exatamente no mesmo ponto em que foi iniciado. O ponto final pode se mover.

Agradecemos a psusi por sugerir fdisk em vez de cfdisk e confirmar o problema do ponto inicial.

RobotHumans
fonte
Ok, eu apaguei a partição com o cfdisk e criei uma nova. Mas eu não podia redimensioná-lo e então não consigo mais montá-lo.
precisa
resize2fs 1.41.11 (14-Mar-2010) resize2fs: Número mágico inválido no superbloco ao tentar abrir / dev / vdc1 Não foi possível encontrar o superbloco válido do sistema de arquivos.
23412 Mischa
11
na verdade, o cfdisk mostrou um pequeno espaço livre e não particionado, depois a partição (sinalizada como "boot" e Linux / ext3) e o restante do espaço não particionado. Após 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".
23612 Mischa
8
Você precisa recriar a partição para que ela inicie exatamente no mesmo setor que originalmente. Você não pode fazer isso com o cfdisk. Use fdisk ou parted e coloque-os no modo de setor.
23412 psusi
11
existe alguma maneira de redimensionar a partição ext4 de forma que o início da partição seja movido? Como tenho espaço livre na frente da partição ext4 atual, não na parte de trás ... felizmente tenho mais espaço livre do que a partição é grande, então acho que poderia fazer o seguinte: copiar toda a partição para a frente, remova a parte de trás e redimensione a movida para o tamanho inteiro? mas que parece ser uma terrível hack para mim no momento ...
codeling
6

Um exemplo:

/ dev / sdb2 é a partição / boot. É 100 MB, o que é bastante pequeno. Para aumentar esta partição ext4 em um sistema em execução, faça (como root ou sudo):

umount / boot

parted / dev / sdb

impressão (separada)

Modelo: ATA Patriot Torqx 2 (scsi)
Disco / dev / sdb: 32.0GB
Tamanho do setor (lógico / físico): 512B / 512B
Tabela de partições: msdos

Número Início Tamanho final Tipo Sistema de arquivos Sinalizadores
1 1049kB 12,9 GB 12,9 GB tipo primário = 83
2 12,9 GB 13,0 GB 107 MB tipo ext4 primário = 83

(dividido) rm 2

(parted) mkpart

Tipo de partição? primário / estendido?
tipo de sistema de arquivos primário ? [ext2]?
Começar? 12,9GB
Fim? 13.4GB

(separado) sair

resize2fs / dev / sdb2

resize2fs 1.42.6 (21-Sep-2012) O
sistema de arquivos em / dev / sdb2 está 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 498688 blocos.

feito!

Todos os dados permanecem no lugar. / boot está pronto para uso e tem 472 MB de tamanho (dividido não é tão seguro com os tamanhos, leia o manual para saber o porquê)

Todos os dados foram copiados antes, mas apenas como precaução. Eu recomendo fazer o mesmo.

Use o seguinte comando para encontrar o processo que está parando a desmontagem de / boot, se falhar:

lsof / boot

Boa sorte!

user157258
fonte
2
Você precisa usar unidades de setores, não GB, para ter certeza de obtê-lo exatamente no mesmo local.
27414 psusi
0

Se você tentar excluir e recriar uma partição, quando a partição for iniciada abaixo de 2048, poderá haver problemas como eu resize2fs.

Couldn't find valid filesystem superblock.

Na versão 2.17.2 do fdisk, o fdisk IIUC obriga a começar a partir de 2048 para garantir que seu disco rígido esteja "alinhado corretamente". Portanto, se a sua partição original foi iniciada antes de 2048, você poderá recomeçar a tentativa de recriar a partição.

A melhor abordagem é o rsync ao clonar um disco .

Hendry
fonte