사례는 다음과 같습니다.
다음과 같이 RAID 1로 설정된 두 개의 디스크가 있습니다.
/dev/md0
(/dev/sda1
+/dev/sdb1
) →/boot
/dev/md1
(/dev/sda2
+/dev/sdb2
) →/
내 시나리오:
- RAID 1 및 전체 어레이 동기화를 사용하여 서버 부팅
- 서버를 정상적으로 종료합니다.
- 디스크 중 하나를 제거합니다(
/dev/sdb
). - 디스크 1개만 사용하여 다시 부팅해 보세요.
내 시나리오는 openSuse 11.3 → 42.1에서 제대로 실행됩니다.
openSuse 42.2에서 디스크 하나만으로 부팅하려고 하면 GRUB가 어레이에도 제대로 로드되지만 루트( /dev/md1
) 장치를 영원히 기다립니다. 배열을 중단하고 계속하고 싶습니다.
저는 DVD에 42.2를 새로 설치하고(zypper 업데이트 유무에 관계없이) 42.1에서 온라인 배포 업그레이드를 수행하여 테스트했습니다. 모든 시나리오에 동일한 문제가 존재합니다.
종료하기 전에 어레이가 손상되면 정상적으로 부팅됩니다(어레이가 손상됨).
또한 명령줄에서 RAID 장치를 지정하는 방법도 테스트했지만( linux .... root=/dev/md1 md=1 /dev/sda2,/dev/sdb2
그림 참조) 도움이 되지 않았습니다.
openSuse Bugzilla에서 개설한 티켓에서 스크린샷을 찾을 수 있습니다.https://bugzilla.opensuse.org/show_bug.cgi?id=1017695
고객 사이트에서 "하드 셧다운"(중앙 아메리카에서 흔히 발생하는 전기(배터리) 정전)으로 인해 디스크가 손상되어 위와 유사한 상황이 발생하는 몇 가지 문제가 발생했기 때문에 이 문제를 해결하는 것이 중요합니다. . 어떻게든 이 문제를 해결할 수 없다면 openSuse 42.2로 업그레이드할 수 없습니다.
/boot
부트로더(GRUB2)는 어떤 디스크에서나 부팅할 수 있고 GRUB는 항상 올바르게 로드되므로( RAID 1 파티션에서도) 문제가 되지 않는 것 같습니다 . 문제는 나중에 루트 파일 시스템이 마운트될 때 발생합니다. 어쩌면 스크립트 문제일까요 dracut-pre-mount
?
모든 아이디어를 환영합니다...
답변1
실제로 openSuse 버그로 확인되었습니다. dracut 구성 파일이 누락되었습니다...
해결 방법은 아래에 설명되어 있습니다.https://bugzilla.opensuse.org/show_bug.cgi?id=1017695