RSYNC를 사용하여 드라이브 복제 후 GRUB 복구

RSYNC를 사용하여 드라이브 복제 후 GRUB 복구

로컬로 복제해야 하는 원격 서버(물리적으로 액세스할 수 없음)가 있습니다. 그래서 보조 HD를 로컬 Linux 서버에 연결하고 부팅, 스왑 및 루트 파티션을 생성하고 원격 서버의 모든 데이터를 재동기화했습니다. 복사 프로세스는 잘 진행되지만 새 드라이브를 부팅할 수 있도록 grub을 활성화하려고 하면 이런 일이 발생합니다(원격 서버에는 LVM 파티션이 있는 반면 로컬 드라이브에서는 부팅, 스왑 및 루트를 정상적으로 생성했습니다).

복사한 이미지를 다음과 같이 설치합니다.

mount /dev/sdb3 /mount && mount /dev/sdb1 /mount/boot/

mount --bind /dev /mount/dev && mount --bind /dev/pts /mount/dev/pts && mount --bind /proc /mount/proc && mount --bind /sys /mount/sys
chroot /mount

그런 다음 grub을 설치하려고 합니다.

grub-install /dev/sdb

장치를 찾을 수 없습니다/dev/mapper/VolGroup-lv_root

파일을 /boot/grub/stage1잘못 읽었습니다.

(해당 드라이브로 부팅을 시도했지만 "grub Rescue" 프롬프트가 표시됨)

/dev/mapper/VolGroup-lv_root원격 서버의 루트 파티션입니다. 여기서 무엇을 해야 할지 모르겠습니다. 폴더를 삭제 /boot/grub/하고 grub을 다시 설치해 보았지만 같은 현상이 발생했습니다. 이제 이것이 루트 파티션임을 grub에게 어떻게 알릴 수 있습니까? /dev/sda3아니면 이 문제를 어떻게 해결합니까?

grub.conf 파일:

default=0

timeout=5

splashimage=(hd0,0)/grub/splash.xpm.gz

hiddenmenu

title Red Hat Enterprise Linux Server (2.6.32-573.7.1.el6.x86_64)

        root (hd0,0)

        kernel /vmlinuz-2.6.32-573.7.1.el6.x86_64 root=/dev/sda1

        initrd /initramfs-2.6.32-573.7.1.el6.x86_64.img

복제된 드라이브에 대한 fdisk -l 출력:

   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1   *           1          66      524288   83  Linux

Partition 1 does not end on cylinder boundary.

/dev/sdb2              66        2155    16777216   82  Linux swap / Solaris

Partition 2 does not end on cylinder boundary.

/dev/sdb3            2155       41774   318241792   83  Linux

Partition 3 does not end on cylinder boundary.

답변1

/etc/fstabLVM에서 비LVM으로의 변경 사항을 반영하려면 파일과 GRUB 구성을 업데이트해야 합니다 . 원래 GRUB(즉, GRUB의 더 나은 버전)를 사용하는 경우 에서 수행하면 됩니다 /boot/grub/grub.conf. GRUB2(즉, GRUB의 귀찮은 버전)를 사용하는 경우에는 여러 가지를 변경해야 합니다. 마운트가 아닌 실제 장치를 참조하는 다른 서비스(특히 udev)가 있을 수 있으므로 모든 LVM 장치가 참조되는 위치를 확인하려면 전체 /etc/defaults/grub/디렉토리에서 시간을 보낼 가치가 있을 것입니다. /etc?).

grep -r 'VolGroup' /etc

관련 정보