Como reduzir um volume físico?

0

Eu tenho um volume físico em uma partição que se estende por todo o disco, digamos / dev / sda1 usando 100% de / dev / sda. Agora eu preciso encolher para criar o / dev / sda2. Um volume lógico realmente usa ~ 50% do PV, então, teoricamente, há bastante espaço disponível, mas tudo é alocado dentro do PV único. Existe uma maneira segura de reduzir o volume físico (e a partição de disco subjacente), para criar algum espaço extra para a segunda partição? Infelizmente, minha configuração exclui a possibilidade de transferir temporariamente o volume físico para outro dispositivo.

Claro, sei que posso fazê-lo em nível de arquivo (como fazer backup do conteúdo, reparticionar a unidade de disco e recriar a configuração do LVM), mas prefiro fazer o trabalho sem a necessidade de configurar o LV coçar, arranhão.

Obrigado antecipadamente.

    
por Jasio 03.11.2018 / 10:37

1 resposta

1

Se você só precisa de outro sistema de arquivos separado, você não precisa criar uma nova partição: você pode criar outro volume lógico LVM dentro do grupo de volumes existente usando o espaço não alocado no PV. Mas se você precisa especificamente de uma nova partição , faça o que planejou originalmente.

O

GParted é uma ferramenta GUI que pode fazer toda a operação de redimensionamento da partição PV + para você. Você provavelmente encontrará na coleção de pacotes da sua distribuição.

Mas se você não puder ou não quiser usá-lo por algum motivo, continue a ler ...

Reduzir um volume físico LVM que tenha espaço não alocado é bem simples. Por exemplo, para reduzir o tamanho de / dev / sda1 para 40 GiB:

# pvresize --setphysicalvolumesize 40G /dev/sda1

Este comando é seguro, pois ele se recusará a fazer qualquer coisa se a parte do PV que ele irá cortar contiver extensões alocadas.

Mas esse é apenas o primeiro passo. O segundo passo será reduzir o tamanho da própria partição.

Por segurança, é recomendável reduzir inicialmente o PV um pouco mais do que o planejado para reduzir a partição, de modo que, após encolher a partição, você possa estender explicitamente o PV para cobrir o tamanho total da partição. Se a operação de extensão falhar, você saberá imediatamente que algo deu errado ao redimensionar a partição e não estará deixando erros ocultos para prender você ou outra pessoa no futuro.

Você pode reduzir uma partição usando um comando simples do Linux fdisk , mas deve ter em mente algumas coisas:

  • Ao usar fdisk para redimensionar uma partição, defina-a para exibir todos os tamanhos de partição e os locais iniciais em setores primeiro. Durante o histórico do Linux fdisk , seu comportamento variou aqui: versões modernas fazem isso por padrão, versões mais antigas podem precisar de uma opção -u ou -u=sectors para fazer isso.
  • Ao redimensionar uma partição existente, não é possível mover o ponto inicial da partição. (Se você mover o ponto de partida, não será mais uma operação de redimensionamento simples, mas uma operação de movimentação de partição mais complexa.)

Ao usar fdisk , quaisquer alterações serão gravadas no disco somente quando você usar o comando w . Então eu sugiro continuar assim:

  • use sfdisk -d /dev/sda > /safe/location/partition_table_backup.dump para fazer backup da tabela de partições existente.
  • inicie fdisk /dev/sda no modo interativo
  • use o comando p para visualizar a tabela de partições atual e verificar se os valores "start" e "end" são exibidos como setores. Anote o valor de "início".
  • use o comando d para excluir a entrada da partição atual para sda1 .
  • use o comando n para recriar a entrada de partição primária 1 para sda1 no tamanho desejado, tomando o cuidado de especificar a localização do primeiro setor exatamente como estava (ou seja, o mesmo número que foi exibido no início "valor do comando p ).
  • use o comando t para definir o tipo da partição 1 como "Linux LVM".
  • verifique seu trabalho
  • use o comando w para gravar a tabela de partições atualizada e sair em fdisk .

Preste atenção à mensagem exibida por fdisk no final. Se ele disser "O kernel ainda usa a tabela antiga", algo está bloqueando a atualização da tabela de partição on-line. Você pode tentar partprobe /dev/sda dizer ao kernel para reler a tabela de partições (usando uma interface mais nova do que algumas versões antigas de fdisk use, então isso pode ajudar e certamente não vai doer) e então veja cat /proc/partitions para ver se a partição é agora reconhecida pelo kernel no tamanho esperado.

Se o redimensionamento da partição for bem-sucedido, você poderá executar pvresize /dev/sda1 . Se você seguiu meu conselho e redimensionou o PV inicialmente um pouco menor do que o novo tamanho desejado da partição, agora ele deve estender com sucesso o PV um pouco para cobrir totalmente a partição redimensionada automaticamente. Se este comando relatar um erro, você provavelmente cometeu um erro ao especificar o novo tamanho e deve usar sfdisk /dev/sda < /safe/location/partition_table_backup.dump para restaurar a tabela de partição para o que era inicialmente e, em seguida, tente novamente.

(Em sistemas muito antigos, você pode ter que desativar o VG antes de executar partprobe ou mesmo reinicializar para permitir que o sistema leia novamente a tabela de partições atualizada.)

Quando a operação de redimensionamento estiver concluída, você poderá usar fdisk novamente para criar a segunda partição necessária. Sim, você também pode fazer isso juntos enquanto redimensiona a partição, mas fazer apenas uma coisa de cada vez é mais seguro e garante que você possa reverter suas alterações facilmente, se necessário.

    
por 03.11.2018 / 13:12

Tags