web-dev-qa-db-ja.com

起動時にUSBドライブがマウントされないのはなぜですか

RaspberryPiでArchLinuxを実行しています。 fstabファイルに次の行を追加しました。

/dev/sda1    /mnt/MyBook    ntfs    defaults    0    0

しばらくの間、これは正常に機能しましたが、デバイスは起動時に自動的にマウントされました。私はtransmission-cliをインストールし、Piが死んだように見えるときにいくつかのものをダウンロードしていました。オフにしてからもう一度オンにすると、ドライブがマウントされていないことに気付きました。実行した場合Sudo mount -aドライブは正常に再マウントされますが、起動時にこれが行われないのはなぜですか?

3
DaveJohnston

考えられる理由の1つは、ntfsパーティションに「noauto」を使用するように「defaults」オプションが変更されたことです。 (ntfs用のtunefsはありますか?)

もう1つの(より可能性の高い)説明は、起動順序と起動タイミングです。USBスタックのモジュールは、fstabの起動時のマウントが試行された後にロードされる可能性があります。または、USBデバイスがカーネルに対して十分な速度で応答しないため、準備が整う前に起動が続行されます。

このリンクされたディスカッションには解決策はありませんが、以下を参照してください: https://bbs.archlinux.org/viewtopic.php?id=79676 -マウントをrc.localに移動すると役立つ場合があります。 (rc.localで遅延を指定するだけでなく。)RasPiが池で最速の船ではないことを考えると、これはタイミングの問題であることに傾倒します。

2
cydonian.monk

USBディスクはシステムの起動時にマウントする準備ができていないため、fstabを使用してマウントすることはできません。

再起動後、たとえばcronを使用して実行してみてください。それはうまくいきます。私のUSBディスクには「usbhdd」というラベルが付いているので、ディスクのラベルを確認し、私の例ではgrepの後に名前を変更してください。

まず、/ usr/local/binにスクリプト(ファイル名:mountusbhdd)を記述します。

echo mounting usb disk:
while ! df | grep usbhdd; do
   echo "10 sec break..."; sleep 10
   Sudo mount -t ntfs-3g -o uid=pi,gid=pi,umask=000 /dev/sda1 /media/usbhdd
done
echo "usbhdd mounted."

「x」権限を追加します。

Sudo chmod +x /usr/local/bin/mountusbhdd

このスクリプトをcrontabに追加します。

crontab -e

行を追加:

@reboot /usr/local/bin/mountusbhdd>/tmp/usbhdd.log

それだけです。再起動後、ディスクをマウントするのに必要な時間をchceck/tmp/usbhdd.logできます。私のディスクには10秒の遅延が必要です。

0
Andrzej

Fstabでデフォルトを「auto、defaults」に変更してみることもできます。

/dev/sda1    /mnt/MyBook    ntfs    auto,defaults    0    0
0
terdon