私は Linux 管理者として経験が浅く、外付けハード ドライブを Linux ボックスに自動マウントする方法を模索しています。(バージョン 2.6.16.13-4-smp) (古いボックスであることは承知しています) ドライブを手動でマウントすることは問題なくできます。
me@linux:/> mount /dev/sdc1 /media/Seagate
me@linux:/>
つまり、 にあるデバイスを/dec/sdc1
ディレクトリにマウントしたいのです/media/Seagate
。これはうまくいきます。これを実行すると、次のようになります。
me@linux:/> df -h
Filesystem Size Used Avail Use% Mounted on
...other stuff...
/dev/sdc1 917G 13G 858G 2% /media/Seagate
me@linux:/>
問題は、マシンが再起動するたびにこれを自動的に実行する必要があることです。私は Google で検索して、ファイルについて少し学びました/etc/fstab
。そのために、ファイルの最後に次の行を追加しました/etc/fstab
。
/dev/sdc1 /media/Seagate ext3 defaults 0 2
以前の管理者がコメントアウトした行を残していましたが、これ/etc/fstab
はかつては機能していました。私はそれをクローンし、外付け HD 用に編集して、そのまま使いました。「ext3」はその行から来ていますが、何をするのかはよくわかりません。「defaults」と「0 2」は、私がオンラインで見つけたいくつかのチュートリアルで最も簡単な実装として提案されたものです。
そこで、上記の行をマシンに入力して再起動すると/etc/fstab
、マシンはない再起動に成功しました。モニターを確認すると、次のようなエラー メッセージがいくつか表示されていました。
Waiting for /dev/sdc1
error on stat() /dev/sdc1: No such file or directory
fsck.ext3: No such file or directory while trying to open /dev/sdc1
/dev/sdc1: The superblock could not be read or does not describe a correct ext2
モニター全画面の写真は以下にあります。
ここで何が起こっているのかよく分かりませんが、Linux ボックスが外付け HD をマウントしようとしているようですが、HD が利用できないため、Linux ボックスは正常に起動しません。ただし、再起動時に HD は接続されています。
追加した 1 行を削除して再起動すると、システムは正常に起動しますが、HD を手動でマウントする必要があります。
それで…ここで何が起こっているのか分かりますか? ありがとうございます。
答え1
ファイルを確認してください/etc/fstab
。各行の最後の数字はfs_passno. これが 1 (true) に設定されている場合、起動を成功させるには、指定されたデバイスで fsck が実行され、正常に完了する必要があります。 にその行があり、/dev/sdc1
その/etc/fstab
行の最後の数字が 1 である場合、起動中にそのデバイスが存在する必要があります。そうでない場合、画像に示すように起動が停止します。
1 を 0 に変更して、fstab
USB デバイスが接続されていなくても /dev/sdc1 行が存在するようにするか、USB デバイスが接続されていない場合は fstab からその行を完全に削除するか、fstab の行末に 1 を維持する場合は USB デバイスを接続して fsck を通過できるようにします。
fs_passno の値が Linux ディストリビューションによって異なる影響を与えるかどうかはわかりませんが、0 にすると fsck が実行されないことを意味します。
また、マウント名前で/dev/sdc1
fstabの最初の列に記述してください。他の方法でマウントすることを強くお勧めします。uuid より名前によるマウントは堅牢ではなく、外部ディスクはsdc
現在は堅牢かもしれませんが、他のハードウェアが変更されて他の問題が発生すると、簡単に別のものに変わってしまう可能性があります。
答え2
システムをアップグレードする
これは既知のバグです(バグ 204396 - カーネルが起動時に USB サムドライブを認識しない) を、使用しているカーネル バージョンに近いバージョンでインストールします。
一見すると、問題はモジュールの自動読み込みと udev の間のどこかにあるようです。回避策が存在する可能性があり、それを試してみることができます。追加するmount /dev/sdc1 /media/Seagate
と/etc/rc.local
役立つかもしれません。ただし、新しいカーネルに切り替えることを強くお勧めします。面倒な作業が大幅に軽減されます (この特定のバージョンに依存していない場合)。