어레이에서 구성 요소 HDD를 제거하면 RAID1 어레이가 "비활성화"됨에 따라 "루트 장치를 마운트할 수 없습니다"와 유사한 메시지가 표시되는 "(initramfs)" 아래의 "사용 중 상자" 쉘에 들어갑니다.
다음을 사용하여 시작할 수 있습니다.
(initramfs): mdadm --run /dev/md0
(initramfs): exit
그런 다음 시작된 RAID1을 사용하여 정상적으로 부팅되고(파일 시스템은 RAID1 배열에 있음) 다른 드라이브를 제거할 때까지 정상적으로 부팅이 계속됩니다(이 경우 정확히 동일하게 수행됩니다).
Google은 "BOOT_DEGRADED=참"하지만 DEBIAN에서는 작동하지 않습니다.
도 있습니다" 사용에 대한 게시물md-mod.start_dirty_degraded=1"를 커널 이미지에 대한 부팅 인수로 사용. GRUB 메뉴 옵션으로 전달하려고 시도했지만 아무 소용이 없습니다.
있을 수도 있습니다그것을 설명하는 뭔가, 그러나 나는 이해하는 초보자입니다 :(
어떤 아이디어가 있나요?
답변1
initramfs는 /scripts/local-top/mdadm을 실행하여 raid를 처리합니다. 해당 스크립트에는 다음 문장이 있습니다.
if $MDADM --assemble --scan --run --auto=yes${extra_args:+ $extra_args};
then
verbose && log_success_msg "assembled all arrays."
else
log_failure_msg "failed to assemble all arrays."
fi
Debian Jessie와 함께 제공되는 mdadm 버전에서는 --scan과 함께 사용할 때 --run 매개변수가 무시되는 것 같습니다. 매뉴얼 페이지에 따르면 성능이 저하된 경우에도 모든 어레이를 활성화해야 한다고 되어 있습니다. 하지만 대신 성능이 저하된 모든 어레이는 '비활성'으로 표시됩니다. 루트 파일 시스템이 비활성 어레이 중 하나에 있으면 부팅 프로세스가 중단됩니다.
이 스크립트를 수정한 다음 명령을 사용하여 initramfs를 다시 빌드하는 것이 가능합니다 update-initramfs -u
.
- 스크립트를 로컬 재정의 디렉터리에 복사합니다.
mdadm --run
첫 번째 시도가 실패할 경우 각 어레이에서 개별적으로 실행할 몇 가지 추가 행을 사용하여 스크립트를 패치합니다 .- initramfs를 업데이트합니다.
다음 명령은 이전 단계를 수행합니다. 복사하기 전에 /etc/initramfs-tools/scripts/local-top/mdadm 파일이 아직 없는지 확인하세요.
cd /etc/initramfs-tools/scripts/local-top
cp /usr/share/initramfs-tools/scripts/local-top/mdadm .
patch --verbose --ignore-whitespace <<'EndOfPatch'
--- mdadm
+++ mdadm
@@ -76,7 +76,15 @@
if $MDADM --assemble --scan --run --auto=yes${extra_args:+ $extra_args}; then
verbose && log_success_msg "assembled all arrays."
else
- log_failure_msg "failed to assemble all arrays."
+ log_warning_msg "failed to assemble all arrays...attempting individual starts"
+ for dev in $(cat /proc/mdstat | grep md | cut -d ' ' -f 1); do
+ log_begin_msg "attempting mdadm --run $dev"
+ if $MDADM --run $dev; then
+ verbose && log_success_msg "started $dev"
+ else
+ log_failure_msg "failed to start $dev"
+ fi
+ done
fi
verbose && log_end_msg
EndOfPatch
update-initramfs -u
이 업데이트된 initramfs를 사용하면 루트 파일 시스템을 포함하는 RAID1에 드라이브가 없을 때 개입 없이 부팅할 수 있습니다.