두 개의 하드 드라이브가 있는 CentOS 6 서버가 있습니다. 기존 3TB 드라이브에 문제가 있어서 새 드라이브로 옮겼습니다. 내 /
파티션은 /home
LVM에서 관리되기 때문에 새 드라이브로 쉽게 마이그레이션할 수 있습니다. 이제 /boot
파티션을 이동하여 모두 MBR로 부팅 가능하게 만들고 싶습니다 .
Live CD를 로드하고 새 드라이브의 동일한 크기로 파티션을 rsynced
덮어썼습니다 . /boot
또한 다음을 사용하여 MBR 복사를 시도했습니다.
dd if=/dev/sda of=mbrbackup bs=512 count=1
dd if=mbrbackup of=/dev/sdb bs=446 count=1
이 작업을 수행한 후 재부팅하여 BIOS에 부팅 주기 동안 이전 하드 드라이브를 보지 않고 새 드라이브만 보라고 지시했지만 결국 깜박이는 커서만 보게 되었습니다.
여기서 한 단계를 놓치고 있습니까? 아니면 이전 드라이브를 완전히 삭제할 수 있도록 부팅하기 위해 수행해야 할 다른 작업이 있습니까?
편집: rsync가 /boot 파티션을 한 드라이브에서 다른 드라이브로 복사하는 방법이 아니라고 생각하기 시작했습니다. 기반으로이 가이드, 대신 dump 명령을 사용해 보았습니다. 이 명령에서는 마운트되지 않은 이전 부팅 파티션을 마운트된 비어 있는 새 부팅 파티션에 복사합니다.
dump -0f - /dev/sdaX | (cd /mnt/boot; restore -rf -)
부팅 시 grub 오류 15가 발생합니다. 이는 깜박이는 커서보다 낫지만 이것이 해결책에 더 가까운지는 모르겠습니다.
답변1
rsync 또는 dump를 사용하여 /boot 파티션을 복사하면 문제가 발생한 것으로 나타났습니다. 위의 Eric의 답변을 바탕으로 Live CD를 복구 모드로 부팅하고 다음 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
나는 모든 것이 올바르게 복사되었고 내가 수행한 모든 테스트에서 손상된 것이 없는지 확인하기 위해 처음 두 개의 dd를 다시 실행했습니다. 그런 다음 세 번째 dd를 실행하여 이전 드라이브의 부팅 파티션을 새 드라이브로 복사했습니다. 그런 다음 종료하고 기존 드라이브를 제거한 후 아무 문제 없이 CentOS로 부팅했습니다.
마운트된 드라이브에서 덤프를 사용하면 몇 가지 문제가 발생하여 복사가 제대로 작동하지 않게 됩니다. 어쨌든 dd는 작동했습니다. 도움을 주셔서 감사합니다.
답변2
두 드라이브의 크기가 같거나 새 드라이브가 더 큰 경우 기존 드라이브를 새 드라이브에 복사하면 어떨까요? 즉
dd if=/dev/sda of=/dev/sdb
이제 새 하드 드라이브가 더 크면 parted 또는 gparted를 사용하여 파티션 크기를 변경하세요. 이 모든 작업은 Live CD/USB 스틱에서 부팅하여 수행됩니다.
답변3
dd를 만드는 대신 새 볼륨을 만들었습니다. 추가 단계가 있지만 문제를 재현하기보다는 문제를 해결할 수도 있습니다. 내 /boot가 너무 작고 손상되었습니다. 나는 또한 cento7과 grub2를 사용하고 있습니다. 따라서 내 지침에는 psusi에서 제안한 대로 grub2로 업그레이드하거나 일부 조정이 필요합니다. 나는 변화를 기록하려고 노력한다.
참고: "/dev/sdx"를 사용할 때 "sdx"를 /boot로 지정하려는 디스크/볼륨 이름으로 변경해야 한다는 것을 알고 있다고 가정합니다.
- fdisk(cfdisk 아님)를 사용하여 유형 83(일반 Linux 부분)을 분할하고 부팅 가능으로 표시합니다.
- fdisk의 원인: cfdisk 부팅 파티션이 너무 빠르고 부트 로더를 위한 공간이 없습니다. 부트로더는 파티션 앞에 있어야 한다는 점을 기억하세요.
- 파티션에 파일 시스템을 만듭니다. 확장자[234],xfs. 다른 사람들? .
- /boot에 마운트
- *.img 파일을 기존 /boot에서 /boot로 복사하세요. 최소한 유지하려는 파일은 복사하세요.
- 또한 vmlinuz-* 파일을 이전 /boot에서 /boot로 복사했습니다. 필요한지 확실하지 않습니다.
- grub2-install /dev/sdx 실행
- 참고 1: grub2 대신 grub을 사용하는 경우 올바른 명령은 grub-install /dev/sdx입니다.
- 참고 2: 방금 포맷한 파티션 앞에 설치되므로 /dev/sdx1을 가리키지 마십시오!
- grub2-mkconfig -o /boot/grub2/grub.cfg 실행
- 참고: grub2 대신 grub을 사용하면 상황이 달라집니다. 도움이 될 수 있지만 확실하지는 않습니다. http://www.linuxandubuntu.com/home/how-to-change-boot-order-set-default-boot-os-in-ubuntu-14-10-15-04-linux-mint-or-other- 파생상품
- /boot에 대해 /etc/fstab을 업데이트하는 것을 잊지 마세요.
인용하다: http://www.ocztechnologyforum.com/fo...226#post373226 http://www.politianmemory.com/forums/...ead.php?t=3696 http://thunk.org/tytso/blog/2009/02/...se-block-size/ https://ubuntuforums.org/showthread.php?t=1528529 https://wiki.centos.org/HowTos/Grub2
답변4
dd
문제는 MBR을 이렇게 복사 하면 안된다는 것입니다 . 새 드라이브에 grub을 다시 설치하면 됩니다.바르게MBR이 업데이트되었습니다. MBR에는 덤프를 복원할 때 변경되는 grub 2단계 파일의 위치가 포함되어 있습니다.
또한 이전 버전의 grub은 수년 동안 유지 관리되지 않았고 grub2에는 lvm이 아닌 /boot 파티션이 필요하지 않기 때문에 grub2로 업그레이드해야 합니다.