Windows 파티션을 조건부로 마운트

Windows 파티션을 조건부로 마운트

듀얼부팅(Windows 10/CentOS 7)을 사용하고 있기 때문에 음악, 사진 등 일부 파일을 두 운영 체제 간에 공유하고 싶습니다. 그래서 부팅하는 동안 Windows 데이터 파티션을 자동 마운트하는 것이 좋을 것이라고 생각했습니다. 그러나 Windows를 최대 절전 모드로 전환하고 Linux에서 다시 시작하여 특정 작업을 수행한 다음 다시 Windows로 돌아가야 하기 때문에 이것이 항상 가능한 것은 아닙니다.

그렇다면 부팅 중에 이 파티션을 자동으로 마운트하려면 어떻게 해야 합니까? 단, ""더러운" 것으로 감지되면 읽기 전용으로 마운트하십시오."라는 조건이 적용됩니다.

답변1

FUSE 도우미를 만들어 설치를 /usr/bin시도 하고, 실패할 경우 설치를 다시 시도하세요 . (FUSE에 익숙하지 않다면rwro사용자 정의 파일 시스템을 관리하기 위한 사용자 코드.)

/usr/bin/windowsfs다음 내용으로 파일을 만듭니다. 실행 가능하게 만드세요.

#!/bin/bash
mount "$@" || mount "$@" -o ro

패키지를 설치합니다 fuse(CentOS에서 이름이 무엇인지는 잘 모르겠지만 FUSE 파일 시스템을 지원하는 도구와 하위 시스템을 제공합니다).

/etc/fstabWindows 파티션을 /dev/sda2유형으로 선언 fuse.windowsfs하고 마운트하는 이와 같은 줄을 사용하십시오./mnt/dsk

/dev/sda2 /mnt/dsk fuse.windowsfs defaults 0 0 

이 줄이 실행되면 FUSE 도우미를 호출하여 /usr/bin/windowfs파티션을 마운트합니다. 다음은 쓰기 가능한 마운트를 시도하지만 필요한 경우 읽기 전용 마운트로 대체하는 스크립트입니다.

사용 후에는 표준 umount /mnt/dsk작업만으로 파티션을 마운트 해제할 수 있습니다.


보다 강력한 windowsfs스크립트는 다음과 같을 수 있습니다. 두 설치가 모두 실패하면 "일반" 설치에서 오류 메시지가 표시됩니다.

#!/bin/bash
#
exec 3>&1
error1=$(mount "$@" 2>&1 1>&3); ss1=$? ss2=0
[[ 0 -lt $ss1 ]] && { error2=$(mount "$@" -o ro 2>&1 1>&3); ss2=$?; }
[[ 0 -lt $ss2 ]] && { error="$error1" ss=$ss1; } || { error="$error2" ss=$ss2; }

[[ 0 -lt $ss ]] && echo "$error" >&2
exit $ss

관련 정보