/ 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.