![임베디드 Linux - .mount 단위를 건너뛴 경우 파일 시스템 검사 건너뛰기](https://linux55.com/image/213193/%EC%9E%84%EB%B2%A0%EB%94%94%EB%93%9C%20Linux%20-%20.mount%20%EB%8B%A8%EC%9C%84%EB%A5%BC%20%EA%B1%B4%EB%84%88%EB%9B%B4%20%EA%B2%BD%EC%9A%B0%20%ED%8C%8C%EC%9D%BC%20%EC%8B%9C%EC%8A%A4%ED%85%9C%20%EA%B2%80%EC%82%AC%20%EA%B1%B4%EB%84%88%EB%9B%B0%EA%B8%B0.png)
저는 buildroot로 구축된 Linux 배포판을 실행하는 맞춤형 stm32 기반 보드를 개발 중입니다. 시스템은 SD 카드 또는 eMMC 플래시 메모리에서 부팅할 수 있습니다.
SystemD가 설치되었습니다. rootfs는 읽기 전용 모드로 마운트되어 애플리케이션이 eMMC의 읽기-쓰기 파티션에 데이터를 저장할 수 있습니다.
이 데이터 파티션은 eMMC 플래시에서 부팅할 때만 마운트됩니다. 이를 달성하기 위해 data.mount
필요한 경우 사용할 조건을 추가할 수 있도록 .so 라는 시스템 파일을 만들었습니다 ConditionKernelCommandLine
.
[Unit]
Description=Mount persistent data partition in operating mode
Before=local-fs.target
DefaultDependencies=no
ConditionKernelCommandLine=device=emmc
[Mount]
What=/dev/disk/by-label/data
Where=/data
Type=ext4
Options=defaults,noatime
보드가 SD 카드에서 부팅되면 데이터 파티션은 마운트되지 않지만 systemd-fsck로 계속 확인됩니다. systemd-fsck@dev-disk-by\x2dlabel-data.service
암시적 서비스를 수행합니다.
문제는 eMMC에 파티션이 없을 때 systemd-fsck가 파티션이 나타날 때까지 기다린다는 것입니다. 90년대가 기다려진다.
예상한 조건으로 인해 fsck 종속성도 실행되지 않습니다.
커널 명령을 사용하면 systemd-fsck를 비활성화할 수 있지만 데이터 파티션이 존재하지 않는 경우에만 비활성화하고 싶습니다.
어떤 아이디어가 있나요?