/ boot 및 MBR을 새 드라이브로 이동


11

두 개의 하드 드라이브가있는 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가 발생하지만 솔루션에 더 가까운 지 알 수 없습니다.


왜 새 드라이브에 그럽 설치하지 않습니까?
— frostschutz

grub-install을 실행하는 데 지칠 때마다 부팅이 끝나고 grub 프롬프트 만 표시되었습니다.
— Cloudkiller 2013

답변:


3

두 개의 하드 디스크 크기가 같거나 새 디스크가 더 큰 경우 이전 디스크를 새 디스크로 복사하지 않은 이유는 무엇입니까? 즉

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

이제 새 하드 디스크가 더 큰 경우 파티션 크기를 parted 또는 gparted로 변경하십시오. 이 모든 작업은 라이브 CD / USB 스틱에서 부팅되었습니다.


그들은 다른 크기입니다. 3tb는 서버에 너무 과잉이어서 조금 더 빠른 속도를 기대하면서 1tb 랩터로 이동했습니다. 어쨌든 복제는 문제가되지 않는 것 같습니다. 최소한 LVM 부분은 쉽게 움직였으며 마지막 덤프로 부팅 파티션이 완전히 복사 된 것으로 보입니다. 이제 문제가 어떻게 든 Grub 또는 MBR과 관련이 있다고 생각합니다. 문제는 grub2와 LVM과 상호 작용하여 문제를 해결하는 방법에 대해 충분히 모른다는 것입니다.
— Cloudkiller 2013

비트 복사를 위해 비트를 수행하는 dd를 사용하는 것은 특히 디스크 크기가 현재 테라 바이트 범위에 있고 실제 데이터의 양이 디스크에서 10GB보다 작을 때보 다 데이터 마이그레이션을 수행하는 고대 방법입니다. 많은 라이브러리가 설치된 SUSE를 새로 설치하면 하나의 파일로 tar하는 디스크에서 약 5GB를 실행하고 8GB 메모리 스틱을 사용하여 해당 tar 파일을 이동시킵니다. 부팅 파티션은 EFI이든 MBR이든 몇 가지만 실행합니다. MB.
— ron

BIOS 대신 EFI 또는 UEFI를 사용할 수 있고 MBR & dos 부팅 파티션이 아닌 GPT를 통해 EFI 부팅 파티션이있는 경우 기본적으로 EFI 파티션을 fat32로 포맷하고 몇 MB의 관련 파일을 복사하면됩니다. 그렇지 않으면 MBR의 경우 작동 방식을 이해하지 못하고 새 디스크와 관련하여 해당 주소를 수정 한 다음 첫 번째 섹터의 새 디스크에 새 MBR을 설치하여 BIOS가 올바르게 액세스 할 수 있도록해야합니다. 하드웨어가 EFI 가능
— 기능인

ELILO는 GRUB / GRUB2보다 낫습니다. GRUB에 너무 많은 것들이 있습니다. 하나의 elilo.conf 파일이 완성되었습니다! 하나의 파일 만 부팅하지 않고보고 수정하는 경우
— ron

4

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는 트릭을 수행했습니다. 여러분의 도움에 감사드립니다.


이것은 무지 의 좋은 예입니다 . MBR의 문제를 해결하기 위해 복구 CD가 무엇을했는지 스스로에게 물어보십시오. 시스템에 두 개의 디스크를 동시에 가지고있는 디스크 중 하나는 sda이고 어떤 디스크는 sdb이며 이전 디스크를 제거하고 새 디스크 만있는 경우 해당 디스크가 변경되어 sda 또는 sdb가됩니까?
— ron

수행하는 작업에 따라 중요하지 않을 수 있지만 일반적으로 device-id 또는 UUID와 같은 고유 한 방법으로 디스크를 부팅하거나 식별하는 것이 좋습니다.
— ron

dd와 MBR을 사용하는 것은 전자 연료 분사 (EFI)를 이용한 전자 점화보다는 엔진에서 점과 응축기를 사용하는 것과 같습니다.
— ron

3

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를 실행하십시오.
  • / 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


2

문제는 ddMBR을 복사하는 데 사용해서는 안된다는 것입니다. 올바르게 업데이트 된 MBR 을 얻으려면 새 드라이브에 grub을 다시 설치하기 만하면 됩니다. MBR에는 덤프를 복원 할 때 변경된 grub stage 2 파일의 위치가 포함됩니다.

또한 grub 레거시가 수년간 유지되지 않았으며 grub2에는 lvm / boot 파티션이 필요하지 않기 때문에 grub2로 업그레이드해야합니다.


grub2를 사용하고 있는데 CentOS 6 설치 프로그램이 디스크에 넣은 것입니다. 또한 비 lvm / boot 파티션도 CentOS에서 제공 한 기본 설정이었습니다. 드라이브에 grub2를 여러 번 다시 설치하려고했지만 제대로 작동하지 않았습니다.
— Cloudkiller 2013
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.