我最近清理了我的电脑,安装了 20.10,我很喜欢,它太棒了!这次我决定尝试一下,使用实验性的 zfs 支持,但安装软件包和更新一段时间后,我现在遇到了一个奇怪的问题,我的启动 zpool 太满了。
每当我在软件更新程序中点击“立即更新”时,我都会收到如下消息:
The upgrade needs a total of 254 M free space on disk '/boot'. Please free at least an additional 194 M of disk space on '/boot'. You can remove old kernels using 'sudo apt autoremove', and you could also set COMPRESS=xz in /etc/initramfs-tools/initramfs.conf to reduce the size of your initramfs.
我已经运行了sudo apt autoremove
,但它没有删除任何东西,我犹豫着是否要改变我的 initramfs 上的压缩,因为这更像是对可能较低问题的补丁(也许我错了,哈哈)。
我仍然可以手动升级,sudo apt update && sudo apt upgrade
但每次都会出现此错误:
ERROR couldn't save system state: Minimum free space to take a snapshot and preserve ZFS performance is 20%.
当我跑步时zpool list
我得到:
NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
bpool 1.88G 1.69G 185M - - 47% 90% 1.00x ONLINE -
rpool 460G 165G 295G - - 10% 35% 1.00x ONLINE -
因此我的启动池容量为 90%......
我也尝试过zsysctl service gc -a
删除快照但这似乎并没有改变 bpool 的使用情况...
所以也许我需要更改我的 bpool 分配大小?我该怎么做?
当我升级/安装时,我也遇到了一些奇怪的 initramfs 故障,但我不确定这是否相关?
Setting up initramfs-tools (0.137ubuntu12) ...
update-initramfs: deferring update (trigger activated)
Setting up linux-firmware (1.190.1+system76~1605123765~20.10~3894207) ...
update-initramfs: Generating /boot/initrd.img-5.8.0-29-generic
I: The initramfs will attempt to resume from /dev/nvme0n1p2
I: (UUID=05a735a7-9e82-494e-be9b-171b1c132af5)
I: Set the RESUME variable to override this.
Error 24 : Write error : cannot write compressed block
E: mkinitramfs failure cpio 141 lz4 -9 -l 24
update-initramfs: failed for /boot/initrd.img-5.8.0-29-generic with 1.
dpkg: error processing package linux-firmware (--configure):
installed linux-firmware package post-installation script subprocess returned error exit status 1
Processing triggers for initramfs-tools (0.137ubuntu12) ...
update-initramfs: Generating /boot/initrd.img-5.8.0-29-generic
I: The initramfs will attempt to resume from /dev/nvme0n1p2
I: (UUID=05a735a7-9e82-494e-be9b-171b1c132af5)
I: Set the RESUME variable to override this.
Error 24 : Write error : cannot write compressed block
E: mkinitramfs failure cpio 141 lz4 -9 -l 24
update-initramfs: failed for /boot/initrd.img-5.8.0-29-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:
linux-firmware
initramfs-tools
ZSys is adding automatic system snapshot to GRUB menu
E: Sub-process /usr/bin/dpkg returned an error code (1)
运行zfs list -t snapshot
显示了 bpool 的一堆快照:
NAME USED AVAIL REFER MOUNTPOINT
bpool/BOOT/ubuntu_fjp6bn@autozsys_z4aetj 72K - 237M -
bpool/BOOT/ubuntu_fjp6bn@autozsys_mtxh3h 72K - 237M -
bpool/BOOT/ubuntu_fjp6bn@autozsys_72y92u 105M - 357M -
bpool/BOOT/ubuntu_fjp6bn@autozsys_lo8d22 85.2M - 337M -
bpool/BOOT/ubuntu_fjp6bn@autozsys_y7ihca 104M - 336M -
bpool/BOOT/ubuntu_fjp6bn@autozsys_qs6vz5 85.2M - 318M -
bpool/BOOT/ubuntu_fjp6bn@autozsys_cyg6vx 72K - 337M -
bpool/BOOT/ubuntu_fjp6bn@autozsys_r6e64v 56K - 218M -
bpool/BOOT/ubuntu_fjp6bn@autozsys_nrhjqi 56K - 218M -
bpool/BOOT/ubuntu_fjp6bn@autozsys_kgfl6b 104M - 218M -
bpool/BOOT/ubuntu_fjp6bn@autozsys_nw3nk0 85.1M - 199M -
bpool/BOOT/ubuntu_fjp6bn@autozsys_m1b6l9 104M - 218M -
bpool/BOOT/ubuntu_fjp6bn@autozsys_hnt98o 85.1M - 199M -
bpool/BOOT/ubuntu_fjp6bn@autozsys_rj8ttq 64K - 218M -
bpool/BOOT/ubuntu_fjp6bn@autozsys_da1f4s 0B - 218M -
bpool/BOOT/ubuntu_fjp6bn@autozsys_ljdo3n 0B - 218M -
bpool/BOOT/ubuntu_fjp6bn@autozsys_danwfz 0B - 218M -
bpool/BOOT/ubuntu_fjp6bn@autozsys_4sjbka 104M - 218M -
bpool/BOOT/ubuntu_fjp6bn@autozsys_gl3ru4 0B - 218M -
bpool/BOOT/ubuntu_fjp6bn@autozsys_tdbgin 0B - 218M -
rpool/ROOT/ubuntu_fjp6bn@autozsys_z4aetj 71.7M - 5.10G -
rpool/ROOT/ubuntu_fjp6bn@autozsys_mtxh3h 217M - 5.25G -
rpool/ROOT/ubuntu_fjp6bn@autozsys_72y92u 33.3M - 5.43G -
rpool/ROOT/ubuntu_fjp6bn@autozsys_lo8d22 30.2M - 5.30G -
rpool/ROOT/ubuntu_fjp6bn@autozsys_y7ihca 224M - 5.42G -
rpool/ROOT/ubuntu_fjp6bn@autozsys_qs6vz5 27.8M - 5.23G -
rpool/ROOT/ubuntu_fjp6bn@autozsys_cyg6vx 56.3M - 5.51G -
rpool/ROOT/ubuntu_fjp6bn@autozsys_r6e64v 56.6M - 5.29G -
rpool/ROOT/ubuntu_fjp6bn@autozsys_nrhjqi 30.6M - 5.29G -
rpool/ROOT/ubuntu_fjp6bn@autozsys_kgfl6b 7.01M - 5.25G -
rpool/ROOT/ubuntu_fjp6bn@autozsys_nw3nk0 29.6M - 5.17G -
rpool/ROOT/ubuntu_fjp6bn@autozsys_m1b6l9 222M - 5.32G -
rpool/ROOT/ubuntu_fjp6bn@autozsys_hnt98o 27.7M - 5.13G -
rpool/ROOT/ubuntu_fjp6bn@autozsys_rj8ttq 26.2M - 5.17G -
rpool/ROOT/ubuntu_fjp6bn@autozsys_da1f4s 155M - 5.29G -
rpool/ROOT/ubuntu_fjp6bn@autozsys_ljdo3n 24.9M - 5.61G -
rpool/ROOT/ubuntu_fjp6bn@autozsys_danwfz 181M - 5.74G -
rpool/ROOT/ubuntu_fjp6bn@autozsys_4sjbka 498M - 5.66G -
rpool/ROOT/ubuntu_fjp6bn@autozsys_gl3ru4 0B - 5.92G -
rpool/ROOT/ubuntu_fjp6bn@autozsys_tdbgin 0B - 5.92G -
但是我对 zfs 或 zsys 不够熟悉,不知道是否可以销毁快照?
答案1
问题在于 中的快照bpool
。简单地删除它们会产生新问题,因为系统上的每个 zpool 都有一个同名的快照,并且update-grub
依赖update-initramfs
于这一事实。如果仅删除bpool
快照,则这两个命令都需要很长时间,这很烦人。我发现修复它的唯一方法是删除全部快照。这是我使用的命令:
zfs list -t snapshot -r | grep auto | cut -f1 -d' ' | xargs -n 1 sudo zfs destroy
不幸的是,这会破坏所有快照,因此您将无法将系统恢复到以前的状态。一定有办法扩大 的大小bpool
!
答案2
所以我认为我修复了它...我运行了zfs list -t snapshot | grep bpool
启动池的所有快照列表。然后sudo zfs destroy bpool/...
从列表顶部开始运行一些快照,直到zpool list
显示 bpool 大约为 60% CAP。然后运行sudo apt upgrade
,它成功运行了 mkinitramfs!现在我的 bpool 大约为 70% :耸肩:
答案3
尝试清除 /boot/ 上的空间
uname -r
告诉您正在运行哪个内核;这个版本不能被删除。
简单列表:
dpkg --list | grep linux-
将显示与内核相关的内容以及其他项目。
高级,列出已安装的(最左列中的 ii)可能被清除的项目:
dpkg --list | grep -E '^ii.*linux-(headers|image|modules)' | grep -v $(uname -r)
现在检查_name_
您可以删除哪些项目(),然后
sudo apt purge _name_
对它们执行...。