Como posso redimensionar uma partição LVM? (ou seja: volume físico)


89

Quero diminuir 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 esta partição enquanto ela estiver em uso. Quando abri o GParted no Live CD, percebi que não era possível redimensionar a partição porque, quando clico com o botão direito do mouse, a opção "redimensionar / mover" é desativada.

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

Uma captura de tela do GParted:

Captura de tela do GParted

Respostas:


49

Parece haver muitos resultados no Google, onde as pessoas tiveram problemas semelhantes. Um exemplo:

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

Encolher LVM sem registro de dados

Este tópico do fórum sugere o procedimento a seguir; neste exemplo, reduzimos 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 única etapa pode evitar erros que causam o dataloss. (Observe que o parâmetro lvreduce -Linterpreta Gcomo 2 ^ 30 bytes e g10 ^ 9 bytes.)

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

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

sudo vgreduce vg_blah /dev/sdxy

Todo o crédito vai para brianmcgee .

Nota: vgreducefalhará cannot resize to xxxxx extents as later ones are allocatedse você tiver outro lv no final do disco - eu tive um swap lv, que eu apaguei. Consulte Como reduzir os volumes lógicos e físicos do Ubuntu LVM? para obter ajuda nessa situação.


1
e2fsck -f /dev/vg_blah/lv_blahretorna: "e2fsck: Dispositivo ou recurso ocupado ao tentar abrir / dev / sda2 sistema de arquivos montado ou aberto exclusivamente por outro programa?", o mesmo com resize2fs ...
Idan Yadgar

12
Falta a resposta como redimensionar o volume físico. Além disso, eu recomendo combinar as duas etapas de redimensionamento em uma só lvreduce -r.
Flimm

4
Além disso, você precisa entender que 1Gto lvreduceé 1000000000 bytes, enquanto resize2fsque é um gibibyte. Se você deseja passar 1 gibibyte para lvreduce, use em seu 1glugar.
Flimm

1
Você não usa vgreduce; isto é para remover um PV de um grupo de volumes.
Psusi

2
Eu suspeito fortemente que lvreduceusa G = gibibyte no modo diferencial. Certamente funciona no modo absoluto. Suas páginas de manual são mal escritas e não explicam o que suas unidades significam, o que considero como limítrofe em negligência criminal.
Urhixidur

45

Você pode encolher / estender um volume lógico muito facilmente com uma ferramenta GUI: system-config-lvm. Como system-config-lvmnão vem pré-instalado, uma vez inicializado a partir de um live-cd, você precisa 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, clique em 'Editar propriedades'.

GUI principal do programa Gerenciamento de Volume Lógico

Agora mude os parâmetros como desejar!

Janela Editar Volume Lógico

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

Referências:

  1. Tutorial de como fazer um geek (essa é a origem das imagens).
  2. Guia completo da Red Hat para o programa.

2
A GUI é definitivamente o caminho a seguir, no entanto, você provavelmente precisará executá-la a partir de um CD ao vivo.
Mike

10
por que é system-config-lvmmais arriscado que lvresizeou lvresize -r?
Thufir

1
Você também pode tentar o blivet-gui ( github , Ubuntu PPA ), o gerenciador de partições de última geração que lida com unidades LVM.
Bain

5
Cuidado que system-config-lvm usa unidades de potência de 1024, apesar de usar a expressão (incorreta) 'gigabyte'. Realmente deve gostar palimpsest(também conhecido como Utilitário de Disco) e especificar seu significado em bytes inequívocos.
Urhixidur

4
@Suncatcher em 17.10 e 18.04, você precisa adicionar o repositório Xenial. sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu xenial universe"
M93a

24

Nota : Você deve executar quase todos os comandos a seguir usando um Live CD. Às vezes, ele deseja desmontar a partição que já foi montada em / (nesse caso, você não pode desmontá-la).

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

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

sudo pvresize --setphysicalvolumesize {some-space} /dev/sda5

Se o segundo comando produzir algo parecido com isto:

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

Em seguida, você deve reorganizar o espaço não alocado no final do LVM. Isso significa que após a raiz e a partição swap_1. Portanto, inicialmente, você precisa verificar as informações dos volumes físicos usando o comando abaixo:

sudo pvs -v --segments /dev/sda5

Isso mostrará a saída como:

/dev/sda5 ubuntu lvm2 a-- 698.04g 150g   0 xxx root 0 linear /dev/sda:0-rrr
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g xxx sss 0 free                          
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g zzz ttt swap 0 linear /dev/sda5:yyy-www

Observe o aaaa-www . Use o seguinte comando para remover a fragmentação externa:

sudo pvmove --alloc anywhere /dev/sda5:yyy-www

