kra*_*uke 11 linux unix hard-drive
如何在 Unix/Linux 操作系统上获得可用磁盘空间,包括未分配的空间(未分配给任何分区)?
Hub*_*rio 20
在 Linux 上,可用空间可以隐藏在多个地方:
可用文件系统空间(最明显):
df -h
Run Code Online (Sandbox Code Playgroud)未分区空间:
for dev in /dev/sd?; do parted "$dev" print; done
Run Code Online (Sandbox Code Playgroud)
或者
for dev in /dev/sd?; do fdisk -l "$dev"; done
Run Code Online (Sandbox Code Playgroud)
并仔细研究分区之间以及分区和设备末端之间有多少空间
LVM 系统中的可用空间:
vgs
Run Code Online (Sandbox Code Playgroud)
或者
pvs
Run Code Online (Sandbox Code Playgroud)
物理卷可以使用比分区大小更少的空间,因此将其大小与分区大小进行比较
MD系统中未分配给分区的空间:
for dev in /dev/md*; do mdadm --detail "$dev"; done
Run Code Online (Sandbox Code Playgroud)
您需要将“Used Dev size”与分区大小进行比较
文件系统可以小于它们所在的卷(感谢@PaulGear!)。您应该将 LVM 逻辑卷、MD RAID 设备、分区或文件系统所在的其他设备的大小与文件系统的大小(由 返回df
)进行比较。
如果您有多个磁盘或 LVM 卷组以及相对较新的发行版,您可以使用lsblk
显示块设备树和挂载点。
注意:营销 GB(即 10^9B)与操作系统或工程 GB(即 2^30B,应编写为 GiB 以区分两者)之间也存在差异。40GB 大约是 37.25GiB。除了parted
使用二进制千兆字节作为默认单位之外,所有上述工具。添加unit MiB
到 parted 命令之前,print
以获得以兆字节为单位的答案(对于对齐 SSD 和 4KiB 扇区磁盘上的分区也很有用)。