8月末にUbuntu24.04.1が出て22.04からdo-release-upgrade
できるようになったので実行したら、ブートしなくなった……
症状
do-release-upgrade後に再起動したら、Lubuntu(Ubuntu)24.04.1がブートせずBIOS(UEFI)が出るようになった。
調査と原因
hiromasa.another :o)様のサイトによると、どうもT100-TAの頃のASUSのPCは「まず32bitブートローダーが起動してから64bitカーネルが動く」ようになっているらしい。
USBメモリにUbuntu22.04をインストールして32bitブートローダーを/EFI/bootにコピー。BIOSでUSBブートを選択したらブートしたので、do-release-upgradeの不要パッケージ削除段階で32bitブートローダーが消えたと判断。
修復
方法としては、「32bitブートローダーをインストール」すれば良さそうなので、早速実行。ただ、このままだと「32bitブートローダーを入れるためのOSをブートさせるブートローダーがない」という金庫の中の鍵状態なので、USBメモリのブートローダーから起動させる必要がある。
USBメモリのブートローダーからブート
大体は先程のページに全部あるけど
BIOSでUSBメモリからブートするように選択するとGRUBのメニューが出てくるので、cキーでプロンプトに入る。
ls
set root=(hd2,gpt2)
linux /boot/vmlinuz-*.*.*.**-generic root=/dev/mmcblk1p2
initrd /boot/initrd.img-*.*.*.*-generic
boot
でブート。vmlinuzとinitrd.imgの後ろのバージョンは時と場合によるので、「vm」「initrd」まで打ったところでTabキーを押してリスト見たほうがいい。
たまに/dev/mmcblk1p2が見つからないとエラーが出てブートに失敗するけど、lsで見ると大抵mmcblk2とかmmcblk0とか別名になっているので、poweroff
コマンドでいんたん電源を切ってやり直すと、ちゃんとブートする。rootの設定ミスったんかな?
ブートローダーのインストール
ブートさえしちゃえばこっちのもんとばかりにターミナルを開いてsudo apt install grub-efi-ia32-bin
でインストールしようとしたところ
依存関係エラーでインストールに失敗。
この日はバッテリー残量がもう無かったのでシャットダウンして終了。
で、今日バッテリーの充電も終わったので作業再開。
どうやら22.04からdo-release-upgradeするとカーネルヘッダのパッケージのステータスが壊れるバグがあったらしく、改めてエラーのスクショを見ると、確かにカーネルヘッダの依存関係が壊れていたので、sudo apt update; sudo apt --fix-broken install
してからブートローダーを入れたら、無事にパッケージはインストールできた。
最後にsudo grub-install --efi-directory=/boot/efi
したところ、Input/Outputエラーが出たけど、もう1回実行したらインストールできた。sudo update-grub
でgrubの設定も終わって再起動したら、無事にブートした。
Wifiも動くみたいだしBluetoothも動くみたいだし音も出るしで、無事24.04.1にアップグレードとブートローダーの修復完了。
それはそうと、メモリ2GBしか無いPCに64bitOSは流石にもう限界じゃないかなぁ……Ubuntu24.04の推奨環境、メモリ4GBだし……