Como posso redimensionar uma partição LVM? (isto é, volume físico)

70

Eu quero encolher minha segunda partição (LVM), para criar uma nova partição no espaço recém-liberado. Estou usando o Live CD para fazer isso, porque sei que não posso redimensionar / mover essa partição enquanto ela estiver em uso. Quando abri o GParted no Live CD, percebi que não podia redimensionar a partição, porque quando clico nele com o botão direito, a opção "redimensionar / mover" fica desativada.

Eu tentei desmontá-lo, "preguiçar", desmontá-lo ( umount -l /dev/sda2 ), mas não funcionou.

Uma captura de tela do GParted:

    
por Idan Yadgar 03.10.2012 / 23:20

9 respostas

41

Parece haver muitos resultados no Google em que as pessoas tiveram problemas semelhantes. Um exemplo:

Faça backup de todos os seus dados importantes antes de tentar isso. Sempre assuma que você pode perder todos os seus dados ao redimensionar partições.

Encolher o LVM sem o dataloss

Este tópico do fórum sugere o seguinte procedimento, neste exemplo encolhemos uma partição de 10G para 9G:

  

Primeiro, desmontamos.

sudo umount /dev/vg_blah/lv_blah
     

Verifique o sistema de arquivos.

sudo e2fsck -f /dev/vg_blah/lv_blah
     

Redimensione o sistema de arquivos e o volume lógico. Fazer isso em uma etapa pode evitar erros que causam perda de dados. (Observe que o parâmetro -L interpreta G como 2 ^ 30 bytes e g como 10 ^ 9 bytes.)

sudo lvreduce --resizefs -L 9G /dev/vg_blah/lv_blah
     

(opcional) Remova uma unidade física do grupo de volumes, se desejado (se você tiver uma unidade não usada).

sudo vgreduce vg_blah /dev/sdxy

Todo o crédito vai para brianmcgee .

Nota: vgreduce falhará com cannot resize to xxxxx extents as later ones are allocated se você tiver outro lv no final do disco - Eu tive um swap lv, que eu deletei. Veja Como diminuir os volumes lógicos e físicos do Ubuntu LVM? para ajudar nessa situação.

    
por pzkpfw 03.10.2012 / 23:53
39

Você pode reduzir / estender um volume lógico com muita facilidade usando uma ferramenta GUI: system-config-lvm . Porque system-config-lvm não vem pré-instalado, uma vez iniciado a partir de um live-cd, você tem que instalá-lo:

sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) universe"
sudo apt-get update
sudo apt-get install system-config-lvm

Depois de instalado, execute o programa, selecione o volume lógico que deseja alterar no painel esquerdo e clique em "Editar propriedades".

Agora mude os parâmetros como quiser!

Uma coisa boa sobre system-config-lvm é que ele não permitirá que você prossiga se o novo tamanho da partição for menor do que todos os seus dados existentes combinados (acabei de testar isso e vi por mim mesmo).

Referências:

  1. How-To Geek tutorial (este é o origem das imagens).
  2. Guia completo da Red Hat para o programa.
por Cao Minh Tu 30.06.2014 / 11:33
16

Estas são todas as etapas necessárias para redimensionar uma partição LVM ou LVM2 -

sudo lvresize --verbose --resizefs -L -150G /dev/ubuntu/root

sudo pvresize --setphysicalvolumesize {any size here} /dev/sda5

/dev/sda5: cannot resize to xxxxx extents as later ones are allocated.

Você precisa reorganizar o espaço não alocado no final do LVM. Isso significa depois da partição root e swap_1. Então, você precisa mover esse espaço livre usando o comando abaixo

pvs -v --segments /dev/sda5

Isso mostrará a saída como abaixo

/dev/sda5 ubuntu lvm2 a-- 698.04g 150g 0 xxx root 0 linear /dev/sda:0-xxx
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g xxx yyyy 0 free                          
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g yyyy end swap 0 linear /dev/sda5:yyyy-end

Agora use o comando abaixo para remover a fragmentação externa -

sudo pvmove --alloc anywhere /dev/sda5:yyyy-end

Agora vamos ver como vai ser -

pvs -v --segments /dev/sda5

Isso mostrará a saída como abaixo

/dev/sda5 ubuntu lvm2 a-- 698.04g 150g 0 xxx root 0 linear /dev/sda:0-xxx
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g xxx yyyy swap 0 linear /dev/sda5:xxx-yyyy
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g yyyy end 0 free

