질문
mdadm
매뉴얼 페이지에서 "레거시 배열"이라고 부르는 슈퍼블록이 없는 RAID 배열이 있습니다 . 마침내 systemd가 부팅 시 데이터 파티션을 마운트하도록 했지만 systemd가 프로세스에서 종속성 순서에 대한 몇 가지 오류를 발생시켰습니다. 나는 /etc/fstab
문제가 발생하지 않고 systemd가 지정된 대로 내 파일 시스템을 마운트할 수 있도록 이러한 문제를 해결하고 싶습니다 .
(아니요, systemd의 출력을 억제하는 것이 유효한 해결책이라고 생각하지 않습니다.)
세부 사항
이것은 레거시 어레이입니다. 이는 "일반" 부팅 프로그램(이 경우 Debian Linux)이 부팅 시 자동으로 이를 어셈블할 수 없음을 의미하며, 이는 이 어레이에 파티션을 마운트하는 데 실패해야 함을 의미합니다. 해결책은 시작 중에 어레이를 조립하는 명령을 삽입하는 것입니다.
내 어레이를 성공적으로 조립하고 사용하려면 다음을 수행해야 합니다. (이름 수정됨)
mdadm --build /dev/md0 --raid-devices=2 --level=0 /dev/sdh /dev/sdi
이 어레이에서는 부팅 시 마운트할 파티션을 마운트 하고 mount -a
./etc/fstab
UUID="abcdefgh" /mnt/a ntfs-3g defaults,auto 0 0
UUID="12345678" /mnt/b ntfs-3g defaults,auto 0 0
이러한 항목을 전달하고 명령을 실행한 후 mdadm
입력할 때 원하는 결과를 얻습니다 mount -a
.
systemd 서비스 유닛을 생성(활성화 종료)하여 raid assemble 명령을 주입합니다.
[Unit]
Before=mnt-a.mount mnt-b.mount
[Service]
TYPE=oneshot
ExecStart=mdadm --build /dev/md0 --raid-devices=2 --level=0 /dev/sdh /dev/sdi
[Install]
WantedBy=local-fs-pre.target
이것이 작동하는 동안 systemd 내에 종속성 순환이 생성되어 오류 메시지가 생성되는 것 같습니다.
sysinit.target: Job apparmor.service/start deleted to break ordering cycle starting with sysinit.target/start
sysinit.target: Job local-fs.target/start deleted to break ordering cycle starting with sysinit.target/start
분명히 시스템이 복구되었고 마침내 볼륨과 작동하는 OS를 마운트했습니다. 내 생각에는 를 사용함으로써 시작 프로세스에서 사용 가능한 것보다 더 빠른 시간을 암묵적으로 사용하고 있는 것 ntfs-3g
같습니다 . apparmor
이 문제를 어떻게 해결할 수 있나요?