当我关闭 Ubuntu 时,我的外部 USB 硬盘不会关闭(根本不会),同时仍关闭其他 USB 设备(例如我的耳机和键盘)。
如果有区别的话,我有一块 B365M DS3H WIFI 主板。
硬盘在 Windows 下正常关闭。
如何才能让它正常关机?
编辑:即使关闭硬盘并正常关机,关机后它仍然会在不应该通电的情况下通电。
答案1
这似乎是您的技嘉主板称为“开/关充电”. 从该功能的描述来看:
GIGABYTE 的最新主板配备了 ON/OFF 充电技术,不仅能为 iPhone、iPad 或 iPod Touch 充电,还能快速充电。此外,它甚至可以在 PC 关闭时充电,因此,即使您在同步音乐后忘记将其插入充电器,在需要时它也会充满电。
[...]
* 最多可同时为 3 台设备充电。充电电流可能因 PSU 5V 待机规格而异。
由于主板不太可能具体来说对于基于 USB 设备制造商 ID 的 Apple 设备,我敢说主板只会为最多三个 USB 端口提供 5V 不间断电源,无论机器是否处于开机状态。如果是这种情况,那么除非明确给出命令,否则外部驱动器不会知道关闭自身。
因为您说过当 Windows 关闭时驱动器将正常关闭,这让我想到驱动器正在等待来自主机操作系统的命令,而 Ubuntu 可能由于某种原因没有发送该命令(某些驱动器等待,power-off
而其他驱动器等待eject
)。
一种可能的解决方案是编写一个脚本,每当系统进入关机周期时运行,首先卸载 USB 分区,然后向给定设备发送“关机”命令。
如果您想尝试一下,请按以下步骤操作:
- 打开终端(如果尚未打开)
- 使用以下命令获取
UUID
USB 磁盘blkid
:
这将为您提供所有设备的列表,您将寻找代表要关闭的 USB 磁盘的设备。您可能会看到类似以下内容:sudo blkid
/dev/sdc1: UUID="AzJSHp-stpU-1ArB-YOMD-G7OD-l1Uz-xJhQIh" TYPE="ext4" PARTUUID="04592289-01"
- 在你的主目录(或者任何地方)创建一个 shell 脚本:
笔记:请随意使用任何文本编辑器。vi ~/sleep-disks.sh
vi
不是要求。 - 粘贴以下内容:
如果您使用时遇到问题,#!/bin/sh sudo hdparm -Y /dev/disk/by-uuid/<disk-uuid> exit 0
hdparm
可以使用此方法:
笔记:务必更换#!/bin/sh disk_uuid="<disk-uuid>" udisksctl unmount -b /dev/disk/by-uuid/${disk_uuid} udisksctl power-off -b /dev/disk/by-uuid/${disk_uuid} exit 0
<disk-uuid>
使用步骤 1 中确定的适当值。 - 保存文件
- 确保脚本可执行:
sudo chmod +x ~/sleep-disks.sh
- 创建新的 systemd 服务记录:
sudo vi /etc/systemd/system/sleep-disks.service
- 粘贴以下内容:
笔记:务必更换[Unit] Description=Shut down external disks DefaultDependencies=no Before=shutdown.target reboot.target halt.target # This works because it is installed in the target and will be # executed before the target state is entered # Also consider kexec.target [Service] Type=oneshot User=<YOUR_USER> Group=<YOUR_USER> ExecStart=/home/<YOUR_USER>/sleep-disks.sh [Install] WantedBy=halt.target reboot.target shutdown.target
<YOUR_USER>
使用您的实际用户名,以及ExecStart=
应该指向 shell 脚本的实际位置。 - 保存文件
- 重新加载守护进程:
sudo systemctl daemon-reload
这将确保sleep-disks.sh
每次计算机被要求关闭、重启或暂停时运行脚本。
这hdparm -Y
命令指示外部磁盘降至最低功率状态,即“关闭”。文档:
-Y Force an IDE drive to immediately enter the lowest power consumption
sleep mode, causing it to shut down completely. A hard or soft reset is
required before the drive can be accessed again (the Linux IDE driver
will automatically handle issuing a reset if/when needed). The current
power mode status can be checked using the -C option.
这udisksctl unmount
将保证磁盘被卸载,因此udisksctl power-off
将关闭磁盘的电源。
或者……如果你从来不用,也许你可以禁用 BIOS 中的“ON/OFF Charge”功能