udisksctl
파일 시스템 이미지 작업을 할 때 제가 선택한 도구입니다(최근의 예, 하지만 난 이런 일을 해왔어어디에나).
춤은 대개 다음과 같습니다.
fallocate -l ${img_size} filesystem.img
mkfs.${fs} filesystem.img
# Set up loop device as regular user
loopback=$(udisksctl loop-setup -b "${img_file}" | sed 's/.* \([^ ]*\)\.$/\1/')
# Mount as regular user
mounted=$(udisksctl mount -b "${loopback}" | sed 's/^.* \([^ ]*\)$/\1/')
# Do the testing/benchmarking/file management
# e.g.:
cp -- "${files[@]}" "${mounted}"
udisksctl
솔직히 말해서 나는 구문 분석 방식에 대해 나쁜 느낌을 가지고 있습니다. 이것은 분명히 인공적인 문자열입니다:
Mapped file filesystem.img as /dev/loop0. Mounted /dev/loop1 at /run/media/marcus/E954-81FB
나는 누구도 실제 형식 "API"를 고려하지 않는다고 생각합니다. 따라서 내 스크립트가 나중에 충돌할 수 있습니다! (이미지 파일 이름에 개행 문자가 포함되어 있으면 코 악마가 생길 것입니다.)
udisksctl
"도자기" 출력 옵션이나 그와 유사한 것은 없는 것 같습니다. udisksctl
정확하고 명확한 출력으로 udisks2를 통해 사용자 권한으로 루프백 설치를 수행하는 기존 방법이 있습니까 ?