我在 apt 中遇到错误,这似乎与启动分区上没有足够的空间有关。dpkg --configure -a
Setting up initramfs-tools (0.140ubuntu13) ...
update-initramfs: deferring update (trigger activated)
Processing triggers for initramfs-tools (0.140ubuntu13) ...
update-initramfs: Generating /boot/initrd.img-5.15.0-46-generic
...
zstd: error 25 : Write error : No space left on device (cannot write compressed block)
E: mkinitramfs failure zstd -q -1 -T0 25
update-initramfs: failed for /boot/initrd.img-5.15.0-46-generic with 1.
dpkg: error processing package initramfs-tools (--configure):
installed initramfs-tools package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
initramfs-tools
我已经清理了分区,但问题仍然存在。 du -d1 -h /boot
给出
8.2M /boot/grub
14M /boot/efi
373M /boot
373M total
zfs list
产量:
bpool 1.64G 115M 96K /boot
bpool/BOOT 1.63G 115M 96K none
bpool/BOOT/ubuntu_kd8ik4 325M 115M 351M /boot
bpool/BOOT/ubuntu_xwub0c 1.32G 115M 351M /boot
和zpool status -v bpool
pool: bpool
state: ONLINE
scan: scrub repaired 0B in 00:00:01 with 0 errors on Thu Aug 18 11:10:49 2022
config:
NAME STATE READ WRITE CKSUM
bpool ONLINE 0 0 0
ef6a5d5a-29e2-3b47-bd01-cc9b33b50787 ONLINE 0 0 0
errors: No known data errors
那么现在看起来虽然数据已从分区中删除,但它实际上仍然存在于旧快照中?
但是,zfs list -rt snapshot bpool
没有显示大分区。
NAME USED AVAIL REFER MOUNTPOINT
bpool/BOOT/ubuntu_xwub0c@autozsys_g612ij 72K - 254M -
bpool/BOOT/ubuntu_xwub0c@autozsys_zz6jnc 56K - 254M -
bpool/BOOT/ubuntu_xwub0c@autozsys_37jsph 56K - 254M -
bpool/BOOT/ubuntu_xwub0c@autozsys_e1jf32 0B - 254M -
bpool/BOOT/ubuntu_xwub0c@autozsys_iediod 0B - 254M -
bpool/BOOT/ubuntu_xwub0c@autozsys_kvs9cu 0B - 254M -
bpool/BOOT/ubuntu_xwub0c@autozsys_2ljo2e 0B - 254M -
bpool/BOOT/ubuntu_xwub0c@autozsys_nuk0ub 0B - 254M -
bpool/BOOT/ubuntu_xwub0c@autozsys_ofjed2 0B - 254M -
bpool/BOOT/ubuntu_xwub0c@autozsys_wbqse4 0B - 455M -
bpool/BOOT/ubuntu_xwub0c@autozsys_x820pz 0B - 455M -
bpool/BOOT/ubuntu_xwub0c@autozsys_wwx7np 0B - 455M -
bpool/BOOT/ubuntu_xwub0c@autozsys_fhi1tz 72K - 341M -
bpool/BOOT/ubuntu_xwub0c@autozsys_8jj3zu 64K - 341M -
bpool/BOOT/ubuntu_xwub0c@autozsys_bfdhhr 0B - 341M -
bpool/BOOT/ubuntu_xwub0c@autozsys_95dnyh 0B - 341M -
bpool/BOOT/ubuntu_xwub0c@autozsys_7orem7 64K - 341M -
bpool/BOOT/ubuntu_xwub0c@autozsys_5rpfzz 72K - 351M -
bpool/BOOT/ubuntu_xwub0c@autozsys_1npt7j 0B - 351M -
bpool/BOOT/ubuntu_xwub0c@autozsys_uevq0m 0B - 351M -
有任何想法吗?也许也可以帮助我理解我在这里看到的内容。如果这些不是快照,那么它们是什么以及如何整合它们?
编辑
zfs list -o name,used,usedsnap -s usedsnap bpool
NAME USED USEDSNAP
bpool 1.64G 0B
答案1
长话短说:
通过手册页获取:man zfs
在不同的驱动器上设置一个“测试池”,并了解该池上的快照和文件系统,这样您就不必担心对系统关键池执行某些操作。
交朋友,zfs list
这样你就知道你正在查看文件系统还是快照:zfs list -rt filesystem
/`zfs list -rt snapshot'
交朋友,zfs get
这样你就知道如何显示文件系统或快照的各种属性:zfs get all
最后,为快照制定备份策略,并确定要保留哪些快照,不保留哪些快照。zfs destroy -v ....
对您不想要的快照进行操作。
为了学习如何使用 ZFS 数据集,阅读zfs
手册页是值得的。 ZFS 数据集具有许多属性,具体取决于您是否使用数据集、快照、卷等。
对于初学者,
zfs list [-r|-d 深度] [-Hp] [-o 属性[,属性]...] [-s 属性]... [-S 属性]... [-t 类型[,类型] ...] [文件系统|卷|快照]...
以表格形式列出给定数据集的属性信息。如果指定,您可以按绝对路径名或相对路径名列出属性信息。默认情况下,显示所有文件系统和卷。如果listsnaps 属性打开(默认为关闭),则会显示快照。显示以下字段:名称、已使用、可用、引用、安装点。
如果您不清楚正在查看的条目是文件系统还是快照,您可以指示zfs
仅显示您想要查看的类型。要仅查看文件系统,请使用:
zfs list -rt filesystem bpool
要仅查看快照,请使用:
zfs list -rt snapshot bpool
要同时查看两者,请尝试:
zfs list -rt all -o name,type,creation
您可以通过更具描述性地选择文件系统和快照名称来提高文件系统布局的清晰度。我通常根据 YYYYMMDD-HHMMSS 来命名快照,因此我可以很快看到名为 的快照poolname/var/db@20220817-000500
是文件系统的快照/var/db
,并且比名为 的快照更新poolname/var/db@20220815-000500
。
creation
可以查询该属性以zfs
显示创建快照时的日期戳:
$ zfs get creation poolname/var/db@20220817-000500
NAME PROPERTY VALUE SOURCE
poolname/var/db@20220817-000500 creation Wed Aug 17 0:05 2022 -
或显示数据集所有快照的名称和创建poolname/var/db
:
$ zfs list -rt snap -o name,creation poolname/var/db
NAME CREATION
poolname/var/db@20220812-000500 Fri Aug 12 0:05 2022
poolname/var/db@prior-to-installworld Fri Aug 12 12:13 2022
poolname/var/db@20220813-000500 Sat Aug 13 0:05 2022
poolname/var/db@20220814-000500 Sun Aug 14 0:05 2022
poolname/var/db@20220815-000500 Mon Aug 15 0:05 2022
poolname/var/db@20220816-000500 Tue Aug 16 0:05 2022
poolname/var/db@20220817-000500 Wed Aug 17 0:05 2022
poolname/var/db@prior-to-installkernel Wed Aug 17 12:54 2022
poolname/var/db@20220818-000500 Thu Aug 18 0:05 2022
poolname/var/db@20220819-000500 Fri Aug 19 0:05 2022
要查看 ZFS 为文件系统存储的属性示例,请尝试:
zfs get all bpool
一旦掌握了哪些属性在工作流程中有用,您就可以调整部分-o
以zfs list -rt all -o name,type,creation
列出这些属性。
至于您关于哪些快照可以安全删除的问题,根据定义,所有快照可以安全删除。它们是快照,而不是文件系统。 (请注意,zfs
如果快照是克隆文件系统的起源,则不会让您销毁快照。)与任何备份策略一样,您应该有意计划拍摄快照的频率以及存储快照的时间。通常会有一段时间,快照的寿命会增长到快照作为备份点不再有价值的程度,因为发生了太多变化,以至于恢复到那么早的状态会很痛苦。一旦快照达到该期限,明智的做法是定期清除它们以恢复快照使用的池空间。这是另一种情况,使用有意义的、易于理解的快照名称可以帮助您区分哪些快照对您重要,哪些快照不重要。但备份策略的主题完全是“另一锅鱼……”
当您确定要销毁的快照时,可以将名称复制并粘贴到命令行中:
zfs destroy -v bpool/BOOT/ubuntu_xwub0c@autozsys_g612ij
最后,我对我所要求的财产不够具体USEDSNAP
。但如果你这样做:
zfs list -o name,used,usedsnap bpool/BOOT/ubuntu_xwub0c
您应该看到该数据集总共使用了多少空间,以及快照占用了多少空间。
我希望这可以帮助您开始阅读zfs
手册页并了解如何查询 ZFS 系统以获得您想要的信息。