为什么要保留 zfs-dracut 包?

为什么要保留 zfs-dracut 包?

我最近从 ubuntu 18.04 升级到了 22.04,这也升级了我的 zfs 版本...除了这个包,zfs-dracut它“被保留了下来”。

从输出中可以看出apt policy zfs-dracut,问题是不是这是一个分阶段的升级。

generic@motorbrot:/media/generic$ sudo apt upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
  alsa-ucm-conf firmware-sof-signed ubuntu-advantage-tools zfs-dracut
# [more irrelevant stuff here]

generic@motorbrot:~$ sudo apt policy zfs-dracut
zfs-dracut:
  Installed: 0.8.4-1
  Candidate: 2.1.4-0ubuntu0.1
  Version table:
     2.1.4-0ubuntu0.1 500
        500 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 Packages
        500 http://security.ubuntu.com/ubuntu jammy-security/universe amd64 Packages
     2.1.2-1ubuntu3 500
        500 http://archive.ubuntu.com/ubuntu jammy/universe amd64 Packages
 *** 0.8.4-1 100
        100 /var/lib/dpkg/status

我的zfs版本目前是:

generic@motorbrot:~$ zfs --version
zfs-2.1.4-0ubuntu0.1
zfs-kmod-2.1.4-0ubuntu0.1

尽管 askubuntu 上有很多问题询问为什么“软件包被扣留”,但答案往往如下:

  • 这是分阶段更新。请稍等。不过
    这会显示在输出中。apt policy
  • 只需安装它(,,,,apt install --upgrade-only zfs-dracut... )这些都 没有什么区别。apt install zfs-dracutapt full-upgradeapt-get --with-new-pkgs upgrade
  • 该包裹是标记被阻止了。
    在我的情况下没有,sudo apt-mark showhold zfs-dracut没有输出。
  • 只需清除并重新安装即可。
    我可以这样做,但我担心它可能因为一个好的理由而被阻止,而清除它会破坏某些东西。特别是因为我在 root 上运行 zfs。

为什么这个包裹被扣留了吗?
(并且如何我自己能解决这个问题吗?)


跟进评论:以下是我在执行上述某些操作时发生的情况,但这些操作不起作用。这些摘录是最新的,因此也包含其他软件包。其他软件包均按phased进行apt policy

generic@motorbrot:/media/generic$ sudo apt list --upgradeable
[sudo] password for generic: 
Listing... Done
alsa-ucm-conf/jammy-updates,jammy-updates 1.2.6.3-1ubuntu1.4 all [upgradable from: 1.2.6.3-1ubuntu1.3]
libnvpair3linux/jammy-updates 2.1.5-1ubuntu6~22.04.1 amd64 [upgradable from: 2.1.4-0ubuntu0.1]
libuutil3linux/jammy-updates 2.1.5-1ubuntu6~22.04.1 amd64 [upgradable from: 2.1.4-0ubuntu0.1]
libzfs4linux/jammy-updates 2.1.5-1ubuntu6~22.04.1 amd64 [upgradable from: 2.1.4-0ubuntu0.1]
libzpool5linux/jammy-updates 2.1.5-1ubuntu6~22.04.1 amd64 [upgradable from: 2.1.4-0ubuntu0.1]
python3-pyzfs/jammy-updates 2.1.5-1ubuntu6~22.04.1 amd64 [upgradable from: 2.1.4-0ubuntu0.1]
ubuntu-advantage-tools/jammy-updates 27.13.5~22.04.1 amd64 [upgradable from: 27.13.3~22.04.1]
zfs-dkms/jammy-updates,jammy-updates 2.1.5-1ubuntu6~22.04.1 all [upgradable from: 2.1.4-0ubuntu0.1]
zfs-dracut/jammy-updates 2.1.5-1ubuntu6~22.04.1 amd64 [upgradable from: 0.8.4-1]
zfs-initramfs/jammy-updates 2.1.5-1ubuntu6~22.04.1 amd64 [upgradable from: 2.1.4-0ubuntu0.1]
zfs-test/jammy-updates 2.1.5-1ubuntu6~22.04.1 amd64 [upgradable from: 2.1.4-0ubuntu0.1]
zfs-zed/jammy-updates 2.1.5-1ubuntu6~22.04.1 amd64 [upgradable from: 2.1.4-0ubuntu0.1]
zfsutils-linux/jammy-updates 2.1.5-1ubuntu6~22.04.1 amd64 [upgradable from: 2.1.4-0ubuntu0.1]

generic@motorbrot:/media/generic$ sudo apt full-upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
  alsa-ucm-conf libnvpair3linux libuutil3linux libzfs4linux libzpool5linux python3-pyzfs
  ubuntu-advantage-tools zfs-dkms zfs-dracut zfs-initramfs zfs-test zfs-zed zfsutils-linux
0 upgraded, 0 newly installed, 0 to remove and 13 not upgraded.

警告:答案建议运行apt install zfs-dracut dracut zfsutils-linux。在我的情况下,卸载了zfs-initramfs,发出警告,然后安装 失败zfs-dracut,因为我的好奇心比健康更重要,所以我重新启动了,现在被困在一个不知道 zfs 的 initramfs 上。我从实时棒上修复了这个问题,但无论如何这不是一个好结果。
对于任何处于相同情况的人:我基本上遵循了本指南:从实时 USB 棒启动,导入但不挂载您的 zfs 池,挂载启动时仍可使用的快照zfs mount -t zfs tank/your_dataset@something /mnt/rescue,绑定挂载所有需要的内容(尤其是启动和 efi 分区),chroot 进入并运行update-initramfs -u -k all(或至少是显示的最新内核版本ls -la /lib/modules)。

这些建议的修复可能是有用的(或有害的),但本质上未能回答我的问题:为什么zfs-dracut 被阻止了吗?

边注对于有同样问题的人来说:实际使固定是完全卸载zfs-dracut并重新安装zfs-initramfs,然后再次运行update-initramfs -u -k all
但这与问题无关。

答案1

我怀疑这是因为您使用的是apt upgradeand 而不是apt dist-upgradeapt full-upgradeupgrade如果需要安装其他软件包以满足依赖关系,则不会安装软件包。而dist-upgradefull-upgrade会这样做。

zfs-dracut需要dracutzfsutils-linux(顺便说一下,这可能已经在您删除的“#[更多不相关的东西在这里]”部分中提到过)。

因此,要么 要么sudo apt install zfs-dracut dracut zfsutils-linuxsudo apt dist-upgrade可能帮助你摆脱困境。

相关内容