Mover / boot e MBR para uma nova unidade

11

Eu tenho um servidor CentOS 6 com dois discos rígidos. Minha antiga unidade de 3 TB tem me dado alguns problemas, então estou movendo as coisas para uma nova unidade. Como minhas partições / e /home são gerenciadas por um LVM, foi fácil migrá-las para a nova unidade. Agora quero mover minha partição /boot e o MBR que faz tudo iniciar.

Eu carreguei um CD ao vivo e rsynced sobre minha partição /boot para a mesma partição de tamanho na minha nova unidade. Eu também tentei copiar meu MBR com os seguintes comandos:

dd if=/dev/sda of=mbrbackup bs=512 count=1
dd if=mbrbackup of=/dev/sdb bs=446 count=1

Depois de fazer isso eu reiniciei, disse ao meu BIOS para não olhar para o disco rígido antigo durante o ciclo de inicialização e só olhar para a nova unidade, mas tudo o que acabei com foi um cursor piscando.

Eu perdi um passo aqui? Ou há outra coisa que eu preciso fazer para fazer as coisas inicializarem para que eu possa remover completamente o meu disco antigo?

EDIT: Estou começando a pensar que o rsync não era o caminho para copiar a partição / boot de uma unidade para outra. Com base no este guia , eu tentei usar o despejo comando em vez disso. Nesse comando, copiei minha partição de inicialização antiga e não montada para minha partição de inicialização nova, vazia e montada.

dump -0f - /dev/sdaX | (cd /mnt/boot; restore -rf -) 

Estou recebendo um erro de grub 15 na inicialização, que é melhor que um cursor piscante, mas não sei se isso está mais próximo de uma solução.

    
por Cloudkiller 06.02.2013 / 20:58

4 respostas

3

Se os dois discos rígidos forem do mesmo tamanho (ou o novo for maior), por que você não copiou o disco antigo para o novo disco? Ou seja,

dd if=/dev/sda of=/dev/sdb

Agora, se o novo disco rígido for maior, altere os tamanhos das partições com parted ou gparted. Tudo isso feito a partir de um CD / USB-stick ao vivo.

    
por 07.02.2013 / 01:22
4

Acontece que usar rsync ou dump para copiar a partição / boot estava causando o problema. Com base na resposta de erick acima, inicializei um CD ao vivo no modo de recuperação e executei os seguintes comandos dd.

dd if=/dev/sda of=mbrbackup bs=512 count=1
dd if=mbrbackup of=/dev/sdb bs=446 count=1
dd if=/dev/sda1 of=/dev/sdb1

Eu corri os dois primeiros dd's novamente apenas para ter certeza que tudo foi copiado corretamente e não corrompido com todos os testes que eu tenho feito. Então eu corri o terceiro dd para copiar a partição de boot do meu disco antigo para o meu novo. Depois disso eu desliguei, peguei meu disco antigo e inicializei sem problemas no meu CentOS.

Deve ter havido algum problema causado pelo uso do dump em uma unidade montada que fez com que a cópia não funcionasse corretamente. Independentemente disso, dd fez o truque. Obrigado pela sua ajuda a todos.

    
por 07.02.2013 / 15:03
2

Em vez de dd, criei um novo volume. Mais etapas, mas podem corrigir problemas em vez de copiá-los. Eu tive um / boot muito pequeno que foi corrompido. Eu também estava usando o cento7 com o grub2. Então, minhas instruções requerem alguns ajustes ou upgrade para o grub2, como sugerido por psusi. Tentei anotar as alterações.

NOTA: Quando eu uso "/ dev / sdx", eu estou supondo que você saiba que o "sdx" precisa ser alterado para qualquer nome do disco / volume que você quer que seja /boot.

  • Use fdisk (não cfdisk) para Particionar com o tipo 83 (parte normal do linux) e marque como inicializável.
    • Motivo do fdisk: o cfdisk inicia a partição muito em breve, sem espaço para o carregador de boot. Lembre-se, o gerenciador de inicialização precisa se ajustar antes da partição.
  • Crie o sistema de arquivos na partição. Ext [234], xfs. outros?.
  • Monte em / boot
  • Copie os arquivos * .img do antigo / inicialize para o / boot… pelo menos aqueles que você deseja manter.
  • Eu também copiei arquivos vmlinuz- * do antigo / inicializo para / boot ... não tenho certeza se isso é necessário.
  • Executar o grub2-install / dev / sdx
    • Nota 1: Se você estiver usando o grub (em vez de grub2), acredito que o comando correto seja o grub-install / dev / sdx
    • Nota 2: Isto é instalado antes da partição que acabamos de formatar, por isso NÃO a aponta para / dev / sdx1!
  • Execute o grub2-mkconfig -o /boot/grub2/grub.cfg
    • Nota: Se você estiver usando o grub (em vez de grub2), isso é diferente. Isso pode ajudar, não tenho certeza: link
  • Não se esqueça de atualizar o / etc / fstab para / boot
referências de

: link link link link link

    
por 20.03.2018 / 16:45
1

O problema é que você não deve usar dd para copiar o MBR dessa maneira. Você simplesmente precisa reinstalar o grub na nova unidade para obter um MBR atualizado corretamente . O MBR contém a localização do arquivo grub stage 2, que mudou quando você restaurou o dump.

Além disso, você deve atualizar para o grub2, pois o legado do grub não é mantido há anos, e o grub2 não requer uma partição não lvm / boot.

    
por 07.02.2013 / 15:55

Tags