두 개의 하드 드라이브가있는 CentOS 6 서버가 있습니다. 오래된 3TB 드라이브에서 몇 가지 문제가 발생하여 새 드라이브로 물건을 옮기고 있습니다. 내 파티션 /
과 /home
파티션은 LVM에서 관리 하기 때문에 새 드라이브로 쉽게 마이그레이션 할 수 있습니다. 이제 /boot
파티션과 MBR 위로 이동하여 파티션을 모두 시작하려고합니다.
라이브 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 -0f - /dev/sdaX | (cd /mnt/boot; restore -rf -)
부팅시 깜박 거리는 커서보다 나은 grub 오류 15가 발생하지만 솔루션에 더 가까운 지 알 수 없습니다.
답변
두 개의 하드 디스크 크기가 같거나 새 디스크가 더 큰 경우 이전 디스크를 새 디스크로 복사하지 않은 이유는 무엇입니까? 즉
dd if=/dev/sda of=/dev/sdb
이제 새 하드 디스크가 더 큰 경우 파티션 크기를 parted 또는 gparted로 변경하십시오. 이 모든 작업은 라이브 CD / USB 스틱에서 부팅되었습니다.
답변
rsync 또는 dump를 사용하여 / boot 파티션을 복사하면 문제가 발생한 것으로 나타났습니다. 위의 erick의 답변을 바탕으로 라이브 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는 트릭을 수행했습니다. 여러분의 도움에 감사드립니다.
답변
dd 대신 새로운 볼륨을 만들었습니다. 더 많은 단계를 수행하지만 문제를 복사하지 않고 해결할 수 있습니다. 너무 작은 / boot가 손상되었습니다. 나는 또한 grub2와 함께 cento7을 사용하고있었습니다. 그래서 내 지시 사항은 psusi가 제안한대로 grub2로 약간의 조정 또는 업그레이드가 필요합니다. 변경 사항을 기록하려고했습니다.
참고 : “/ dev / sdx”를 사용할 때 “sdx”를 / boot하려는 디스크 / 볼륨 이름으로 변경해야한다는 것을 알고 있다고 가정합니다.
- fdisk (cfdisk 아님)를 사용하여 유형 83 (일반 Linux 부분)으로 파티션하고 부팅 가능으로 표시하십시오.
- fdisk 이유 : cfdisk는 부트 로더를위한 공간없이 파티션을 너무 빨리 시작합니다. 부트 로더는 파티션보다 먼저 들어가야합니다.
- 파티션에 파일 시스템을 만드십시오. Ext [234], xfs. 다른 사람?.
- / boot에 마운트
- 이전의 / boot에서 * .img 파일을 / boot…에 복사하십시오.
- 또한 이전 / boot에서 vmlinuz- * 파일을 / 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 박하 또는 다른 파생 상품
- / boot에 대해 / etc / fstab을 업데이트하는 것을 잊지 마십시오
참조 :
http://www.ocztechnologyforum.com/fo…226#post373226
http://www.patriotmemory.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
답변
문제는 dd
MBR을 복사하는 데 사용해서는 안된다는 것입니다. 올바르게 업데이트 된 MBR 을 얻으려면 새 드라이브에 grub을 다시 설치하기 만하면 됩니다. MBR에는 덤프를 복원 할 때 변경된 grub stage 2 파일의 위치가 포함됩니다.
또한 grub 레거시가 수년간 유지되지 않았으며 grub2에는 lvm / boot 파티션이 필요하지 않기 때문에 grub2로 업그레이드해야합니다.