소프트 RAID 1에 GRUB을 올바르게 설치하는 방법은 무엇입니까? 포맷 된

내 설정에는 다음과 같은 방식으로 포맷 된 두 개의 디스크가 있습니다.

(GPT)
1)  1MB   BIOS_BOOT
2)  300MB LINUX_RAID
3)  *     LINUX_RAID

부팅 파티션은 / dev / md1의 루트 디렉토리 인 / dev / md0에 매핑됩니다. md0은 ext2로, md1은 XFS로 포맷됩니다. (SD 형식이 아닌 md 장치에서 형식을 지정해야한다는 것을 알고 있습니다.이 형식이 틀렸다면 알려주십시오.)

한 드라이브가 고장 나더라도 다른 드라이브가 여전히 부팅되도록 GRUB을 올바르게 설정하는 방법 그리고 대체로 교체 드라이브에도 GRUB이 자동으로 포함됩니까? 물론 가능하다면.



답변

두 개의 디스크가있는 경우 /dev/sda/dev/sdb, 모두를 실행 grub-install /dev/sda하고 grub-install /dev/sdb. 그러면 두 드라이브 모두 단독으로 부팅 할 수 있습니다.

Grub 구성이와 같은 디스크를 하드 코딩하지 말고 (hd0)부팅 및 루트 파일 시스템의 UUID를 검색하십시오.

두 디스크를 RAID-1 어레이에있는 것으로 선언하여 두 디스크 grub-install모두에 자동으로 쓰 도록 Grub에서 지원하는 것을 알지 못합니다 . 즉 grub-install, 하나의 디스크를 교체하면 다시 실행해야합니다 . RAID 어레이에 새 구성원을 추가하는 것 외에해야 할 일이 하나 더 있습니다.


답변

나는 과거에 꽤 많은 서버 에서이 작업을 수행했으며 때로는 문제를 발견했습니다. 일반적으로 내가하는 일은 다음을 실행합니다.

sudo grub-install /dev/sdb
sudo update-grub /dev/sdb

내가 겪은 문제는 일반적으로 다음과 같은 오류 메시지와 함께 표시됩니다.

update-grub … update-grub failed with no such disk …

이 문제를 해결하려면

sudo mv /boot/grub/device.map /boot/grub/device.map.old
sudo update-grub

그리고 이것은 문제를 해결 한 것으로 보입니다-어떤 경우에는 테스트를 통해 제거 /sdv/sda하고 방금 /dev/sdb부팅 하는 데 사용 되었지만 이것이 이상적이지 않으며 대부분의 프로덕션 환경에서는 가능하지 않습니다!


답변

CentOS 5 및 CentOS 6을 설치 한 경험은 설치 단계에서 그 당시에 RAID-1을 구성했다는 것입니다. 설치시이 옵션을 선택할 수 있습니다. 1. / dev / sda1을 1GB로 RAID 파티션으로 정의했습니다. 2. / dev / sdb1을 1GB로 RAID 파티션으로 정의했습니다. 3. / dev / sda1로 구성된 RAID 장치 / dev / md0을 생성했습니다. 및 / dev / sdb1 4. / dev / md0을 사용하여 / boot 파티션을 작성했습니다. 5. 1-3 단계를 사용하여 추가 파티션을 작성하십시오. 6. 다음 지시 사항에 따라 5 단계에서 작성된 파티션에 LVM을 구현하십시오.

초기 시스템 부팅 후 grub.conf에서 / dev / sda1 항목을 / dev / md0으로 변경했습니다. 그런 다음 스플래시 이미지 줄에 항목 (hd0,0)을 복사하고 처음에 #을 추가하고 (hd0,0)을 (hd1,0)으로 변경했습니다. / dev / sdb에 grub을 설치하는 방법을 보여주는 위의 답변을 보면 다음을 따르십시오. 부트 마운트 포인트가 / dev / md0을 사용하도록 fstab을 수정하십시오 (이 작업을 수행하면 yum 업데이트를 수행 할 때 / boot 파티션에 업데이트 된 내용이 / dev / sda1 및 / dev / sdb1 모두에 기록됨) ). / dev / sda 하드 드라이브 오류가 발생하면 복구를 사용하여 부팅하고 (hd0,0) 행을 주석 처리하고 (hd1,0) 행의 주석 처리를 제거해야합니다. 시스템이 부팅 가능해야합니다