Main machineではLinux kernel image (linux-image)を自前でbuildしているのだが、その際不要になった古いpackageの削除が失敗した。原因はlinux-image packageのpostrm scriptにhookされているupdate-grubが:
grub-probe: error: failed to get canonical path of sdb5_crypt
を吐いて失敗したことによる。なお、sdb5_cryptはLUKSでencryptしているpartitionであって、環境に依存して名前が変化する。
ちなみに、なぜlinux-imageの削除にupdate-grubがhookされているのかというと、linux-imageが削除されるとそのversionのkernelはもはや存在せずbootできないので、update-grubを実行してboot menu (/boot/grub/grub.cfg)をupdateする必要があるからだ。
最も簡単なworkaroundは、/dev/mapper/sdb5_cryptが存在しないので、これを作り直してやること。
sudo ln -s /dev/dm-0 /dev/mapper/sdb5_crypt
以前存在していた/dev/mapper/sdb5_cryptがなぜ無くなったのかについては不明だが、Linux kernelのupdate (4.19.11 → 4.20)、systemdのupdate、sysvinit → systemdへの変更、など幾つかの要因が考えられる。
0 件のコメント:
コメントを投稿