Mover a instalação para o novo disco

10

Atualmente, tenho um hd com essas partições:

/dev/sdb1    /
/dev/sdb2    swap
/dev/sdb3    /home

Estou pensando em comprar um ssd para minha partição / .

Agora minha pergunta é: É possível mover / converter minha configuração atual para a nova (dois discos, / home permanece)? Prefarably de dentro do sistema running?

    
por Chris 07.01.2011 / 14:56

3 respostas

11

Eu não recomendo usar dd . Ele apenas faz um setor mudo por cópia de setor, o que significa que ele falhará se a partição de destino for menor e perder muito tempo copiando espaço livre e, se a partição de destino for maior, o espaço adicional não estará disponível até você executar resize2fs para expandir o sistema de arquivos.

É melhor fazer isso de um live CD, porque se você copiar arquivos enquanto eles estão sendo modificados, você terá resultados corrompidos.

Formate o ssd e monte a nova partição ssd e a partição raiz original montadas e, em seguida, execute apenas sudo cp -ax /media/old-partition/* /media/new-partition , em que a partição antiga e a nova partição são substituídas por seus pontos de montagem reais. Isso copia todos os arquivos, preservando a propriedade, as permissões e os timestamps.

Em seguida, execute sudo grub-install --root-directory=/media/new-partition /dev/SSD_DEVICE , depois de substituir os valores corretos por nova partição e SSD_DEVICE. Isso instalará o grub, tornando o disco inicializável.

Depois de reinicializar (certificando-se de que sua BIOS está configurada para inicializar a partir do ssd em vez da unidade antiga), verifique se você está executando a partir do ssd e não da unidade antiga, verificando a saída de df e / ou mount , e você deve ser bom para eliminar a partição antiga.

Ah, e você desejará editar o arquivo /etc/fstab na nova partição depois de copiar e atualizar o UUID da partição raiz para corresponder ao UUID da nova partição SSD em vez da antiga. Você pode encontrar esse UUID executando sudo blkid .

Editar: adicionado / * na cópia acima, mas necessário editar para ter mais de 6 caracteres. Agora são 101 caracteres!

    
por psusi 07.01.2011 / 16:18
1

Este comando:

dd if=/dev/sdb1 of=DEVICE_PATH_OF_SSD_DRIVE

deve funcionar para clonar a partição / na unidade SSD.

EDIT: isso só funcionará se sua partição for do mesmo tamanho da unidade. Se eles não forem do mesmo tamanho, você pode usar partimage :

partimage -z0 -d save /dev/sdb1 clone.partimg
partimage restore DEVICE_PATH_OF_SSD_DRIVE clone.partimg
rm clone.partimg

Uma advertência para este método é que você precisa de espaço suficiente em sua unidade para uma imagem contendo todo o conteúdo de / . Você deve estar bem se tiver > 10 GB gratuitos. Caso contrário, você pode usar -z1 em vez de -z0 para compactar a imagem. Para uma compactação ainda maior, use -z2 . Além disso, o partimage não suporta o sistema de arquivos ext4 .

Depois de ter feito isso, você deve montar o SSD e verificar se os dados foram copiados corretamente:

$ mkdir /tmp/ssd
$ sudo mount -t ext4 DEVICE_PATH_OF_SSD_DRIVE /tmp/ssd
$ ls /tmp/ssd
bin    dev   initrd.img      lost+found  opt   sbin     sys  var
boot   etc   initrd.img.old  media       proc  selinux  tmp  vmlinuz
cdrom  home  lib             mnt         root  srv      usr  vmlinuz.old

Substitua ext4 pelo sistema de arquivos que você usou para / .

Você provavelmente precisará instalar o gerenciador de inicialização GRUB nesta unidade:

sudo grub-install DEVICE_PATH_OF_SSD_DRIVE

Você precisará editar o arquivo /etc/fstab para substituir /dev/sdb1 pelo caminho do dispositivo da sua unidade SSD na entrada montada em / . ( sudo $EDITOR /etc/fstab )

Por favor, aguarde até que esta resposta tenha alguns votos positivos antes de seguir estas instruções. Eu não sou especialista nessas coisas, então eu posso ter perdido alguma informação vital. Qualquer um que veja alguma falha nisso, por favor, adicione um comentário explicando-os. Você deve tomar essas precauções, porque se algo der errado, poderá deixar o computador não inicializável.

    
por dv3500ea 07.01.2011 / 15:24
0

Leia primeiro como migrar, Existe uma maneira fácil de transferir um sistema operacional de um disco rígido para outro? .

Inicialize a partir do seu SSD e adicione a seguinte linha a /etc/fstab (é apenas uma ligação):

/media/slowhd/home /home none rw,bind 0 0

Inicie o mount -a para ativar as alterações.

Dica : não use mount /dev/yourhd /home porque você perde a flexibilidade de mover diretórios adicionais para o seu antigo hd.

Uma solução mais técnica seria usar LVM (gerenciador de volume lógico) .

    
por Raphael Bossek 07.01.2011 / 23:35