Como movo minha partição raiz LVM 250 GB para um novo disco rígido de 120 GB?

18

Eu tenho a seguinte situação:

Minha instalação atual do Ubuntu (12.04) está sendo executada em um disco rígido externo (250 GB) porque eu estava com preguiça de comprar um novo disco rígido interno. Agora eu tenho um novo interno (120 GB) e quero mover tudo para o interno. Instalar o Ubuntu new está fora de discussão porque é peronalizado.

Felizmente (espero que sim), a partição raiz é particionada com LVM, então espero poder mover a partição para o HDD interno menor.

Isso é possível? E onde encontro ajuda?

EDIT: Esta questão já é bastante antiga e pode estar desatualizada. Eu adicionei a versão do Ubuntu que era usada na época.

NotANormalNerd
fonte
questão relacionada - as respostas acima não são suficientes claro ...
MeSO2
as duas respostas acima não são claras o suficiente para mim. Então a começou um novo post.
MeSo2 16/02

Respostas:

39

Como você suspeita, isso é extremamente elegante usando LVM.

Reduza a instalação existente para caber no disco menor.

Instale fisicamente o novo disco rígido, o formato e pvcreateele, use-o vgextendpara adicioná-lo à mesma vg que sua partição raiz

Use pvmovepara mover de forma transparente todos os dados da partição antiga

Use vgreducepara remover seu hd externo do seu vg. Desconecte o disco antigo / dev / sdOLD.

No exemplo abaixo:

  • /dev/sdOLD representa a partição antiga para substituir
  • /dev/sdNEW significa que a nova partição deve ser substituída.
  • vgX significa o grupo de volumes

Exemplo: é claro que você precisa ter 100% de certeza de que está usando os dispositivos certos. Além disso, é essencial ter backups completos e atualizados, removidos do sistema.

pvcreate /dev/sdNEW
vgextend vgX /dev/sdNEW
pvmove /dev/sdOLD
vgreduce vgX /dev/sdOLD

Use update-grube grub-installpara inicializar seu novo disco raiz

Feito.

Floyd
fonte
Seria bom se você tivesse fornecido exemplos concretos.
Isaaclw
12
Ah, que bom votar em um post aceito válido com informações úteis. Eu intencionalmente NÃO dei um exemplo concreto, porque o perigo é que alguém copie e cole isso sem pensar e destrua seus dados. Se você fizer alguma coisa com o lvm, poderá encontrá-lo com os ponteiros que dou.
Floyd
2
Trabalhou no Cento7 também. As etapas fornecidas aqui foram suficientes para eu aprender um pouco e pesquisar um pouco no google. Spot-on
terário 17/03/18
centos: use grub2-mkconfig -o "$ (readlink -e /etc/grub2.cfg)" ... a partir daqui
terário 17/03/18
21

Primeiro, se você usou todo o disco de 250 GB para sua instalação atual, será necessário reduzi-lo para caber no disco de 120 GB. Você só pode reduzir um sistema de arquivos ext4 enquanto não estiver montado, portanto, será necessário inicializar um sistema ao vivo do Ubuntu (CD ou USB) ou um sistema ao vivo de manutenção especializado, como o GParted live . Você pode usar resize2fsou GParted para redimensionar o sistema de arquivos existente.

Depois de reduzir o (s) sistema (s) de arquivos da instalação existente para caber no novo disco, você pode fazer o resto com o sistema de arquivos montado, se desejar. Se o sistema de arquivos existente se encaixar no novo disco, você pode fazer a transferência sem desmontar nada ou reiniciar.

Na descrição a seguir, mostrarei como mover do volume físico /dev/sdb1para o volume físico /dev/sda1, com um grupo de volumes existente chamado oldvg. Certifique-se de ajustar as letras do disco e os números da partição para corresponder ao seu sistema.

Para fazer uma transferência ao vivo:

  1. Particionar o novo disco, usando a ferramenta de particionamento de sua escolha ( cfdisk, fdisk, parted, ...). Veja, por exemplo, como adiciono um disco rígido adicional?
  2. Crie um volume físico no novo disco: pvcreate /dev/sda1
  3. Inclua este volume físico no grupo de volumes existente que contém os volumes lógicos que você deseja mover: vgextend oldvg /dev/sda1
  4. Mova os volumes lógicos de um volume físico para outro: pvmove /dev/sdb1 /dev/sda1
  5. Divida o grupo de volumes existente em dois: vgsplit oldvg newvg /dev/sda1

Outro método é transformar o (s) volume (s) lógico (s) existente (s) em um volume espelhado lvconvert --mirror, configurar um espelho no novo disco e depois dividir os espelhos lvconvert --splitmirrors. Dessa forma, você acaba com duas cópias dos seus dados e, após a divisão, cada cópia leva sua própria vida.

Depois de fazer a cópia, você precisará tornar o novo disco inicializável. Monte o sistema de arquivos para isso. Supondo que esteja montado/mnt , execute estes comandos como root:

chroot /mnt
# if the name of the volume group has changed, edit /etc/fstab
update-grub
grub-install /dev/sda

Como alternativa, você pode usar o Clonezilla . Essa é uma ferramenta poderosa de manipulação e clonagem de disco, e acho que cobre sua situação, mas não tenho experiência com ela.

Gilles 'SO- parar de ser mau'
fonte
1
Como uma resposta que basicamente diz pvadd, pvmove, pvremovefor aceito durante este está além de mim ...
ish
Muito complicado e não o que ele precisa
Floyd