这个问题本质上是对面的下面的第一个问题,并且与第二个问题相邻,因此不是重复的:
df -h
显示我的文件系统。前任:
$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 7.7G 0 7.7G 0% /dev
tmpfs 1.6G 2.3M 1.6G 1% /run
/dev/mapper/vgubuntu-root 467G 410G 33G 93% /
tmpfs 7.8G 139M 7.7G 2% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
/dev/loop0 9.0M 9.0M 0 100% /snap/canonical-livepatch/146
/dev/loop1 128K 128K 0 100% /snap/bare/5
/dev/loop2 165M 165M 0 100% /snap/gnome-3-28-1804/161
/dev/loop3 82M 82M 0 100% /snap/gtk-common-themes/1534
/dev/loop9 291M 291M 0 100% /snap/vault/2012
/dev/loop10 46M 46M 0 100% /snap/snap-store/638
/dev/loop7 347M 347M 0 100% /snap/gnome-3-38-2004/115
/dev/sda2 704M 305M 348M 47% /boot
/dev/loop6 43M 43M 0 100% /snap/leafpad/91
/dev/loop8 321M 321M 0 100% /snap/vlc/3078
/dev/loop11 46M 46M 0 100% /snap/snap-store/599
/dev/loop16 219M 219M 0 100% /snap/gnome-3-34-1804/72
/dev/loop13 117M 117M 0 100% /snap/core/14399
/dev/loop15 296M 296M 0 100% /snap/vlc/2344
/dev/sda1 511M 26M 486M 6% /boot/efi
/dev/loop14 64M 64M 0 100% /snap/core20/1738
/dev/loop12 92M 92M 0 100% /snap/gtk-common-themes/1535
/dev/loop17 219M 219M 0 100% /snap/gnome-3-34-1804/77
/dev/loop19 256K 256K 0 100% /snap/gtk2-common-themes/13
/dev/loop21 9.0M 9.0M 0 100% /snap/canonical-livepatch/164
/dev/loop18 50M 50M 0 100% /snap/snapd/17883
/dev/loop23 347M 347M 0 100% /snap/gnome-3-38-2004/119
/dev/loop20 163M 163M 0 100% /snap/gnome-3-28-1804/145
tmpfs 1.6G 196K 1.6G 1% /run/user/1000
/dev/loop24 56M 56M 0 100% /snap/core18/2667
/dev/loop25 64M 64M 0 100% /snap/core20/1778
/dev/loop4 117M 117M 0 100% /snap/core/14447
/dev/loop5 50M 50M 0 100% /snap/snapd/17950
/dev/loop26 56M 56M 0 100% /snap/core18/2679
我想知道每个文件系统位于哪个分区,特别是我的根文件系统安装在/
.我还想知道每个分区的满度。
我怎样才能找到这个?使用 GUI 工具来证明您的命令行工具可以正常工作,但最终我需要命令行工具,因为我需要在简约的远程嵌入式 Linux 边缘设备上运行它。
答案1
我至少想出了一种方法。欢迎其他答案。
概括
我的/
根挂载点位于/dev/sda3
分区上(如 底部所示lsblk
)。
而且,我的/dev/sda3
分区大约是(410 GiB(在 中使用vgubuntu-root
,如 所示df -h
) + 0.980 GiB(在 中使用vgubuntu-swap
,如 所示lsblk
))/(475.7 GiB(在 中总计sda3
,如 所示lsblk
)) = 410.98/475.7 =86.4% 已满。
关键分区或文件系统相关命令:
# get disk usage and see mount points (but not partitions :()
df -h
# see which partition your filesystems are on, and how big they are
lsblk
# and on embedded Linux devices with BusyBox:
mountpoint -n /
# ---------------------
# and maybe useful
blkid
# see also
sudo fdisk -l
# get additional partition info for `/dev/sda3`
sudo fdisk -l /dev/sda3
细节
的末尾lsblk
显示了我的所有分区、它们的大小以及它们安装到的安装点。在我的 Ubuntu 20.04 机器上,请注意从sda
接近结尾处开始的部分。这就是我的物理分区开始的地方:
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 9M 1 loop /snap/canonical-livepatch/146
loop1 7:1 0 4K 1 loop /snap/bare/5
loop2 7:2 0 164.8M 1 loop /snap/gnome-3-28-1804/161
loop3 7:3 0 81.3M 1 loop /snap/gtk-common-themes/1534
loop4 7:4 0 116.7M 1 loop /snap/core/14447
loop5 7:5 0 49.8M 1 loop /snap/snapd/17950
loop6 7:6 0 42.7M 1 loop /snap/leafpad/91
loop7 7:7 0 346.3M 1 loop /snap/gnome-3-38-2004/115
loop8 7:8 0 320.4M 1 loop /snap/vlc/3078
loop9 7:9 0 290.1M 1 loop /snap/vault/2012
loop10 7:10 0 46M 1 loop /snap/snap-store/638
loop11 7:11 0 45.9M 1 loop /snap/snap-store/599
loop12 7:12 0 91.7M 1 loop /snap/gtk-common-themes/1535
loop13 7:13 0 116.7M 1 loop /snap/core/14399
loop14 7:14 0 63.2M 1 loop /snap/core20/1738
loop15 7:15 0 295.7M 1 loop /snap/vlc/2344
loop16 7:16 0 219M 1 loop /snap/gnome-3-34-1804/72
loop17 7:17 0 219M 1 loop /snap/gnome-3-34-1804/77
loop18 7:18 0 49.6M 1 loop /snap/snapd/17883
loop19 7:19 0 140K 1 loop /snap/gtk2-common-themes/13
loop20 7:20 0 162.9M 1 loop /snap/gnome-3-28-1804/145
loop21 7:21 0 9M 1 loop /snap/canonical-livepatch/164
loop23 7:23 0 346.3M 1 loop /snap/gnome-3-38-2004/119
loop24 7:24 0 55.6M 1 loop /snap/core18/2667
loop25 7:25 0 63.3M 1 loop /snap/core20/1778
loop26 7:26 0 55.6M 1 loop /snap/core18/2679
sda 8:0 0 477G 0 disk
├─sda1 8:1 0 512M 0 part /boot/efi
├─sda2 8:2 0 732M 0 part /boot
└─sda3 8:3 0 475.7G 0 part
└─sda3_crypt 253:0 0 475.7G 0 crypt
├─vgubuntu-root 253:1 0 474.8G 0 lvm /
└─vgubuntu-swap_1 253:2 0 980M 0 lvm [SWAP]
因此,根挂载点 ( /
) 位于vgubuntu-root
分区 内sda3
。其完整分区层次结构为sda/sda3/sda3_crypt/vgubuntu-root
. GUIgparted
确认了这一点并显示如下:
-n
在运行 BusyBox 的嵌入式 Linux 主板上(例如,Ubuntu 没有该选项),您还可以使用mountpoint -n <mount_point>
.例如:mountpoint -n /
会显示类似这样的内容,确认/
文件系统挂载点位于分区上/dev/sda3
:
$ mountpoint -n /
/dev/sda3 /
同样,在 Ubuntu 上,该-n
选项不存在,但在带有 BusyBox 的板上,运行时的帮助菜单只mountpoint
显示:
# mountpoint
BusyBox v1.31.1 (2023-01-26 07:37:10 UTC) multi-call binary.
Usage: mountpoint [-q] <[-dn] DIR | -x DEVICE>
Check if the directory is a mountpoint
-q Quiet
-d Print major/minor device number of the filesystem
-n Print device name of the filesystem
-x Print major/minor device number of the blockdevice
所以-n
将Print device name of the filesystem
。
现在我们知道lsblk
该mountpoint -n /
文件系统(和根挂载点)的分区是/dev/sda3
,我们可以通过以下方式获取更多分区信息:
sudo fdisk -l /dev/sda3
示例运行和输出:
$ sudo fdisk -l /dev/sda3
[sudo] password for gabriel:
Disk /dev/sda3: 475.74 GiB, 510804361216 bytes, 997664768 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
大小为 475.74 GiB,如之前所示lsblk
。
之前来自lsblk
:
└─sda3 8:3 0 475.7G 0 part
└─sda3_crypt 253:0 0 475.7G 0 crypt
├─vgubuntu-root 253:1 0 474.8G 0 lvm /
└─vgubuntu-swap_1 253:2 0 980M 0 lvm [SWAP]
因此,我们可以看到安装在分区中的根文件系统/
仅分配了 475.7 GiB 中的 474.8 GiB /dev/sda3
。
df -h
从我之前的问题来看:
Filesystem Size Used Avail Use% Mounted on
...
/dev/mapper/vgubuntu-root 467G 410G 33G 93% /
所以,我的/dev/sda3
分区大约是(410 GiB(在 中使用vgubuntu-root
,如 所示df -h
) + 0.980 GiB(在 中使用vgubuntu-swap
,如 所示lsblk
))/(475.7 GiB(在 中总计sda3
,如 所示lsblk
)) = 410.98/475.7 =86.4% 已满。
答案2
您可以用来grep
仅显示您感兴趣的文件系统。例如
$ df -h | grep ^/dev/ | grep -vE '^/dev/(loop|shm)'
更好的是,使用awk
(因为将 grep 管道传输到 grep 有点愚蠢,而且 awk 可以在模式中使用布尔运算符 - 例如 AND &&
、 OR||
和 NOT !
):
df -h | awk 'NR==1; /^\/dev\// && ! /^\/dev\/(loop|shm)/'
这将打印第一行(标题)以及/dev/
以 /dev/shm 或 /dev/loop 开头的任何行。在您的系统上,使用df -h
您发布的示例输出,它将显示:
$ awk 'NR==1; /^\/dev/ && ! /dev\/(loop|shm)/' /tmp/df-sample.txt
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vgubuntu-root 467G 410G 33G 93% /
/dev/sda2 704M 305M 348M 47% /boot
/dev/sda1 511M 26M 486M 6% /boot/efi
调整正则表达式以满足您的需要。
注意:这不适用于任何 ZFS 文件系统 - 它们作为池/数据集安装,而不是来自 /dev。例如,在我的系统上,rootfs 和池“hex”上有几个其他文件系统,以及用于 /boot 的 mdadm raid1 ext4 和用于 /boot/efi 的 FAT 分区(所有这些都是同一对相同 NVME 驱动器上的分区- 与很多人的想法相反,ZFS 与分区配合得很好,你不必给它整个磁盘):
$ df -Th
Filesystem Type Size Used Avail Use% Mounted on
hex/ROOT zfs 243G 14G 229G 6% /
/dev/md0 ext4 2.0G 335M 1.5G 18% /boot
/dev/nvme1n1p2 vfat 511M 49M 463M 10% /boot/efi
hex/local zfs 230G 855M 229G 1% /usr/local
hex/home zfs 257G 28G 229G 11% /home
hex/var zfs 229G 128K 229G 1% /var
...
...
但是,由于您知道池名称,因此您可以调整正则表达式以适应,例如:
df -h | awk 'NR==1; /^(\/dev|hex)/ && ! /dev\/(loop|shm)/'
或 fs 类型 ( df -T
) 的匹配:
df -Th | awk 'NR==1 || $2 ~ /zfs|btrfs|ext|fat|xfs/'
另请参阅 GNU df-t
限制显示文件系统类型的选项,以及-x
排除 fs 类型的选项。
答案3
我喜欢这个命令 - lsblk
fred@Z170-jammy:~$ lsblk -e 7 -o model,name,fstype,size,fsused,label,partlabel,mountpoint,uuid
MODEL NAME FSTYPE SIZE FSUSED LABEL PARTLABEL MOUNTPOINT UUID
HGST sda 931.5G
├─sda1 vfat 510.2M ESP_B EFI System Partition
│ F496-1330
├─sda2 ext4 30.3G 6.1G hirsute
│ hirsute /media/fre 2888d7ab-23e4-4981-8566-7e23335be781
├─sda3 ext4 49.8G 40K ISO_b ISO_b /media/fre c395f36d-5e02-4913-a904-e336054b2eff
├─sda4 ext4 147.6G 115.6G backup_b
│ backup_b /media/fre dd4e4a2e-4785-4441-91b0-28234b98e625
├─sda5 ext4 30.3G 6.2G focal_a
│ focal_a /media/fre f2cde08c-a045-43ef-83bd-a4132aa23fbd
├─sda6 ext4 302.7G 117.8G data data /media/fre f9537995-8b44-4abb-b5fb-ec27023f57b2
├─sda7 swap 2.1G 3ef43e7c-8a35-4f8b-bc73-c91d6098d4cd
├─sda8 ext4 24.4G 8.2G impish impish /media/fre a269adca-248f-4633-a06d-01348ae42d3a
├─sda9 ext4 24G 6.9G groovy_k
│ groovy_k /media/fre 6fadac33-0cdc-4005-940c-a4d035058dd8
└─sda10 ext4 33.3G 9.7G jammy-b
jammy_b /media/fre aa644837-3a50-4cc3-b5b9-683172ea7d60
Samsu nvme0n1 465.8G
├─nvme0n1p1
│ vfat 512M 16.2M ESP_NVME
│ esp_nvme /boot/efi 4954-C122
├─nvme0n1p2
│ ext4 29.3G 8.7G focal_0
│ focal_0 /media/fre b913e1bc-6f08-4984-b653-9a604d95470a
├─nvme0n1p3
│ ext4 29.3G 10.1G focal_k
│ focal_k /media/fre 54029c4f-0cbe-413e-80ce-78a4995b0551
├─nvme0n1p4
│ ext4 29.3G 15.7G jammy jammy / 9da6b198-e2ca-4e27-8a18-6daf4ecfc324
└─nvme0n1p5
ext4 195.3G 134.9G nvme_data
nvme_data /mnt/data 1a44f4af-6780-4bbd-ad0b-6385ed30830b