
samba と netatalk (AFP) 経由で外部ドライブを共有するようにファイル サーバーを設定しています。 にドライブを自動的にマウントするための fstab エントリがあり/mnt/external
、さまざまなデーモンによって自動的に共有されます。
問題は、ドライブが正しくマウントされない場合です (たとえば、電源を入れるのを忘れた場合や、その日に仕事に持っていった場合など)。この場合、対応するドライブが接続されていない状態でマウントポイントが共有され、クリーンな障害ではなく、さまざまなメタ ファイルがマウント ポイントに書き込まれます。これにより、次回ドライブを接続したときに (空でないディレクトリ) ドライブが正しくマウントされなくなり、その間に誰かが共有を使用した場合にデータが失われる可能性があります。
ドライブがマウントされていない場合に共有を失敗させる方法はありますか?
答え1
オリジナルのマウント フォルダー属性を設定すると、次のようになりますimmutable
。
chattr +i /mnt/external
フォルダーはロックされ、フォルダーに対するすべての操作が禁止されます ( を使用してロックを解除できます-i
)。ただしmount
、 またはfstab
は引き続き正常に動作します。
を実行する前に、ドライブがマウントされていないことを確認してくださいchattr
。 エラー が発生した場合は"Inappropriate ioctl for device While reading flags"
、フォルダーの属性をサポートしていないファイルシステムで作業している可能性があります。 実際、一部の Linux ディストリビューションでは、overlayfs
ではなくファイルシステムを使用してメインパーティションをマウントします。 そのため、フォルダーで作業するext
には、別の場所に手動でマウントする必要があります(つまり、 )。chattr
mount /dev/mmcblk0p3 /mnt/temp
chattr +i /mnt/temp/root/mnt/external