我有一台运行 Raspbian Jessie Lite(无头版)的 Raspberry Pi,一段时间以来我一直将其用作文件转储和 git 服务器。我在其中插入了一个外部 USB 硬盘供其使用,但似乎出现了一些问题。
似乎毫无原因,每隔几天系统就会将我的驱动器从重命名为/dev/sda1
等等/dev/sdb1
。/dev/sdc1
这导致 git 和 SFTP 服务器无法找到此驱动器应挂载到的目录中的文件。
运行后fdisk -l
,我可以看到驱动器已重命名。
Device Boot Start End Sectors Size Id Type
/dev/sdb1 * 2048 3907029166 3907027119 1.8T 7 HPFS/NTFS/exFAT
不过,df
仍然使用旧的驱动器名称。
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 1831250820 10976 1733547784 1% /media/USBHDD1
/media/USBHDD1
在进行此更改后尝试访问时:
# ls /media/USBHDD1/
ls: reading directory /media/USBHDD1/: Input/output error
我修改/etc/fstab
为使用驱动器的 UUID,因此运行mount -a
暂时解决了问题,并且 Pi 不再在启动时进入内核恐慌。然而,这很烦人。工作暂停,直到我可以通过 SSH 进入它并每隔几天修复它,这已经变得令人无法接受。
什么会导致重命名,我怎样才能停止它或者df
记住 UUID 而不是那个标签?
答案1
您的问题可能与省电有关:磁盘自行旋转,共享变得无法访问,当磁盘重新出现时,它会被分配一个不同的设备名称(sdb
),并且共享不起作用。
有两种不同的方法可以解决这个问题,你可以依次尝试:
控制节能
hdparm
:从非常有用的 Arch Linux wiki,您可以使用以下方式检查省电参数的当前值hdparm -B /dev/sda hdparm -S /dev/sda
在哪里
-B设置高级电源管理功能。可能的值介于 1 到 255 之间,值越低表示电源管理越积极,值越高表示性能越好。值 1 到 127 允许降速,而值 128 到 254 不允许。值 255 完全禁用该功能。
-S设置驱动器的待机(旋转停机)超时。超时指定在关闭电机以节省电量之前等待空闲(无磁盘活动)的时间。值 0 表示禁用旋转停机,值 1 到 240 表示 5 秒的倍数,值 241 到 251 表示 30 分钟的倍数。
然后指定,如果需要
hdparm -B 255 /dev/sda hdparm -S 0 /dev/sda
看看同样的问题是否再次出现。
第二种可能性是编写一条
udev
规则强制udev
为磁盘分配相同的字母:将以下规则添加到文件中/etc/udev/rules.d/10-local.rules
(如果没有该文件,请创建它)ACTION=="add", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", SYMLINK+="sda"
(供应商和产品代码指的是我的 USB 记忆棒,您必须用 获得的值来替换您自己获取的值
lsusb
)。然后您可以通过以下方式检查它是否有效
udevadm info -a -p $(udevadm info -q path -n /dev/sda)