Por que o espaço recém-redimensionado da imagem de disco virtual (vdi) é exibido e como posso corrigi-lo?

1

Eu tive que dar um espaço em disco adicional à imagem do VirtualBox.

Redimensionei meu disco virtual do contêiner com:

VBoxManage modifyhd <absolute path to file> --resize <size in MB> //example
VBoxManage modifyhd example.vdi --resize 10000

AVISO , você não pode reduzir o tamanho!

Eu corro df -h na minha máquina virtual ubuntu 16.04 - sem alteração.

/dev/mapper/example-vg--vg-root   5G  4.9G  50M  100% /

Neste ponto, eu não sabia nada sobre grupos de volume, mas depois de algumas escavações, descobri que agora tenho 5G de espaço livre, como faço para obter isso para o meu grupo de volume e de lá para o meu volume lógico ?

Então, como faço para obter esse espaço livre para o meu volume lógico (LV) no meu grupo de volume (VG)?

    
por Olavi Sau 03.05.2017 / 14:43

2 respostas

1

A primeira coisa que você deve fazer é verificar se ainda não tem o espaço necessário, vendo quanto espaço livre seu grupo de volumes tem.

Todos os comandos a seguir geralmente exigem sudo.

Você pode ver os atributos dos grupos de volumes com vgdisplay

vgdisplay

Você deve ver algo assim:

     --- Volume group ---
  VG Name               example-vg
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  6
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               15.52 GiB
  PE Size               4.00 MiB
  Total PE              3972
  Alloc PE / Size       3963 / 15.48 GiB
  Free  PE / Size       9 / 36.00 MiB
  VG UUID               JZCVgU-QvdG-2dMN-ZLrO-YXHp-83bq-zItAUD

Se você tiver extensões físicas gratuitas ( PE ), basta adicionar aqueles (se o tamanho das extensões físicas livres atender às suas necessidades, pule para adicionar ao volume lógico Ctrl + F ADDING TO LOGICAL VOLUME ).

Se você não tem espaço livre suficiente no seu grupo de volumes , você precisa adicioná-lo do seu espaço livre alocado, mas primeiro você precisa particioná-lo.

Você pode fazer isso com fdisk

fdisk /dev/sda

Primeiro, liste a tabela existente (você precisa saber de onde iniciar a partição)

No fdisk ( Command (m for help): )

p

Exibirá algo assim:

Device     Boot    Start      End  Sectors  Size Id Type
/dev/sda1  *        2048   999423   997376  487M 83 Linux
/dev/sda2        1001470 32000000 30998531 14.8G  5 Extended
/dev/sda3       32002048 48779263 16777216    8G 8e Linux LVM
/dev/sda5        1001472 32000000 30998529 14.8G 8e Linux LVM

Copie o Fim mais alto. Caso contrário, você pode criar uma partição entre partições, o que limita o tamanho da partição ao espaço entre as partições. (como 1 kb)

Continue pressionando n (crie uma nova partição)

n

Escolha o número padrão (não importa muito, mas anote ou lembre-se)

Cole a extremidade mais alta do primeiro setor e termine como + tamanho {K, M, G, T, P} (ou como quiser)

Isso criará a nova partição.

Você deve reiniciar agora ( sudo reboot )

Após a reinicialização, crie o volume físico pvcreate /dev/sda##THE NUMBER YOU CHOSE##

Reinicie novamente se necessário sudo reboot

Se você não se lembra do número, pode apenas fdisk /dev/sda ... p listá-los.

Agora, estenda seu grupo de volumes vgextend example-vg /dev/sda##NUMBER##

ADICIONANDO AO VOLUME LÓGICO

sudo parted ##example-vg-path ( from vgdisplay) ##

print list ( find your /dev/mapper/example-vg--vg-root )

resizepart NUMBER

Digite seu tamanho

quit

sudo resize2fs  /dev/mapper/example--vg-root

Execute df -h para verificar.

O final ficou um pouco desajeitado, mas tudo bem com pressa :)

    
por Olavi Sau 03.05.2017 / 14:43
1

Você está lidando com espaço em disco em três (e um quarto quarto implícito) de abstração:

  • Espaço em disco no arquivo .vdi - Você redimensionou esse arquivo com VBoxManage , mas o espaço ainda não apareceu nos próximos dois níveis de abstração. Essencialmente, o que você fez é como instalar um disco físico maior em um computador real e copiou o conteúdo do disco original com dd . Você tem mais espaço em disco (virtual) agora, mas não pode usá-lo porque as estruturas de dados usadas para acessar o disco ainda não foram atualizadas.
  • Partições (também conhecidas como volumes físicos ou PVs) no disco virtualizado - Você deve redimensionar seu PV existente ou criar um novo e adicioná-lo ao seu grupo de volume (VG). Veja esta questão para ponteiros sobre este assunto.
  • Volumes lógicos (sistemas de arquivos) - Depois de expandir o PV ou criar um novo e adicioná-lo ao VG, você deve expandir o volume lógico (LV) e o sistema de arquivos que ele contém. A questão referenciada no ponto anterior descreve como fazer isso.
  • Espaço em disco no sistema host - Este é o quarto / nível implícito de abstração e, na verdade, é "acima" dos anteriores. Embora o comando VBoxManage provavelmente tenha resultado em uma alteração trivial no uso do espaço em disco do sistema host, uma vez que você comece a usar esse espaço no ambiente virtualizado, o uso do espaço em disco físico aumentará. Supondo que você tenha espaço em disco real suficiente, isso não deve ser um problema e não afeta o que você precisa fazer; Eu o menciono apenas por completo.

A resposta de Olavi Sau parece estar correta, mas é apresentada na ordem inversa do que você deve realmente fazer, então pode ser confuso. (Isto é, a resposta descreve as operações do sistema de arquivos / LV antes das operações de partição / PV; mas você precisa fazer as operações de partição / PV primeiro.) Assim, eu achei que apresentar uma resposta "visão panorâmica" seria um complemento útil.

    
por Rod Smith 03.05.2017 / 15:16