Windowsパーティションを条件付きでマウント

Windowsパーティションを条件付きでマウント

デュアルブート(Windows 10 / CentOS 7)を使用しているので、音楽、写真など、いくつかのファイルを2つのオペレーティングシステム間で共有したいと思います。だから、起動中に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

おすすめ記事