如何查找给定块设备的分区名称?

如何查找给定块设备的分区名称?

给定一个块设备(例如,/dev/sda),如何在脚本中确定其分区(如果有)的名称(即无需用户交互)?

答案1

lsblk打印出所有相关的块设备。这包括所述设备的分区。由于它当然包括设备本身并且lsblk不允许排除特定设备,因此下面的示例解决方案仅使用 inverted grep

lsblk -o KNAME -n /dev/mmcblk0 | grep -v "^mmcblk0$"

对于完整路径(这也简化了 grep 字符串的生成),可以使用-p,例如:

lsblk -po KNAME -n /dev/mmcblk0 | grep -v "^/dev/mmcblk0$"

答案2

您可以使用一些工具来执行此操作。我经常使用的工具之一是fdisk. fdisk 会列出块设备的分区,并为您说明确切的大小。fdisk是一个非常通用的程序,它还可以修改分区在存储方面的内部属性,因此使用它时要非常小心。

在列出分区的情况下,您只需执行以下命令: fdisk -l <name of block device>。从这一点上,您就可以看到您所寻找的分区的确切大小、名称和类型。如果您想fdisk进一步用于与硬盘相关的其他用途,请使用以下man命令打开手册页fdisk

man fdisk

相关内容