T100-TAのLubuntuをアップデートしたときの大騒ぎ

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だし……

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です