デュアルブート(Windows 10 / CentOS 7)を使用しているので、音楽、写真など、いくつかのファイルを2つのオペレーティングシステム間で共有したいと思います。だから、起動中にWindowsデータパーティションを自動マウントするのが良いと思いました。ただし、Windowsを休止状態にし、Linuxで再起動して特定のタスクを実行してから再びWindowsに戻る必要があるため、これは必ずしも可能ではありません。
では、ブート中にこのパーティションを自動的にマウントするにはどうすればよいですか?ただし、「汚れた」と検出された場合は、読み取り専用でマウントしてください。という条件が適用されます。
答え1
FUSEヘルパーを作成してインストールを試み/usr/bin
、失敗した場合はインストールを再試行してください。 (FUSEに慣れていない場合rw
ro
カスタムファイルシステムを管理するためのユーザーコード.)
/usr/bin/windowsfs
次の内容でファイルを作成します。実行可能にしてください。
#!/bin/bash
mount "$@" || mount "$@" -o ro
パッケージをインストールしますfuse
(CentOSで名前が何であるかはわかりませんが、FUSEファイルシステムをサポートするツールとサブシステムを提供します)。
/etc/fstab
Windowsパーティションを/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