web-dev-qa-db-ja.com

起動後にドライブを自動的にマウントする方法は?

https://askubuntu.com/a/119818/5032 qbiのコメント:

fstabにnoautoを追加します。

...

そのため、ファイルシステムは起動時に自動的にマウントされません。さらに、基本的にmhddfsをマウントし、ブートプロセスの後半に追加するスクリプトを作成します。

しかし、これをどのように行うのですか?私のmergerfsは起動前にすべてのドライブをマウントすることはありません。おそらくそれらのドライブはそれより前にマウントされていないからでしょうか?これはfstabの最後のエントリで、次のようになっています(ただし、ドライブが追加されています)。

/mnt/EXT4_drive/drivepool:/mnt/NTFS_drive/drivepool:/mnt/anotherdrive/drivepool /mnt/drivepool Fuse.mergerfs defaults,allow_other,minfreespace=100M 0 0

ブート後にdfを実行すると、ドライブ名には一部のマウントポイントのみが含まれ、すべてのマウントポイントに必要なスペースの一部が表示されるため、準備ができていない場合は含まれません?ブート後に手動でSudo umount /mnt/drivepool ; Sudo mount /mnt/drivepoolを実行して修正し、すべてを表示する必要があります。

また、コンピューターは「緊急モードへようこそ!」で複数回起動しています。 /mnt/drivepoolをマウントしようとしたときに、ドライブの1つが自動的にfsckされたとき。これは最近発生していません。おそらく、mergerfsの変更が原因で、ドライブが停止するのではなく、準備ができていないドライブを無視できるようになったためでしょうか。

/mnt/drivepool ASAPafterfstabの他のすべてが正常にマウントおよびfsckされた場合、どのように自動的にマウントしますか?

2
endolith

それでは、たくさん読んだ後:

Ubuntu 15.04以降、fstabエントリは*.mountによってsystemdユニット(/run/systemd/generatorの下にあるsystemd-fstab-generatorファイル)に変換され、特定の順序でマウントされません。

ただし、systemdは依存関係をサポートしており、これらはfstabオプション x-systemd.requires を使用して指定できます。

x-systemd.requires =
作成されたマウントユニットと、デバイスやマウントユニットなどの別のsystemdユニットとの間のRequires =およびAfter =依存関係を構成します。引数は、ユニット名、またはデバイスノードまたはマウントポイントへの絶対パスである必要があります。このオプションは複数回指定できます。このオプションは、追加のデバイス(ジャーナルファイルシステム用の外部ジャーナルデバイスなど)が必要なマウントポイント宣言、または所定の場所に追加のマウント(など)が必要な場合に特に便利です。複数のマウントポイントをマージするオーバーレイファイルシステム)。詳細については、systemd.unit(5)のAfter =およびRequires =を参照してください。

したがって、前提条件のマウントごとに、fstabマウントに個別のエントリを追加すると、パス名が認識されます。

x-systemd.requires=/mnt/XP,x-systemd.requires=/mnt/NTFS_3TB,...

最初の試みで、/mnt/を省きましたが、コンピューターが起動を拒否し、読み取り専用になりました。これを防ぐには、nofailも追加する必要があります。これにより、マウントポイントが「必要」ではなく「local-fs.target」の「必要」になるため、コンピューターは失敗した場合でも起動します。

その後、mount -aを実行すると、文句を言うでしょう

Fuse: unknown option `nofail'

とにかくそれでも動作します。 ಠ_ಠ

これが完全なfstab行です。これは、変更してから毎回機能します。

/mnt/EXT4_backup/drivepool:/mnt/WIN7_BACKUP/drivepool:/mnt/XP/drivepool:/mnt/NTFS_3TB/drivepool /mnt/drivepool Fuse.mergerfs nofail,defaults,allow_other,minfreespace=100M,x-systemd.requires=/mnt/XP,x-systemd.requires=/mnt/NTFS_3TB,x-systemd.requires=/mnt/EXT4_backup,x-systemd.requires=/mnt/WIN7_BACKUP 0 0
6
endolith