我需要释放 bpool 中的一些空间,以便将最新补丁添加到运行 ZFS 的 Ubuntu 22.04 系统中。我尝试使用 ZFS 销毁最旧的快照,但在重新启动时,启动失败并显示以下信息:
Booting a command list
error: no such device: 9a3acf1a88182eec.
Loading Linux 6.2.0-34-generic ...
error: file '/BOOT/ubuntu_uad4uk@/vmlinuz-6.2.0-34-generic' not found
Loading initial ramdisk ...
error: you need to load the kernel first.
Press any key to continue...
如何在不破坏数据和 rpool 的情况下修复系统?设备是什么9a3acf1a88182eec
?我是长期的 Unix(Solaris)用户,但对 Ubuntu admin 或 grub 不太熟悉。
我最初从活动磁盘安装,它创建了 bpool 和 rpool zfs 池,并从 nvram 磁盘上的 EFI 分区启动。
我尝试从 USB 启动 Ubuntu Live,并且可以导入、挂载和查看 bpool ZFS。我拥有的所有内核都在那里,包括问题发生前挂载在 /boot 目录上的 bpool 中可见的所有文件/目录。我还可以挂载 EFI 分区并查看 grub 内容,所以我认为我之前拥有的所有文件都没有丢失。
给出上述消息的 grub 条目是:
setparams 'Ubuntu 22.04.3 LTS, with Linux 6.2.0-34-generic'
recordfail
load_video
gfxmode ${linux_gfx_mode}
insmod gzio
if [ "${grub_platform}" = xen ] ; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod zfs
search --no-floppy --fs-uuid --set=root 9a3acf1a88182eec
echo Loading Linux 6.2.0-34-generic ...
linux "/BOOT/ubuntu_uad4uk@/vmlinuz-6.2.0-34-generic" root=ZFS="rpool/ROOT/ubuntu_ad4uk" l_iommu=on,igfx_off quiet splash ${vt_handoff}
echo 'Loading initial ramdisk ...'
initrd "/BOOT/ubuntu_uad4uk@/initrd.img-6.2.0-34-generic"
我尝试遵循@Daniel T 的建议,并且 update-grub 给出了
/# update-grub
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
grub-probe: error: compression algorithm inherit not supported
.
Memtest86+ needs a 16-bit boot, that is not available on EFI, exiting
Warning: os-prober will not be executed to detect other bootable partitions.
Systems on them will not be added to the GRUB boot configuration.
Check GRUB_DISABLE_OS_PROBER documentation entry.
Adding boot menu entry for UEFI Firmware Settings ...
done
当我运行 grub-install 时,我得到:
/# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu --recheck —no-floppy
Installing for x86_64-efi platform.
grub-install: error: compression algorithm inherit not supported