没有 lsblk 的统计磁盘驱动器?

没有 lsblk 的统计磁盘驱动器?

我最近尝试使用一个简约的busybox系统,我发现了一个小问题:它没有lsblk命令。是否还有另一个命令可以列出磁盘、分区和大小,例如lsblk

有些也不起作用:

  • lsblk
  • lsusb
  • fdisk -l
  • cfdisk

答案1

通过维基页面查看忙碌盒,我看到它支持df命令来查找磁盘使用情况。

您可以尝试以下命令。

df -h - 显示已安装文件系统上的可用空间。

来自男人busybox 的页面上,他们提供了如何使用该df命令的示例。

但是,正如 @nwildner 指出的那样,df 将显示已安装文件系统上的存储,而不是与分区相关的方案。要找到它,您可以检查以下文件。

cat /proc/partitions

正如您所提到的,fdisk -l上面的文件不起作用,可能包含分区信息。

测试

fdisk -l 在我的系统中产生以下输出。

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        9726    78019672+  8e  Linux LVM

现在,如果我使用 cat ,我可以获得分区信息/proc/partitions。输出是,

major minor  #blocks  name

   8     0   78125000 sda
   8     1     104391 sda1
   8     2   78019672 sda2
 253     0   78019156 dm-0
 253     1   72581120 dm-1
 253     2    5406720 dm-2

主设备号是8,表明它是一个磁盘设备。较小的分区是同一设备上的分区。 0 是整个磁盘,1 是主磁盘,2 是扩展磁盘,5 是逻辑分区。其余的当然是块大小和磁盘/分区的名称。

不确定这是否是一个明智的建议,但您是否尝试过sudo fdisk -l看看它是否有效?

编辑#1

你也可以跑$ df -T。这是另一个不需要超级用户权限即可执行的命令。但是,这将报告每个安装点。

另一个可以派上用场的命令是# file -sL /dev/sdXY.这有一个缺点,因为它不能与完整的块设备一起使用。需要传递确切的设备。输出非常简洁:

参考

如何确定未挂载设备的文件系统?

答案2

看起来其他回答者实际上并没有在 BusyBox 上进行测试。以下是在我的 initramfs 中对 BusyBox 有效的唯一命令:

  • cat /proc/partitions显示磁盘和分区大小(以块 (KiB) 为单位)

  • blkid显示分区标签、UUID 和类型(EXT4、NTFS 等)

答案3

繁忙的盒子命令通常比更大的发行版中包含的完整版本受到更多限制,并且之前的答案并没有完全解决这个问题,因为我在遇到同样的问题时发现了这一点。

ext我找到了我需要的文件系统信息(以及更多信息),tune2fs这些信息在我目前使用的嵌入式 Linux 上可用。不知道如何对其他类型的未安装文件系统执行此操作。

tune2fs -l /dev/sdbXY | grep 'Block' | tr -s ' ' | cut -f3 -d' '
488378112
4096
group:

这将为您提供此输出,因为tr -s删除了重复的空格并cut -f3 -d ' '为您提供了输出的第三个字段。只需移除连续的管道即可更多地了解正在发生的情况。

第一个数字是块的数量,第二个数字是块的大小。将它们相乘即可得到以字节为单位的答案。该词group:只是过滤的异常,可以忽略。

相关内容