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


70

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

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

ただし、起動時にこのドライブが接続されていない場合があります。これは、「待つ、Sキーを押したり押しMを続行する」プロンプトで、ブートを通じて私に半分の方法を去るが、何のキー入力は任意の(を含むこの段階では影響がありませんCtrl- - AltDeleteいなくてもキャップロック)。

の出力を確認するスクリプトを書くのfdisk -lではなく、起動時にこのドライブが存在する場合にのみマウントするにはどうすればよいですか?このドライブのfdiskエントリがあると便利なのでmount /jgdata、デバイス名を入力する代わりに入力するだけです。

回答:


73

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

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

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

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


2
私がオンラインで見つけることができるすべての例は、自動の前にnofailを示しています。正しい注文に関するドキュメントはありますか?
ハッカー

「man fstab」は、必要な順序の精度を提供しません(centos 7およびUbuntu 14.04で確認)。ただし、「nofailが存在しない場合、このデバイスのエラーを報告しません」と表示されます。nfsボリュームにアクセスできない場合、これがブート時にタイムアウトを待たずに済むのではないかと思っています。
tisc0

16

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

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

Arch Wikiを参照してください:https : //wiki.archlinux.org/index.php/Fstab

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

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

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


13

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

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

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

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


答えてくれてありがとう。明確にするために、オプションをfstab行に追加するのは正しいですか?(編集:Nvm、グーグル。nobootwaitが必要なようです。)
ジェレミー

1
fstabでnobootwaitオプションを使用しましたが、完璧に動作します、ありがとう。
ジェレミー

5
/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


これが最良かつ最も簡単な答えです。古い置き換え、これはsystemdにを使用してOSの新しいバージョンの新しい構文であることに注意してくださいnobootwait構文
cxrodgers

これは私のために働いた。キーは、デバイスのタイムアウトを追加していました。nofailを使用するだけで、udevタイムアウトが原因でブートが実際に失敗します。(おそらくUSBデバイスに固有)
BobHy

1

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

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

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

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

$ sudo mount -a

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

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

ありがとう!


彼はあなたが言ったことのほとんどを手に入れたと思うが、ディスクが検出されないときはハングしている。だからこそ、「適切な」方法への回避策を提案しました
-RobotHumans

答えてくれてありがとう。参考までに、このsudo blkidコマンドはUUIDを見つけるための良い方法です。
ジェレミー

私はちょうどfstabでその正確な行を試しました。HDDが接続されると、システムは正常に起動します。ただし、起動中に外付けHDDが接続されていない場合でも、待機/スキップ/手動回復のプロンプトが表示されます。このプロンプトは、私はターミナルではないよ場合は外付けHDDが接続されていない場合は、ボックスが起動しません、タイムアウトしませんので。
ジェレミー

nofailオプションを追加する必要があります。
kkron

0

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


1
私が受け入れた答えをチェックして、fstabのマウントオプションにnobootwaitを追加してください。
ジェレミー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.