web-dev-qa-db-ja.com

プラグインされている場合のみ、起動時に外部ドライブをマウントします

Fstabに外部ハードドライブのエントリがあります:

UUID="680C0FE30C0FAAE0" /jgdata ntfs noatime,rw

ただし、起動時にこのドライブが接続されていない場合があります。これにより、「待ち続ける、Sを押す、またはMを押す」というプロンプトが表示され、ブートの途中になりますが、この段階ではキーを押しても何の影響もありません( Ctrl-Alt-Delete、Caps-Lockでさえありません)。

fdisk -lの出力を確認するスクリプトを書く以外に、ブート時にこのドライブが存在する場合にのみマウントする方法を教えてください。このドライブのfdiskエントリがあると便利なので、デバイス名を必要とせずにmount /jgdataと入力するだけです。

68
Jeremy

あなたはすべて正しい道を進んでいます。私はもう少しきれいで良い形である方法を見つけました。

fstabに追加する正しいオプションはnofailですが、autoの後に来る必要があります。 noautoに変更すると、ブート中にマウントされません。 nobootwaitをブートローダーに追加すると、fsckがチェックを完了する前にパーティションをマウントしたり、ブートプロセスで使用されるパーティションをマウントしないなど、重大な何かを見逃す可能性があります。

上記の変更を行った後、システムのシャットダウン中にデバイスが接続されると、システムは正常に起動します(そしてボリュームをマウントします)。また、起動時にデバイスが存在しない場合も正常に起動します。

唯一の不便な点は、システムの実行中にデバイスを接続すると、構成(テストする変数が多すぎる)によっては、デバイスがすぐにマウントされない場合があることです。これは、単純なmount -aまたはmount /specific_deviceまたは再起動で修正できます。

70
Bryan Gonzalez

私は同じ問題を抱えていました-余分なステップを1つ行いました

/etc/fstabnofailオプションを使用すると、システムは起動時にディスク(およびパーティション)を探します。デバイスが接続されている場合、ファイルシステムがマウントされます。そうでない場合、ブートは通常どおり続行されます。

Arch wikiをご覧ください: https://wiki.archlinux.org/index.php/Fstab

UUID=XXXXXXXXXXXXXXX    /myhdd ntfs  auto,nofail,noatime,rw,user    0   0

デバイスを接続した状態と接続しない状態でシステムを起動しようとしましたが、問題なく動作します。

私が達成していないのは、ブート後にディスクが接続されたとき(ブート時に接続されていないとき)に自動マウントすることです。すべてを再度マウントするには、mount -aをルートとして使用する必要があります。

16
user898384

noautoオプションは起動プロセスを継続させますか?

存在する場合は自動的にマウントされませんが、存在する場合は既知になるので、単純なマウント/ jgdataが機能します...スクリプト化されたマウント/ jdataは出力チェックを必要とせず、エラーをキャッチして起動し続けるだけです

編集:さらに読むと、bootwaitはおそらくより正しいオプションです...(通常はブートプロセスの後半まで存在しないネットワーク共有に使用されますが、ハング、idkを引き起こす可能性があります)

マウントスクリプトは次のように追加できます。 https://stackoverflow.com/questions/2062543/running-a-script-with-the-help-of-grub-and-menu-lst

13
RobotHumans
/dev/xvdh1 /myfs xfs defaults,nofail,x-systemd.device-timeout=30 0 0

私のために働いた。

nofail...このデバイスが存在しない場合、エラーを報告しません。
x-systemd.device-timeout = 30...デバイスが存在しない場合、ブートに30秒長くかかります(デフォルトは90です)秒)。

ソース: https://wiki.archlinux.org/index.php/fstab#External_devices

5
user313829

ブート時に推奨されるマウント方法は、システムに fstab ファイルを使用して指示することです。あなたのAskを見ると、私はあなたがほとんどそこにいるのを見ることができました。デバイスに自動マウントオプションを使用するように設定する指示だけが欠けていて、システムが利用可能なときにデバイスをマウントできるようにします。

そのため、fstabの行を次のように書き換えます。

# <file system>           <dir>       <type>    <options>         <dump> <pass>
UUID="680C0FE30C0FAAE0"   /jgdata      ntfs      user,auto,rw       0     0

変更して保存したら、手動でマウントしてみてください。

$須藤マウント-a

次のことに注意することが重要です。

  1. デバイスのUUIDを確認する必要があります。 UUIDは、ファイルシステムの作成時にmake-filesystemユーティリティ(mkfs。*)によって生成されます。
  2. これらの<options>は、コンマで区切られた非常に特殊な形式に従って記述する必要がありますが、各コンマの後にスペースは入れません。これに注意してください;-)
  3. NTFS-3G ユーティリティを使用して処理可能なNTFSファイルシステムを自動マウントしようとしているため、これがスムーズに機能するかどうかはわかりません。私の指示は正しく機能するはずですが、NTFSを自動マウントしようとしたことはありませんでした。そのため、失敗した場合は、NTFSの代替用途については、この Windowsパーティションのマウント を確認することをお勧めします。

ありがとう!

1
crncosta

同じ問題があります。次回の起動時にドライブが存在しないことがわかっている場合、エントリをコメントアウトするためにfstabを編集しています。次に、ドライブが存在する場合、fstabを編集してコメントを削除し、mount -aを発行します。これは完璧な解決策ではありません。システムがドライブを自動的にマウントする方法(存在する場合)を自動的にスキップする方法を見つけられたら素晴らしいと思います。 NFS共有が自動的にマウントされ、サーバーが存在しない場合も同じ問題が発生します。

0
Detonate