web-dev-qa-db-ja.com

rc.localからのマウントは失敗します。適切にそれを行う方法?

現在の/etc/rc.localは次のとおりです。

#!/bin/sh -e

# Test 1
echo line1 > /home/myHome/rclog.txt

# the mount
mount /mnt/mediaDrive &> /home/myHome/mountlog.txt

# Test 2
echo line2 >> /home/myHome/rclog.txt

exit 0

/mnt/mediaDriveは、noauto内のfstabです。これはネットワーク共有であるため、rc.localにマウントされます。

上記のスクリプトのマウントは、起動時に機能しません。起動後、rclog.txtファイルにはline1line2の両方が含まれ、mountlog.txtファイルは空です。これは、スクリプト内のすべてのコマンドが正常に実行されたが、ドライブがマウントされていないことを示します。

端末でSudo /etc/rc.localを手動で実行doesネットワーク共有をマウントします。

/var/syslogに関連するものはありませんが、rc.localのアクセス許可は755です。関連するfstabエントリ:

//192.168.1.100/home  /mnt/mediaDrive  cifs  noauto,credentials=/home/myHome/.mediaCredentials,uid=myName,gid=myGroup  0  0

何が起きてる?

2
Rody Oldenhuis

問題は、起動時にネットワークがまだ利用できないことであり、それがafter bootをマウントする理由であるに違いありません。デバイスをマウントするには、upstartなどの別のメカニズムを使用する必要があります。 upstartを使用した例:

# mount CIFS share

start on (local-filesystems and net-device-up IFACE!=lo)
stop on runlevel [!2345]

pre-start script /bin/mount /mnt/mediaDrive
pre-stop script /bin/umount /mnt/mediaDrive

ニーズに合わせて変更できます。ファイル名は.confで終わり、/etc/initディレクトリに保存する必要があります。

3
Braiam

Rc.localのネットワークコマンドの上に「sleep 5」を追加するだけです

Osmcでraspberryにcifsアクセスをマウントする際に問題が発生しました。この5秒ではネットワークが起動し、マウントは問題ありません

1
user597723

Braiamが述べたように、rc.localの実行時には、何らかの理由で利用可能なネットワークがありません。

これが、私がnoauto + rc.localアプローチに移行した最初の理由でした。そのため、理由はよくわかりませんが、このアプローチには誤りがあります。

私の場合、_netdevの単純な/etc/fstabnoautoの代わりに)がトリックを行いました。

私の場合、ネットワークドライブ上の場所に数十個のバインドマウントがあったことに注意してください。これらの各バインドマウントには、bindオプションの横にある_netdev/etc/fstabオプションも必要です。

1
Rody Oldenhuis

noauto,x-systemd.automountをfstab行に追加することが、最終的に私にとってうまくいったことです。 rc.localにもmount /media/share行がありますが、それが重要なのか冗長なのかはわかりません。

_netdev/etc/fstabが機能しませんでした(rc.localのマウントコマンドの有無にかかわらず)

0