请让我明白一件事。我首先要说的是,我在我的电脑上运行的是 Ubuntu,它配备了120 GB SSD 驱动器。然后我决定使用时间移位(这是我最喜欢的工具)。因此,很长一段时间以来,我的磁盘一直处于问题状态,经常报告空间不足。有一次甚至严重损坏,但从快照恢复有所帮助。
所以终于到了买一个新的的时候了1TB 固态硬盘(Goodram 品牌)。我创建了 4 个分区,如下图所示:
正如你所看到的,/dev/sda2
这是我的主系统(Ubuntu /)。
/dev/sda4
是一个与我的快照
输出氟化氢命令:
tmpfs 823M 2,3M 821M 1% /run
/dev/sda2 275G 171G 92G 66% /
tmpfs 4,2G 189M 4,0G 5% /dev/shm
tmpfs 5,3M 4,1k 5,3M 1% /run/lock
/dev/sda1 536M 5,5M 531M 2% /boot/efi
/dev/sda4 518G 71G 421G 15% /mnt/Timeshift
tmpfs 823M 267k 823M 1% /run/user/1000
/dev/sda3 218G 159M 218G 1% /media/zawier/Dokumenty Ubuntu
在旧的 ssd 上,快照大小约为 ~ 60GB,这让我们认为系统 + 所有应用程序 + 文档又是 60GB。将所有备份移至新分区/dev/sda4
。目前我有 5 个:
sudo timeshift --list
/dev/sda4 is mounted at: /run/timeshift/backup, options: rw,relatime
Device : /dev/sda4
UUID : 4bf343eb-b0d3-42c6-9a81-db7faa521367
Path : /run/timeshift/backup
Mode : RSYNC
Status : OK
5 snapshots, 447.3 GB free
Num Name Tags Description
------------------------------------------------------------------------------
0 > 2022-06-18_11-00-01 W M 20.04 Focal
1 > 2023-02-18_00-00-01 M
2 > 2023-02-20_19-00-01 W Przed wymianą dysku na 1TB
3 > 2023-02-25_06-50-51 O Po wymianie dysku
4 > 2023-02-25_11-35-53 B Nowy GRUB
我知道 Timeshift 的快照包含符号和硬链接。因此,唯一可以正确复制它们的方法是:
sudo rsync -aHXAS --info=progress2 /timeshift /mnt/Timeshift/
为了保持一致性并避免多次复制同一个文件(在 Linux Garuda 上使用 Timeshift 时遇到了这个问题,其中简单的 rsync 从总共 490GB 的快照中尝试复制 2.9 TB:) 太疯狂了!)
让我们继续。所以我在新分区上复制的 Ubuntu 备份大约占用约 60GB:
这里输出mount |grep timeshift
:
/dev/sda4 on /run/timeshift/backup type ext4 (rw,relatime)
检查后ncdu /mnt/Timeshift/
我们得到:
为什么安装在 上时/dev/sda4
指向?为什么它与 2 个目的地相连?有什么想法吗?为什么它不能只指向?/run/timeshift/bacups
/mnt/Timeshift/
/mnt/Timeshift/
接下来是输出ncdu /
:
全国民权委员会 /
如您所见,尺寸约为200GB而它几乎与之前 120GB SSD 上存储的系统相同!请记住,我也删除了这里的文件夹/timeshift
。这就是为什么我预计总大小会减少到 60GB。最后系统空间增加了!为什么?有人能向我解释一下这里发生了什么吗?在我看来,这不合逻辑!:)
Ubuntu 如何计算已用空间?即使挂载的文件夹位于单独的分区上,它们是否也包含在总空间中?
答案1
我认为挂载点让您感到困惑。当您运行 timeshift 时,它会添加包含/run/timeshift/backup
备份位置(无论该位置在何处)的所有快照的挂载点。您必须已将该位置挂载在/mnt/Timeshift
。然后您使用 ncdu 询问“附加到 / 的已用空间有多少?”。答案是您为系统等启动的 60GB 加上第一次 TimeShift 挂载的约 60GB 和第二次 TimeShift 挂载的 60GB。
现在您已经复制了数据,实际上不需要挂载/mnt/Timeshift
。删除它,ncdu 结果将减少 60GB。重新启动并重试,结果将减少另外 60GB,直到您打开 TimeShift 应用程序。
因此,Ubuntu(或任何 Linux)默认会计算连接到 ncdu 命令起始点的任何分区。但是,如果您使用ncdu -x /
它,则不应跨越文件系统边界。
答案2
庞贾尔你完全正确!这让我很困惑,而从我的角度来看,这是不合逻辑的 :) 这就像当你检查你的银行账户余额时,你会得到所有银行客户的总和。
根据您的建议进行了额外检查。首先卸载以下内容:
mount | grep -i timeshift
/dev/sda4 on /mnt/Timeshift type ext4 (rw,nosuid,nodev,relatime,x-gvfs-show)
/dev/sda4 on /run/timeshift/backup type ext4 (rw,relatime)
并且尺寸下降到了我预期的某个程度。
ncdu 1.15.1 ~ Use the arrow keys to navigate, press ? for help
--- / --------------------------------------------------------------------------
59,5 GiB [##########] /media
26,1 GiB [#### ] /snap
16,0 GiB [## ] /var
12,8 GiB [## ] /usr
7,2 GiB [# ] /home
2,0 GiB [ ] swapfile
1,8 GiB [ ] /opt
266,4 MiB [ ] /boot
36,7 MiB [ ] /etc
29,8 MiB [ ] /root
. 2,3 MiB [ ] /run
360,0 KiB [ ] /tmp
e 16,0 KiB [ ] /lost+found
4,0 KiB [ ] /dev
e 4,0 KiB [ ] /srv
e 4,0 KiB [ ] /mytestsite
e 4,0 KiB [ ] /mnt
e 4,0 KiB [ ] /cdrom
. 0,0 B [ ] /proc
0,0 B [ ] /sys
@ 0,0 B [ ] libx32
Total disk usage: 125,7 GiB Apparent size: 128,1 TiB Items: 3642695
另一个(或更详细的)解释是,默认情况下,我已经设置了/dev/sda4
在系统启动时安装,这里真正有趣的是 - 文件夹类型是节点/目录,其中包括仅文件列表并且不包含文件数据!所以我们可以简化句子,认为那些只是链接 ;)
我想到的最后一个问题是:当总大小等于或大于主分区的大小时会发生什么?系统会报告未使用空间容量低还是会正常运行?在第二种情况下:您如何知道何时磁盘空间即将用完?
感谢您的帮助和解释!