这是一台台式机,配有 1TB SSD 用于操作系统 Xubuntu 20.04.6,以及几台 HDD 用于存储我的所有文件。因此操作系统不应该占用那么多空间。但这是 df 的输出:
Filesystem 1K-blocks Used Available Use% Mounted on
udev 16332704 0 16332704 0% /dev
tmpfs 3284264 3384 3280880 1% /run
/dev/nvme0n1p2 959786032 740380052 170577772 82% /
显然,还有更多行,但问题出在 /dev/nvme 那一行。我无论如何也找不到是什么占用了那么多空间。“home”文件夹大约有 6GB。
我对“proc”目录感到怀疑。Nautilus 表示它有数万个文件,总共 128TB。我认为不是。以下是 cd /proc; sudo du -hs 的输出
du: cannot read directory './3032/task/3032/net': Invalid argument
du: cannot read directory './3032/net': Invalid argument
du: cannot read directory './3288/task/3288/net': Invalid argument
du: cannot read directory './3288/net': Invalid argument
du: cannot access './6606/task/6606/fd/3': No such file or directory
du: cannot access './6606/task/6606/fdinfo/3': No such file or directory
du: cannot access './6606/fd/4': No such file or directory
du: cannot access './6606/fdinfo/4': No such file or directory
0
我对“/”下的所有其他目录使用了“du -hs”,它们加起来大约有 55GB。还有一个 2GB 的交换文件。那么我如何找到占用我所有 SSD 空间的东西呢?
更新:以下是输出cd / ; sudo du -hxd 1
j@puter:/$ cd / ; sudo du -hxd 1
11M ./root
18M ./bin
20M ./sbin
4.0K ./mnt
5.4G ./usr
16K ./lost+found
184K ./tmp
532M ./opt
248M ./boot
84K ./snap
12G ./var
6.4G ./home
4.0K ./lib64
8.0K ./srv
1.5G ./lib
4.0K ./cdrom
14M ./etc
8.0K ./media
28G .
j@puter:/$
更新:从实时 USB 启动,运行 fsck
xubuntu@xubuntu:~$ sudo fsck -f /dev/nvme0n1p2
fsck from util-linux 2.37.2
e2fsck 1.46.5 (30-Dec-2021)
Pass 1: Checking inodes, blocks, and sizes
Inode 34099073 extent tree (at level 1) could be narrower. Optimize<y>? yes
Inode 34344578 extent tree (at level 1) could be shorter. Optimize<y>? yes
Pass 1E: Optimizing extent trees
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/nvme0n1p2: ***** FILE SYSTEM WAS MODIFIED *****
/dev/nvme0n1p2: 514456/61022208 files (4.6% non-contiguous), 189197520/244059136 blocks
xubuntu@xubuntu:~$
更新: ncdu
证实了du
我的观点:
Total disk usage: 27.4 GiB Apparent size: 27.2 GiB Items: 402910
当我在 GUI 中查看“属性”时,它显示
401685 items, totalling 26.1 GiB (28,044,956,192 bytes)
(some contents unreadable)
162.7 GiB of 915.3 GiB free (82% used)
答案1
最后,在 Ubuntuforums 上找到了这个:
du-估计文件空间使用情况(检查您的文件夹)
此命令将显示给定文件夹上挂载的文件系统使用了多少空间。du 的一个缺点是它仅报告有关挂载文件的信息。此外,如果将设备安装到已包含数据的文件夹,则结果中不会包含底层数据大小。这意味着,如果 /media/data 包含 40GB 的数据,但随后将 20GB 的分区安装到 /media/data,则结果将仅显示最后安装的设备的 20GB。
(强调添加)
就我而言,我的内部数据硬盘(不是有“问题”的系统固态硬盘)备份到外部便携式驱动器。外部备份安装到 /mnt/backup/(在 fstab 中指定)。我怀疑备份脚本一定是在备份驱动器未安装时运行的,所以它将我的数据驱动器的内容写入系统磁盘!显然du -x
忽略了已安装的数据,但也不包含底层数据。
所以解决方案很简单。
sudo umount -a
删除 /mnt/backup/ 的内容
sudo mount -a
现在我有了这个:
403352 items, totalling 25.7 GiB (27,570,012,200 bytes)
(some contents unreadable)
841.5 GiB of 915.3 GiB free (8% used)
感谢所有回复并给我提供搜索和学习内容指点的人。
答案2
根据您提供的信息,/dev/nvme0n1p2
实际上已满 82%。
运行命令cd / ; sudo du -hxd 1
来找出占用了这么多空间的原因。
该h
选项使其采用人类可读的格式。
该x
选项忽略 上的所有其他已安装的文件系统/
。
该d 1
选项将目录深度设置为 1,仅显示第一级目录,使其更易于阅读。
答案3
可能是,您的节点(存储扇区)的块大小很大。在安装 Linux 时,您可以选择您喜欢的文件系统和块大小。
因此,您必须考虑要用 Linux 计算机做什么:
- 您是否想要一个文件服务器,那么如果您有多个/大量文件,最好使用较小的块大小,或者
- 您有一个游戏桌面,那么如果您拥有最少数量的文件和大量的数据信息,那么最好有一个更大的块大小。
例如:如果您有小文件,大小只有 512 字节,但您在文件系统设置中选择了 1024 字节的块大小,则文件系统会将 512 字节存储到 1024 块中,而块的其余部分为空,仅供整个文件使用。因此,您有 512 个未使用空间的间隙。然后,下一个文件是 10 字节,那么您的间隙就是 1014 字节。依此类推……
您拥有的文件越多,块的间隙就越多……
因此,在安装 Linux 或其他操作系统之前,您必须制作思维导图。
我无法给出最终的提示或暗示,因为这是你的决定,我不会,毕竟人们会说:“我,我已经告诉过这个和那个......”我希望你能理解我的意见。