在加密文件系统上查找根文件系统的物理块设备?

在加密文件系统上查找根文件系统的物理块设备?

我在多个系统上运行 Arch Linux (systemd)。有些具有 SSD 存储,有些具有 NVME 存储设备,有些则使用旋转 HDD。有些系统使用 dm-crypt 来加密文件系统。所有系统都在/.

我希望有一个 bash 脚本来确定托管根文件系统的物理设备 ( /)。目的是检查该块设备是否支持修剪,如果支持,则在系统上未启用 fstrim.timer 时采取一些操作。

例如,如果我们知道该功能/已打开,我们可以检查是否支持修剪。如果是这样,我可以做。/dev/sdahdparm -I /dev/sda | grep TRIMsystemctl enable fstrim.timer

但在加密系统上,/被报告为正在运行/dev/mapper/cryptoroot或类似的情况,并且我没有找到脚本友好方法将其映射回物理块设备(例如,/dev/sda)以确定它是否支持修剪。

我的理解是,SSD 通常受益于定期修剪运行,而 NVMe 设备可能不会

对于非加密情况,这些问题是相关的:
如何查找文件夹位于哪个物理设备上?

找出Linux中/dev/root代表什么设备?
https://unix.stackexchange.com/a/431968/15010

答案1

BTRFS 支持多种设备,因此您可以使用它btrfs fi show来获取块设备列表。然后用于cryptsetup status检查给定设备是否是 LUKS 容器。如果是,该命令将输出下划线设备。

我不会称此为脚本友好,因为您必须解析输出,但它应该可以工作。

相关内容