我的 Raspberry Pi 上运行着 Arch Linux。我在 fstab 文件中添加了以下行:
/dev/sda1 /mnt/MyBook ntfs defaults 0 0
一段时间内,这个功能运行正常,设备在启动时自动安装。我安装了 transmission-cli 并正在下载一些东西,这时 Pi 似乎死机了。我将其关闭并再次打开,发现驱动器没有安装。如果我运行,驱动器sudo mount -a
将再次正常安装,但为什么它在启动时不再这样做了?
答案1
一种可能的解释是“默认”选项已更改为对 ntfs 分区使用“noauto”。(是否有适用于 ntfs 的 tunefs?)
另一个(更可能的)解释与启动顺序和启动时间有关:USB 堆栈的模块可能在尝试 fstab 启动时挂载后加载;或者 USB 设备对内核的响应不够快,因此启动在准备好之前就继续进行。
此链接讨论中没有解决方案,但请参阅:https://bbs.archlinux.org/viewtopic.php?id=79676- 将安装移动到 rc.local 可能会有所帮助。(以及在 rc.local 中指定延迟。)考虑到 RasPi 不是池塘里最快的船,我倾向于认为这是一个时间问题。
答案2
系统启动时 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
就这样,重启后你可以检查 /tmp/usbhdd.log 看看你的磁盘需要多长时间才能挂载。我的磁盘需要 10 秒的延迟。
答案3
您还可以尝试在 fstab 中将默认值更改为“auto, defaults”:
/dev/sda1 /mnt/MyBook ntfs auto,defaults 0 0