Como mover partições de inicialização e raiz para outra unidade

23

Eu tenho duas unidades no meu computador com a seguinte configuração:

Drive 1: 160GB, /home
Drive 2: 40GB, /boot and /

Infelizmente, a unidade 2 parece estar morrendo, porque tentar escrever para ela está me dando erros, e verificar as configurações SMART mostra um estado triste.

Eu tenho bastante espaço na Unidade 1, então o que eu gostaria de fazer é mover as partições / e / boot para ela, remover a Unidade 2 do sistema, substituir a Unidade 2 por uma nova unidade e reverter o processo .

Eu imagino que preciso fazer algumas atualizações no grub, e eu preciso mudar algumas coisas, mas estou muito confuso sobre como exatamente fazer isso. Como este é o meu computador principal, quero ter cuidado para não estragar as coisas, por isso não consigo arrancar.

    
por mlissner 01.09.2010 / 02:56

3 respostas

3

Minha solução final para isso foi uma combinação de várias técnicas. Liguei a unidade de tingimento e a sua substituição ao computador em simultâneo. O novo drive era menor que o antigo, então eu encolhi as partições no antigo usando gparted. Depois de fazer isso, copiei as partições na unidade antiga e as colei na nova (também usando o gparted). Em seguida, adicionei o sinalizador de inicialização à partição correta na nova unidade, de modo que era efetivamente um espelho da unidade antiga.

Tudo funcionou bem, mas eu precisava atualizar o grub2 de acordo com as instruções aqui: link

Depois de tudo isso foi feito, as coisas parecem funcionar. Obrigado a todos pela ajuda.

    
por mlissner 04.09.2010 / 10:35
29

Você precisará inicializar a partir de um CD ao vivo. Adicione partições para eles no disco 1, copie todo o conteúdo e use sudo blkid para obter o UUID de cada partição. No novo disco do / 1, edite o / etc / fstab para usar os novos UUIDs que você acabou de procurar.

A atualização do GRUB depende do GRUB1 ou GRUB2. Se GRUB1, você precisa editar o /boot/grub/device.map

Se o GRUB2, eu acho que você precisa montar suas partições como elas estariam em uma situação real. Por exemplo:

sudo mkdir /media/root
sudo mount /dev/sda1 /media/root
sudo mount /dev/sda2 /media/root/boot
sudo mount /dev/sda3 /media/root/home

(Preenchendo todas as partições reais que você copiou as coisas, é claro)

Em seguida, ligue o mount / proc e / dev no / media / root:

sudo mount -B /proc /media/root/proc
sudo mount -B /dev /media/root/dev
sudo mount -B /sys /media/root/sys

Agora faça o chroot na unidade para forçar o GRUB a se atualizar de acordo com o novo layout:

sudo chroot /media/root
sudo update-grub

O segundo comando fará uma reclamação (eu esqueço o que é, no entanto ...), mas não há problema em ignorar.

Teste-o removendo a unidade defeituosa. Se não funcionar, a unidade defeituosa ainda poderá inicializar o sistema, mas acredito que todas essas etapas sejam necessárias.

    
por maco 01.09.2010 / 08:14
5

Se você substituir a unidade imediatamente, poderá usar dd (tentei no meu servidor há alguns meses e funcionou como um encanto).

Você precisará de um CD de inicialização para isso também.

  1. Iniciar o CD de inicialização
  2. Montar apenas a unidade 1
  3. Execute dd if=/dev/sdb1 of=/media/drive1/backuproot.img - sdb1 como sua partição raiz ( / ). Isso salvará a partição inteira em um arquivo.
    • mesmo para /boot
  4. Desligue, substitua o disco, ligue
  5. Executar dd if=/media/drive1/backuproot.img of=/dev/sdb1 - escreva de volta.
    • mesmo para /boot

O acima irá criar 2 partições com o mesmo tamanho que antes. Você pode precisar ajustar o grub (verifique o post de macos).

Se você quiser redimensionar suas partições (como eu fiz):

  1. Crie 2 partições na nova unidade (para / e /boot ; tamanho que você quiser)
  2. Monte a imagem de backup: mount /media/drive1/backuproot.img /media/backuproot/
  3. Monte a partição / vazia: mount /dev/sdb1 /media/sdb1/
  4. Copie seu conteúdo para a nova partição (não tenho certeza sobre esse comando, é realmente importante preservar a propriedade, cp -R não fará isso!) %código%
    • mesmo para cp -R --preserve=all /media/backuproot/* /media/sdb1

Isso deve ser feito.

    
por sBlatt 01.09.2010 / 11:53