Diminuir imagem do disco

0

Portanto, tenho uma imagem de disco criada executando dd e copiando um disco rígido cheio (~ 67 GB). Meu objetivo final é obter essa imagem de 70 GB a 55 GB. A imagem aparece da seguinte maneira em termos de partições:

boot partition
volume group containing the following logical volumes:
    root.fs 4GB
    localhd.fs 62GB
    swap.fs 2GB

O que acabei fazendo foi montar essa imagem e reduzir o volume lógico do local em 15 GB. Até este ponto não houve problemas.
A minha pergunta é como eu realmente reduzir a imagem em si depois de reduzir o tamanho do volume lógico - estou assumindo que o encolhimento de 15GB simplesmente resultou em 15GB de espaço livre não alocado. Eu quero me livrar desse 15Gb todos juntos.

    
por Florin Stingaciu 31.05.2013 / 21:02

1 resposta

1

Depois de reduzir o volume lógico, você provavelmente terá algumas extensões livres no meio do volume físico. Se você realmente quiser reduzir a imagem do disco, você deve ter espaço livre no final do disco, não no meio. Você pode tentar fazer isso em várias etapas:

  1. Use pvdisplay para descobrir como as extensões físicas (PEs) são alocadas em seu volume:

    pvdisplay --maps /dev/sdXY
    
  2. Se extensões livres estiverem no meio, use pvmove para mover alguns PEs do final de PV, então que todo o espaço livre será deixado no final do PV - você precisa da seguinte sintaxe para mover PEs com números explicitamente especificados:

    pvmove --alloc anywhere /dev/sdXY:2000-2999 /dev/sdXY:1000-1999
    

    Como alternativa, se o volume problemático for swap, será mais rápido excluí-lo e recriá-lo (mas certifique-se de que nada depende de seu UUID ou de que você o atualize apropriadamente).

  3. Depois de liberar algum espaço no final do PV, use pvresize para reduzir o volume físico:

    pvresize --setphysicalvolumesize 53G /dev/sdXY
    

    (ajuste o tamanho do volume de acordo com seus números).

    Infelizmente, a tentativa pvresize pode falhar se você tiver duas áreas de metadados nesse PV. Neste caso, você pode tentar o processo perigoso descrito em este tópico da lista de discussão do LVM (backup VG, refazer pvcreate com UUID & restorefile, restaurar VG).

  4. Encontre o tamanho exato do PV nos setores:

    pvdisplay --units s /dev/sdXY
    
  5. Desative o grupo de volumes, para que a partição não seja usada:

    vgchange -an VolGroupName
    
  6. Redimensione a partição que contém o PV para o tamanho exibido na etapa 4. Esta é a etapa mais perigosa, porque parted não suporta o redimensionamento real de partições PV do LVM, portanto, você precisará excluir a partição e em seguida, recrie-o exatamente com o mesmo primeiro setor de antes e o último setor calculado a partir do primeiro setor e o tamanho do PV em setores ( end = start + size - 1 ). Você pode usar fdisk ou parted (se você usar a tabela de partição GPT, deverá usar parted ou gdisk (fdisk GPT), porque fdisk não suporta GPT). Tenha cuidado para evitar definir o tamanho da partição muito pequeno.

  7. Reinicialize se solicitado (se você esqueceu de desativar o grupo LVM ou ainda teve algo do mesmo disco montado).

  8. Verifique se o LVM VG pode ser ativado e usado sem problemas.

  9. Veja a saída fdisk -lu /dev/sdX para encontrar o último número de setor usado; então você pode cortar a imagem no tamanho apropriado (novamente, tenha cuidado para evitar que o tamanho da imagem seja muito pequeno).

por 31.05.2013 / 22:35