使用 Linux 时外部 USB 硬盘消失

使用 Linux 时外部 USB 硬盘消失

这是我的第一个问题,所以如果我没有遵循正确的格式,我提前道歉。我在网上广泛搜索过,但没有找到任何答案。提前感谢您的帮助。那么,开始解决问题吧……

设置
我已经在我的 Intel NUC (NUC6i7KYK) 上设置了一个 Ubuntu 17.10 桌面,打算将其用作我的个人家庭服务器。我已在其上安装了 Seafile-server-6.2.2,但由于空间不足,已将 seafile-data 文件作为符号链接指向我的 Western Digital 3TB 外置 USB 3.0 HDD 上的某个位置。首先,我尝试简单地链接到 中的自动安装版本/media/Jason\ Stuff,但它抱怨权限问题。因此,我使用/etc/fstab以下行将其安装:

UUID=C6B89CABB89C9B8D /mnt/seafile ntfs-3g permissions,locale=en_US.utf8 0

这在启动时出现了问题(我知道,这是单独的问题),但由于它现在具有权限,因此 seafile 很乐意与其交互。

问题
经过一段随机的时间后,驱动器会报告“输入/输出”错误。虽然很烦人,但我可以通过运行 轻松修复它sudo mount -a

jason@jason-server:~$ ls /mnt/seafile/
ls: reading directory '/mnt/seafile/': Input/output error
jason@jason-server:~$ sudo mount -a
Using default user mapping
jason@jason-server:~$ ls /mnt/seafile/
22cf6ba959c9fab923049c    M8H.CAP
backup                    msdownld.tmp
cyberlink                 $RECYCLE.BIN
db89ef3f6183c6567ed6def3  System Volume Information
eclipseAndroid-20140702   WD Stuff

我最初以为外部硬盘的旋转可能存在一些问题,但使用sudo sdparm --clear=STANDBY /dev/sda -S并没有解决问题。然而,我多次注意到我的外部硬盘会从 Linux 中完全消失。我使用几个命令搜索都无济于事,它甚至再也没有出现过/dev。这些是我发现的确切结果(第一个是驱动器存在时,第二个是驱动器消失时):

blkid前:

jason@jason-server:~$ sudo blkid
/dev/nvme0n1p3: LABEL="System Reserved" UUID="AC3C58B63C587D70" TYPE="ntfs" PARTUUID="1a3a42c8-03"
/dev/nvme0n1p4: UUID="509E26619E264038" TYPE="ntfs" PARTUUID="1a3a42c8-04"
/dev/nvme0n1p5: UUID="b5081df8-5a84-4faf-8da4-bbcefe2b2d4c" TYPE="ext4" PARTUUID="1a3a42c8-05"
/dev/nvme0n1: PTUUID="1a3a42c8" PTTYPE="dos"
/dev/sdd1: LABEL="Jason Stuff" UUID="C6B89CABB89C9B8D" TYPE="ntfs"

blkid后:

jason@jason-server:~$ sudo blkid
/dev/nvme0n1p3: LABEL="System Reserved" UUID="AC3C58B63C587D70" TYPE="ntfs" PARTUUID="1a3a42c8-03"
/dev/nvme0n1p4: UUID="509E26619E264038" TYPE="ntfs" PARTUUID="1a3a42c8-04"
/dev/nvme0n1p5: UUID="b5081df8-5a84-4faf-8da4-bbcefe2b2d4c" TYPE="ext4" PARTUUID="1a3a42c8-05"
/dev/nvme0n1: PTUUID="1a3a42c8" PTTYPE="dos"

fdisk前:

jason@jason-server:~$ sudo fdisk -l
Disk /dev/nvme0n1: 238.5 GiB, 256060514304 bytes, 500118192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x1a3a42c8

Device         Boot     Start       End   Sectors  Size Id Type
/dev/nvme0n1p1           2046 195311615 195309570 93.1G  5 Extend
/dev/nvme0n1p3 *    195311616 196028415    716800  350M  7 HPFS/N
/dev/nvme0n1p4      196028416 500115455 304087040  145G  7 HPFS/N
/dev/nvme0n1p5           2048 195311615 195309568 93.1G 83 Linux

