Adicionando espaço livre não particionado à partição principal do Ubuntu

0

Em continuação a Usado VBoxManage modifyhd - -resize, o tamanho real não mudou

Redimensionei meu arquivo .vmdk, dando mais espaço à minha máquina virtual.

Usando fdisk (comando p) eu recebo o seguinte

Device     Boot   Start      End  Sectors  Size Id Type
/dev/sda1  *       2048   999423   997376  487M 83 Linux
/dev/sda2       1001470 83884031 82882562 39.5G  5 Extended
/dev/sda5       1001472 83884031 82882560 39.5G 8e Linux LVM

(É normal que duas partições compartilhem seus setores dessa maneira?)

Enquanto isso, o espaço que eu adicionei é não particionado, como pode ser visto usando fdisk (comando F):

Unpartitioned space /dev/sda: 69.8 GiB, 74911318016 bytes, 146311168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes

   Start       End   Sectors  Size
83884032 230195199 146311168 69.8G

Como posso adicionar este espaço à minha partição existente? Devo adicioná-lo a sda2 ou sda5?

Devo acrescentar que não tenho acesso a GParted , pois só tenho interface baseada em linha de comando, sem GUI.

    
por Lafayette 13.03.2018 / 14:06

1 resposta

1

As partições não devem se sobrepor ... mas o que você tem aqui é uma " partição estendida ". Com partições estendidas, você cria uma partição " parent " que contém outras, permitindo que você tenha mais que as 4 partições suportadas por um MBR .

Para fazer uso do seu espaço extra, você precisa excluir e recriar cuidadosamente as partições ...

Meu exemplo usa um arquivo de 100MB que particionei, coloque um sistema de arquivos.

$ fdisk disk.dd <<<"p"

Welcome to fdisk (util-linux 2.27.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): Disk disk.dd: 100 MiB, 104857600 bytes, 204800 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: 0xcff1f22d

Device     Boot Start    End Sectors Size Id Type
disk.dd1         2048  43007   40960  20M 83 Linux
disk.dd2        43008 204799  161792  79M  5 Extended
disk.dd5        45056 204799  159744  78M 83 Linux

Eu então estendo o arquivo (isso tem um efeito muito semelhante ao que você fez):

$ truncate -s 200M disk.dd

Agora, devemos excluir todas as partições contidas pela partição estendida e, em seguida, a própria partição estendida:

$ fdisk disk.dd

Welcome to fdisk (util-linux 2.27.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): d
Partition number (1,2,5, default 5): 5

Partition 5 has been deleted.

Command (m for help): d
Partition number (1,2, default 2): 2

Partition 2 has been deleted.

Command (m for help): p
Disk disk.dd: 200 MiB, 209715200 bytes, 409600 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: 0xcff1f22d

Device     Boot Start   End Sectors Size Id Type
disk.dd1         2048 43007   40960  20M 83 Linux

Depois, devemos recriar as partições, certificando-se de que os setores Iniciar correspondam aos originais exatamente (isso usa meus números, não os seus). Em seguida, escreva as alterações.

Aqui estou usando os padrões (basta pressionar partições retornadas no início e torná-las o maior possível) ... Você pode dar valores se quiser manter algum espaço para outras partições.

Command (m for help): n
Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p): e
Partition number (2-4, default 2):
First sector (43008-409599, default 43008): 43008
Last sector, +sectors or +size{K,M,G,T,P} (43008-409599, default 409599):

Created a new partition 2 of type 'Extended' and of size 179 MiB.

Command (m for help): n
All space for primary partitions is in use.
Adding logical partition 5
First sector (45056-409599, default 45056):
Last sector, +sectors or +size{K,M,G,T,P} (45056-409599, default 409599):

Created a new partition 5 of type 'Linux' and of size 178 MiB.

Command (m for help): p
Disk disk.dd: 200 MiB, 209715200 bytes, 409600 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: 0xcff1f22d

Device     Boot Start    End Sectors  Size Id Type
disk.dd1         2048  43007   40960   20M 83 Linux
disk.dd2        43008 409599  366592  179M  5 Extended
disk.dd5        45056 409599  364544  178M 83 Linux

Command (m for help): w
The partition table has been altered.
Synching disks.

Não se esqueça de manter o tipo de partição. No exemplo, o padrão ( 83 ) é bom, mas você vai querer usar t para definir o tipo de volta para 8e .

Agora, você pode precisar executar partprobe , fornecendo seu dispositivo (por exemplo: /dev/sda ). Isso fará com que o sistema recarregue a tabela de partições. Use lsblk para verificar se os tamanhos das partições parecem corretos.

Finalmente, redimensione o sistema de arquivos. Isso pode ser feito enquanto estiver online (montado). Se não estiver montado, provavelmente será solicitado que você execute uma "verificação completa e corrija" primeiro:

$ e2fsck -f /dev/loop1
e2fsck 1.42.13 (17-May-2015)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/loop1: 12/20000 files (0.0% non-contiguous), 8180/79872 blocks
$ resize2fs /dev/loop1
resize2fs 1.42.13 (17-May-2015)
Resizing the filesystem on /dev/loop1 to 182272 (1k) blocks.
The filesystem on /dev/loop1 is now 182272 (1k) blocks long.

Agora, quando o sistema de arquivos for remontado, você verá o espaço extra desejado:

$ mount /dev/loop1 ./mnt
$ df -h mnt
Filesystem      Size  Used Avail Use% Mounted on
/dev/loop1      169M  1.6M  155M   1% /home/attie/box/so/mnt
$ cat mnt/test
hello world

Você apontou (em um comentário) que não conseguiu colocar o início da partição 5 onde deveria estar - fdisk estava fornecendo um intervalo incompatível.

Para consertar isso, você precisará criar a partição 5 como por normal ... mas use o valor inicial padrão incorreto que é alguns setores maiores que o valor desejado. Depois que a partição tiver sido criada, você poderá entrar no modo especialista ( x ) e colocar a partida mais manualmente. Então retorne ao modo normal ( r ) e reimprima a tabela ... se os números parecerem bons, então escreva ( w ).

No meu exemplo abaixo, criei a partição e usei o valor padrão que fdisk provided (45056) ... Então, uso o modo expert para definir o valor " correto " ( 43010), que de outra forma estaria fora do alcance.

Command (m for help): p
Disk disk.dd: 200 MiB, 209715200 bytes, 409600 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: 0xa11ae080

Device     Boot Start    End Sectors  Size Id Type
disk.dd1         2048  43007   40960   20M 83 Linux
disk.dd2        43008 409599  366592  179M  5 Extended
disk.dd5        45056 409599  364544  178M 83 Linux

Command (m for help): x

Expert command (m for help): b
Partition number (1,2,5, default 5): 5
New beginning of data (43009-409599, default 45056): 43010

Expert command (m for help): r

Command (m for help): p

Disk disk.dd: 200 MiB, 209715200 bytes, 409600 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: 0xa11ae080

Device     Boot Start    End Sectors  Size Id Type
disk.dd1         2048  43007   40960   20M 83 Linux
disk.dd2        43008 409599  366592  179M  5 Extended
disk.dd5        43010 409599  366590  179M 83 Linux

Eu tive um pequeno remexer nas fontes fdisk , mas não pude ver claramente por que ele estava adicionando esse buffer de ~ 1MB ... Como seu disco já está configurado sem ele, as coisas devem ficar bem.

    
por 13.03.2018 / 14:32