是否可以防止外部硬盘驱动器断电?我在晚上打开驱动器进行大量下载,但是当我早上检查时,下载失败并显示消息unable to access the drive
。
我能够很好地读/写驱动器,小下载很好,但是需要更多时间的下载似乎由于一些 i/o 错误而失败。
我已经badblocks
对驱动器进行了扫描,没有发现任何错误。
无法启动 SMART 自检:
断开连接,然后重新连接外部 USB 驱动器。dmesg 结果如下:
[ 289.881673] usb 1-1.1: USB disconnect, device number 5
[ 305.182474] usb 1-1.1: new high-speed USB device number 6 using ehci-pci
[ 305.275807] usb 1-1.1: New USB device found, idVendor=152d, idProduct=2338
[ 305.275812] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=5
[ 305.275825] usb 1-1.1: Product: USB to ATA/ATAPI bridge
[ 305.275828] usb 1-1.1: Manufacturer: JMicron
[ 305.275830] usb 1-1.1: SerialNumber: 000001D91CA8
[ 305.276594] usb-storage 1-1.1:1.0: USB Mass Storage device detected
[ 305.276914] scsi host5: usb-storage 1-1.1:1.0
[ 306.275373] scsi 5:0:0:0: Direct-Access WDC WD25 00KS-00MJB0 PQ: 0 ANSI: 5
[ 306.275787] sd 5:0:0:0: Attached scsi generic sg3 type 0
[ 306.276317] sd 5:0:0:0: [sdc] 488397168 512-byte logical blocks: (250 GB/233 GiB)
[ 306.277429] sd 5:0:0:0: [sdc] Write Protect is off
[ 306.277435] sd 5:0:0:0: [sdc] Mode Sense: 28 00 00 00
[ 306.278429] sd 5:0:0:0: [sdc] No Caching mode page found
[ 306.278433] sd 5:0:0:0: [sdc] Assuming drive cache: write through
[ 306.288959] sdc: sdc1 sdc2
[ 306.292063] sd 5:0:0:0: [sdc] Attached SCSI disk
使用驱动器时输出“blkid”。我在将 500MB 的文件复制到驱动器时截取了该屏幕截图。
下面的输出lsblk
:
userone@userone:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 232.9G 0 disk
├─sda1 8:1 0 487M 0 part /boot
├─sda2 8:2 0 1K 0 part
└─sda5 8:5 0 59.2G 0 part
└─sda5_crypt 252:0 0 59.2G 0 crypt
├─ubuntu--vg-root 252:1 0 43.2G 0 lvm /
└─ubuntu--vg-swap_1 252:2 0 15.9G 0 lvm [SWAP]
sdb 8:16 0 232.9G 0 disk
├─sdb1 8:17 0 500M 0 part
├─sdb2 8:18 0 232G 0 part
└─sdb3 8:19 0 470M 0 part
sdc 8:32 0 232.9G 0 disk
├─sdc1 8:33 0 232.4G 0 part /media/userone/New Volume
└─sdc2 8:34 0 470M 0 part
sr0 11:0 1 1024M 0 rom
loop0 7:0 0 86.6M 1 loop /snap/core/4571
loop1 7:1 0 90.3M 1 loop /snap/coolreader3/1
loop2 7:2 0 86.7M 1 loop /snap/simplescreenrecorder/1
loop3 7:3 0 236.5M 1 loop /snap/pycharm-community/64
loop4 7:4 0 86.9M 1 loop /snap/core/4830
loop5 7:5 0 85M 1 loop /snap/simplescreenrecorder-mardy/4
loop6 7:6 0 86.6M 1 loop /snap/core/4650
userone@userone:~$
获取设备名称
blkid
或检查dmesg
连接的设备。然后用 关闭电源管理hdparm
。从命令输出中可以看到,您的 USB 磁盘已注册为/dev/sdc。所以禁用此设备的电源管理。
有关详细信息,请参阅hdparm ArchWiki 。
更新:添加
sudo
到命令,因为需要超级用户权限。不仅下载量大,而且将大文件从 HDD 复制到外部 HDD 也存在一个将近五年前的错误:Ubuntu 在从/向 USB 复制文件时速度变慢并挂起。
许多用户发布的解决方案是检查您的回写缓存:
此处接受的答案(有 66 票赞成):stackexchange.com - 为什么我的电脑在将文件复制到 pendrive 时冻结?
建议使用:
公认的答案是使用间接数学为脏背景字节设置 16 MiB,为脏字节设置 48 MiB。
不过,从第一个链接(错误报告)来看,评论 #83 建议对脏字节使用更激进的 200 MB 值。要使设置永久编辑
/etc/sysctl.conf
并添加此行:然后运行
systctl -p
或重新启动。第一个链接中还有许多其他建议,如果此通用解决方案不起作用,您可能需要尝试其他建议。
顺便说一句,脏并不意味着任何邪恶。这意味着保存在 RAM 中的数据等待写入磁盘。因此,当您的下载正在运行时,信息被保存在 RAM 中,而不是写入您的外部硬盘驱动器。不活动可能是它关机的原因。
同样,正如我在评论中提到的那样,
blkid
在 Ubuntu 18.04 中什么也没有显示,但lsblk
显示了包括外部驱动器在内的所有内容。只是另一个想法:如果 USB 设备的供应商不支持禁用电源管理,您可以使用 cronjob 使其保持活动状态。
为 root 用户创建一个 cronjob,每分钟创建一个文件,同步文件系统并在之后将其删除。
这应该使 USB 设备保持运行
对我来说,前两个答案的组合有效。我每分钟在 cronjob 中执行“/sbin/hdparm -B 255 /dev/sdc”。