ZFS を使用した Ubuntu 19.10 での grub configure が壊れている

ZFS を使用した Ubuntu 19.10 での grub configure が壊れている

grub configure に失敗したため、apt が壊れてしまいました。

grub が zfs スナップショット内の linux-images を検出しようとしているようです:

Setting up linux-image-5.3.0-23-generic (5.3.0-23.25) ...
Processing triggers for man-db (2.8.7-3) ...
Processing triggers for linux-image-5.3.0-23-generic (5.3.0-23.25) ...
/etc/kernel/postinst.d/initramfs-tools:
update-initramfs: Generating /boot/initrd.img-5.3.0-23-generic
cryptsetup: ERROR: Couldn't resolve device rpool/ROOT/ubuntu_q9qi62
cryptsetup: WARNING: Couldn't determine root device
I: The initramfs will attempt to resume from /dev/sda5
I: (UUID=a9d90fb7-5154-4897-9a2e-90c040c8ee90)
I: Set the RESUME variable to override this.
/etc/kernel/postinst.d/zz-update-grub:
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
Found linux image: vmlinuz-5.3.0-18-generic in rpool/ROOT/ubuntu_q9qi62
Found initrd image: initrd.img-5.3.0-18-generic in rpool/ROOT/ubuntu_q9qi62
Found linux image: vmlinuz-5.3.0-19-generic in rpool/ROOT/ubuntu_q9qi62
Found initrd image: initrd.img-5.3.0-19-generic in rpool/ROOT/ubuntu_q9qi62
Found linux image: vmlinuz-5.3.0-23-generic in rpool/ROOT/ubuntu_q9qi62
Found initrd image: initrd.img-5.3.0-23-generic in rpool/ROOT/ubuntu_q9qi62
/etc/grub.d/10_linux_zfs: 338: .: Can't open /tmp/zfsmnt.rcbjOa/etc/.zfs/snapshot/autobackup-sd25sfd-2019-10-23--17-41-11/os-release
umount: /tmp/zfsmnt.rcbjOa: target is busy.
rmdir: failed to remove '/tmp/zfsmnt.rcbjOa': Device or resource busy
run-parts: /etc/kernel/postinst.d/zz-update-grub exited with return code 127
dpkg: error processing package linux-image-5.3.0-23-generic (--configure):
 installed linux-image-5.3.0-23-generic package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
 linux-image-5.3.0-23-generic

インストーラーによるデフォルトの ubuntu19.10 zfs 構成を使用しています。

答え1

古いけど気にしないので...

この問題に遭遇しました。原因は、Sophos AV スキャナが /tmp 下の新しいマウント ポイントを自動的にスキャンしていることでした。これにより、ファイル システムがロックされていました。そのため、更新の実行中に Sophos を無効にすると、問題は解決しました。

以下のフックを追加することで、将来の問題にも対処できるはずです。

root@:/etc/grub.d# ls -tlr *sophos*
-rwxr-xr-x 1 root root 45 Feb  9 13:16 01_sophos
-rwxr-xr-x 1 root root 46 Feb  9 13:16 999_sophos
root@:/etc/grub.d# cat *sophos*
#!/bin/sh

systemctl stop sophos-spl.service
#!/bin/sh

systemctl start sophos-spl.service
root@abl-nonprod-agent-02:/etc/grub.d#

 

関連情報