假设我有一些设备安装到/backups
. 我正在将选定的文件从系统复制到备份,我想减少设备发出的噪音。我知道我可以hdparm -M
用来调整设备的“自动声学管理 (AAM)”设置。但是,我不知道应该如何/dev/sdc
从给定目录中获取设备(例如 )(例如,如果我有一个脚本将最新的备份位置计算为/backups/2017/12/31
)。
我能做的最好的就是
echo /dev/$(lsblk -no pkname $(findmnt -nvoSOURCE -T "$DIRECTORY"))
但这需要硬编码/dev/
前缀并假设只有一个支持磁盘。如何使这更稳定?
请注意,这个问题专门关于定位正确的磁盘,而不是分区。如果您只需要找到正确的分区df
或findmnt
就足够了。
另请注意,如果目录安装在md
设备上,则父设备将类似于md0
不能与hdparm
. 在这种情况下,将有多个基础磁盘,因此实际上这个问题是关于将单个文件或目录映射到一个或多个磁盘。
这种脚本似乎最稳定(适用于单个 SATA 磁盘和软件 RAID):
当然,将
echo
命令替换为您要对每个磁盘执行的实际操作。4 磁盘 MD 软件 raid 上目录的示例输出:
1 个磁盘常规分区上目录的示例输出:
一种简单的了解方法是使用
df
文件夹的(绝对)路径调用: