Eu tenho um servidor Centos 6 residente no ambiente de nuvem que eu quero mover a partição raiz do disco rígido existente para outro.
No disco rígido original (/ dev / xvda1), ele tem outra pasta como /var
, /usr
, e eu não quero movê-los, então não posso simplesmente dd
todo o antigo disco rígido para um novo (/ dev / xvdh1).
Eu tenho agora rsync
todo o conteúdo em /
(exceto os mencionados acima) para /dev/xvdh1
e /var
/usr
para outro disco rígido (/ dev / xvdg). Eu modifiquei o seguinte arquivo no novo disco rígido para usar o novo UUID:
- / etc / fstab
- /boot/grub/grub.conf
Aqui está a saída de blkid
:
/dev/xvdh1: UUID="9b84e28c-5a12-4889-804a-753e56645333" TYPE="ext4"
linha em /etc/fstab
que fazem o /
mount:
UUID="9b84e28c-5a12-4889-804a-753e56645333" / ext4 defaults 1 1
/boot/grub/grub.conf
:
default=0
timeout=1
title CentOS 6 (2.6.32-573.18.1.el6.x86_64)
root (hd0,0)
kernel /boot/vmlinuz-2.6.32-573.18.1.el6.x86_64 ro root=UUID=9b84e28c-5a12-4889-804a-753e56645333 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD console=ttyS0,115200 crashkernel=auto SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM
initrd /boot/initramfs-2.6.32-573.18.1.el6.x86_64.img
Eu também tenho dd
do código do setor de inicialização de /dev/xvda
para /dev/xvdh1
:
dd if=/dev/xvda of=/dev/xvdh bs=446 count=1
Saída dos dois metadados do disco rígido:
# file -s /dev/xvda
/dev/xvda: x86 boot sector; GRand Unified Bootloader, stage1 version 0x3, boot drive 0x80, 1st sector stage2 0x8cc500, GRUB version 0.94; partition 1: ID=0x83, active, starthead 32, startsector 2048, 16775168 sectors, code offset 0x48
# file -s /dev/xvda1
/dev/xvda1: Linux rev 1.0 ext4 filesystem data (needs journal recovery) (extents) (large files) (huge files)
# file -s /dev/xvdh
/dev/xvdh: x86 boot sector; GRand Unified Bootloader, stage1 version 0x3, boot drive 0x80, 1st sector stage2 0x8cc500, GRUB version 0.94; partition 1: ID=0x83, active, starthead 32, startsector 2048, 4192256 sectors, code offset 0x48
# file -s /dev/xvdh1
/dev/xvdh1: Linux rev 1.0 ext4 filesystem data (needs journal recovery) (extents) (large files) (huge files)
Quando todas as etapas acima forem feitas, desanexei o disco rígido antigo e anexei o novo disco rígido como /dev/xvda1
, depois inicializo. No entanto, quando eu inicializo a máquina eu fiquei com o erro no grub:
Booting from Hard Disk...
Geom Error
O tamanho de /dev/xvda1
e /dev/xvdh1
é diferente e, obviamente, o UUID também é diferente. Então minha pergunta é: eu preciso fazer um grub-install
para fazer a modificação que eu fiz no grub.conf
entrar no código do setor de inicialização? Ou nunca é necessário fazer isso porque o código de inicialização é o mesmo e as informações da partição raiz nunca são armazenadas lá, onde o código de inicialização conseguirá ler o grub.conf
para obter as informações sem precisar de etapas extras?
Por favor, tire alguma luz se eu precisar alterar qualquer outro arquivo para fazer o grub inicializar o servidor, obrigado. (versão do grub: 0.94)