배경
저는 dracut을 사용하여 사용자 정의 initrd를 구축하고 있습니다. 그것:
- ext4 디스크 파티션을 다음에 마운트하십시오.
/data
- 네트워크를 통해 저장된 squashfs 이미지 검색
/data
- Squashfs 설치
/sysroot
하위 디렉터리와/data/overlay
상위 디렉터리 로 squashfs 미러 에 overlayfs를 설치합니다.- 마운트
/data
를 바인딩합니다./sysroot/data
마지막 단계는 새 루트에서 새 이미지를 데이터 파일 시스템에 기록하여 덮어쓰는 내용을 검사할 수 있도록 완료되었습니다. 내가 아는 한 이것은 새로운 루트에서는 수행될 수 없습니다.
systemd.mount 장치를 사용하여 이러한 마운트를 구현하고 있습니다(예: 마지막 마운트).
[Unit]
After=sysroot.mount
After=data.mount
[Mount]
Where=/sysroot/data
What=/data
Type=none
Options=bind
[Install]
WantedBy=initrd.target
질문
/sysroot/data
불행히도 systemd는 switch_root 전에 제거됩니다. 또한 /data
squashfs 이미지를 마운트 해제하려고 시도 하지만 해당 이미지가 사용 중이기 때문에 실패합니다.
이러한 설치를 유지하도록 systemd에 지시하는 방법이 있습니까? 내가 읽고문서스토리지 데몬에 대해 이 작업을 수행하는 방법에 대해서는 설치에 대해 수행하는 방법을 지정하지 않습니다.
답변1
/data를 /sysroot/data에 바인드 마운트할 필요는 없습니다.
initrd를 종료하면 문제 없이 블록 장치를 다시 마운트할 수 있습니다.mount /dev/sda1 /data