Partition table entries are not in disk order.


Disk /dev/sdd: 2.7 TiB, 3000558944256 bytes, 732558336 sectors
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x000246c6

Device     Boot Start       End   Sectors  Size Id Type
/dev/sdd1         256 732558335 732558080  2.7T  7 HPFS/NTFS/exFA

fdisk后:

jason@jason-server:~$ sudo fdisk -l
Disk /dev/nvme0n1: 238.5 GiB, 256060514304 bytes, 500118192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x1a3a42c8

Device         Boot     Start       End   Sectors  Size Id Type
/dev/nvme0n1p1           2046 195311615 195309570 93.1G  5 Extend
/dev/nvme0n1p3 *    195311616 196028415    716800  350M  7 HPFS/N
/dev/nvme0n1p4      196028416 500115455 304087040  145G  7 HPFS/N
/dev/nvme0n1p5           2048 195311615 195309568 93.1G 83 Linux

Partition table entries are not in disk order.

lsusb前:

jason@jason-server:~$ lsusb
Bus 002 Device 010: ID 1058:1140 Western Digital Technologies, Inc. My Book Essential (WDBACW)
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 8087:0a2b Intel Corp. 
Bus 001 Device 005: ID 1038:0100 SteelSeries ApS Ideazon Zboard
Bus 001 Device 004: ID 06a3:0ccd Saitek PLC 
Bus 001 Device 002: ID 03eb:3301 Atmel Corp. at43301 4-Port Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

lsusb后:

jason@jason-server:~$ lsusb

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 8087:0a2b Intel Corp. 
Bus 001 Device 005: ID 1038:0100 SteelSeries ApS Ideazon Zboard
Bus 001 Device 004: ID 06a3:0ccd Saitek PLC 
Bus 001 Device 002: ID 03eb:3301 Atmel Corp. at43301 4-Port Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

/dev前:

jason@jason-server:~$ ls /dev | grep sd
sdd
sdd1

/dev后:

jason@jason-server:~$ ls /dev | grep sd

我还检查了 /var/log/syslog,发现唯一可疑的就是这个日志(它也在中出现多次dmesg):

Oct 30 13:58:05 jason-server kernel: [261107.413132] usb 2-4: reset SuperSpeed USB device number 13 using xhci_hcd

我发现,当外部硬盘驱动器处于这种状态时,修复它的唯一方法是物理拔下/关闭电源,重新打开,然后sudo mount -a再次运行命令。
我还注意到,每次我必须手动重置外部硬盘驱动器时,它都会被分配一个不同的设备路径。它开始于/dev/sda1,现在位于/dev/sdf1

/dev/sdf1: LABEL="Jason Stuff" UUID="C6B89CABB89C9B8D" TYPE="ntfs"

问题 为什么驱动器会因 IO 错误而变得不可用?为什么它会随机地从操作系统中完全消失?sudo sdparm --clear=STANDBY /dev/sda -S让外部硬盘保持旋转不是正确的命令吗?驱动器设备路径的更改是否符合预期?

我现在没有任何主意,任何帮助都将非常有帮助。

答案1

  • 启动挂载问题可能是参数后需要 2 个数字,因此我建议将 /etc/fstab 行更改为
    UUID=C6B89CABB89C9B8D /mnt/seafile ntfs-3g permissions,locale=en_US.utf8 0 1
  • 您的外部驱动器不是 SCSI,因此我建议使用hdparm。标志-S 0就可以解决问题。
  • 如果您将该外部驱动器插入另一台计算机(并等待更长时间)会怎样?它也会消失吗?乍一看,这似乎是省电问题。
  • /dev/sdxx 可能会发生变化。特别是如果系统认为之前的磁盘可能会重新出现...
    这就是为什么(在脚本中)明智的做法是使用 /dev/disk/by-* 路径而不是 /dev/sd*

答案2

相关内容