Depois disso, use o gparted e redimensione o LVM para a área máxima utilizada e o restante estará no espaço não alocado. Aproveite ...

    
por UJJAL 02.04.2015 / 08:42
10

Apenas a versão mais recente do Gparted (0.14) suporta o redimensionamento de volumes físicos do LVM. A versão que vem com o Ubuntu 12.10 ou 13.04 não suporta isso.

Veja como redimensionar um volume físico LVM:

  1. Se o grupo de volumes associado ao volume físico LVM não tiver espaço não alocado suficiente, você precisará fazer alguns diminuindo um volume lógico. Veja a resposta do bigbadonk420 para instruções sobre como fazer isso. Você também pode usar os discos do GNOME (incluídos no Ubuntu) para algumas das etapas, se preferir uma GUI.

  2. Grave a última imagem .iso do site do GParted e grave-a em um CD ou coloque-a um stick USB. Inicialize a partir do CD ou do pen drive. Como alternativa, você pode compilar a versão mais recente do GParted a partir do código-fonte.

  3. Use o GParted para redimensionar o volume físico do LVM. O GParted não permite diminuir o volume físico do LVM para um tamanho menor do que o permitido pelo espaço não alocado.

por Flimm 28.11.2012 / 18:03
9

Eu recomendaria outra ferramenta GUI - KVPM . Ele combina a funcionalidade do GParted e do system-config-lvm. Além disso, permite algumas operações em partições ao vivo (montadas) que system-config-lvm não permite No entanto, o volume tem que ser desmontado para encolher.

Está no repositório do universo desde o Ubuntu 12.04, então faça sudo apt-get install kvpm

Nota: inicie-o com direitos de root sudo kvpm

    
por Kos 15.01.2016 / 13:01
8

Eu encontrei essa resposta por acidente, mas isso funcionou para mim, pelo menos. No meu caso eu já tinha um espaço em disco não alocado reservado depois da raiz, então eu pulo a parte como você obtém mais espaço e apenas explico como eu usei isso no root sem inicializar.

NOTA: Em vez de usar gparted , provavelmente é melhor usar system-config-lvm . Da próxima vez eu usaria esse em vez disso ... Minha versão gparted era 0,18.

  1. Primeiro, usei gparted para estender a partição raiz o máximo que pude. Para minha surpresa, estendeu apenas os tamanhos físicos e não fez nada para a parte lógica. Então, o comando df -k disse que o disco estava cheio ainda.
  2. lvresize -l +100%FREE /dev/ubuntu-vg/root estende a partição lógica o máximo possível. Não há necessidade de verificar e calcular GBs ou blocos em vários métodos.
  3. resize2fs /dev/ubuntu-vg/root é o terceiro passo que fiz: ele estende o sistema de arquivos ao tamanho da partição lógica.

O último passo pode ser mesclado no segundo:

lvresize -l +100%FREE --resizefs /dev/ubuntu-vg/root

    
por Timo Riikonen 29.09.2015 / 12:09
0

Aviso sobre a resposta mais votada no momento : Para NÃO destruir sua nova instalação padrão com a opção LVM (14.04 Trusty Tahr), 1) ler a página inteira, 2) excluir swap 3) e provavelmente modificar o comando para "Reduzir o tamanho do volume lógico "assim:

lvreduce -L -1g /dev/vg_blah/lv_blah

Recomendo vivamente system-config-lvm .

    
por user293759 13.04.2017 / 14:25
0

Além dos @ bigbadonk420 's answer , Em vez de fazer o seguinte:

resize2fs -p /dev/vg_blah/lv_blah 9G
lvreduce -L -1G /dev/vg_blah/lv_blah

Faça:

lvreduce -r -L 9G /dev/vg_blah/lv_blah

Observe o -r , que reduz o sistema de arquivos simultaneamente e é seguro.

    
por eyeinsky 02.05.2015 / 17:13
0

Para fazer isso usando o GParted, clique com o botão direito em dev / sda2 (que você deseja encolher). Selecione 'Desativar'. Agora você poderá redimensionar sua partição lvm.

Atualização: a solução @Cao Min Tu é muito melhor. Eu tive alguns problemas com o GParted depois de redimensionar

    
por Junaid 30.10.2016 / 12:17