Agora, vamos ver como vai:

sudo pvs -v --segments /dev/sda5

Isso mostrará a saída como (observe as alterações):

/dev/sda5 ubuntu lvm2 a-- 698.04g 150g   0 xxx root 0 linear /dev/sda:0-rrr
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g xxx ttt swap 0 linear /dev/sda5:xxx-sss
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g yyy www 0 free

Depois disso, use o GParted e redimensione o LVM para a área máxima utilizada e o descanso ficará em espaço não alocado. Desfrutar...


16

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

insira a descrição da imagem aqui insira a descrição da imagem aqui

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


não está no repositório do universo:E: Unable to locate package kvpm
Jeff Puckett


Isso funcionou para mim, onde o "system-config-lvm" não carregou nenhum dispositivo / unidade / sistema de arquivos conectado. Com o bônus adicional de não ter que baixar e repositório extra e estar pré-configurado na minha máquina Ubuntu. Além disso, trabalhei no Gparted, pois isso estava cuspindo erros sobre a redução excessiva do sistema de arquivos. (Eu estou redimensionando um cartão SD RetroOrangepi para baixo de 32GB 8GB para fins de backup)
BiTinerary

Parece bom, pensou que ele poderia querer mais ~ 100M para todas as outras dependências do K, se você ainda não estiver usando o KDE
Xen2050

12

Somente a versão mais recente do Gparted (0.14) suporta o redimensionamento de volumes físicos do LVM. A versão que acompanha o Ubuntu 12.10 ou 13.04 não é compatível.

Veja como redimensionar um volume físico LVM:

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

  2. Grave a imagem .iso mais recente no site da GParted e grave-a em um CD ou em um pendrive. Inicialize a partir do CD ou do pen drive. Como alternativa, você pode compilar a versão mais recente do GParted a partir da fonte.

  3. Use GParted para redimensionar o volume físico do LVM. O GParted não permitirá que você reduza o volume físico do LVM para um tamanho menor do que o espaço não alocado permite.


Obrigado Flimm. Eu esperava que a 12.10 tivesse uma versão recente o suficiente do gparted. Sua resposta me apontou na direção certa.
Martijn Heemels

1
Eu recebi o último gparted, mas ele não me permite alterar os tamanhos das partições ... Eu tenho / dev / sda2 do tipo ext2 e, por baixo, / dev / sda5 do tipo lvm2. Mas gparted diz tanto que min e tamanhos max são os mesmos e, portanto, não permite-me a mudá-lo ... :-(
Paul

Ou uso pvresizeda suíte LVM2, certo?
203967 3/11

@Paul você resolveu isso? Eu tenho exatamente o mesmo problema: S
Castiblanco

@ Castiblanco Eu não resolvi, acabei limpando tudo e reinstalando sem o LVM. Para mim, uma lição aprendida: não use o LVM para instalações de desktop padrão.
Paul

9

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 após a raiz, então pulo a parte de como você obtém mais espaço e apenas explico como eu o usei na raiz sem inicializar.

NOTA: Em vez de usar gparted, você provavelmente está melhor usando system-config-lvm. Na próxima vez em que eu usar esse, minha versão do gparted será de 0,18.

  1. Primeiro, eu costumava gpartedestender a partição raiz o máximo possível. Para minha surpresa, estendeu apenas os tamanhos físicos e não fez nada para a parte lógica. Então o df -kcomando disse que o disco estava cheio ainda.
  2. lvresize -l +100%FREE /dev/ubuntu-vg/rootestende 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 eu fiz: estende o sistema de arquivos ao tamanho da partição lógica.

A última etapa pode ser mesclada na segunda:

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


Isso permite reduzir um volume lógico, mas a pergunta do OP é sobre diminuir um volume físico.
Stefan

você salvou minha vida
Quang Hà 30/11

1

Além dos @ bigbadonk420 's resposta , em vez de fazer o seguinte:

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

Faz:

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

Observe o -rque reduz o sistema de arquivos simultaneamente e é seguro.


Mas isso não diminui o volume físico .
Stefan

0

Aviso sobre a resposta atualmente mais votada : Para NÃO destruir sua nova instalação padrão com a opção LVM (14.04 Trusty Tahr), 1) leia a página inteira, 2) exclua swap 3) e provavelmente modifique o comando para "Reduzir o tamanho da lógica volume "assim:

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

Eu recomendo fortemente system-config-lvm.


Novamente, o OP quer reduzir um volume físico .
Stefan

0

Para fazer isso usando o GParted, clique com o botão direito do mouse em dev / sda2 (que você deseja reduzir). 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 após redimensionar

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.