ASUSのノートパソコンにubuntuを入れようとしたらものすごく大変だった。

ASUSの2022年発売モデルの11.6型ノートパソコン「E210KA」は性能は貧弱ではあるが、値段は安い。CPUはCeleronでメモリは4Gしか積んでいない。windows11を動かそうとするとなかなか大変だろう。なので、ubuntu用に購入したのだけれど、ubuntuのインストールが今までやった中で一番大変だった。Live USBを作成してubuntuをインストールしたことは何度かありますが、E210KA はかなりくせ者でした。。

ASUSのノートパソコンを使わない人にはまったく興味のない話だとは思うけれど、ハマった先人はいたようで、その方のブログ記事はとても参考になりました。助けられました。なので僕も残しておこうと思います。

以下の方々の記事を読ませてもらい後者のtohka383さんのやり方で、なんとかubuntuのインストールができました。

  • Ubuntu22.04をノートPCに入れようと試行錯誤した件 link
  • ASUSのノートにLinuxを入れようとして苦労した話 link

では、ハマったところを書いていきます。

ubuntuの Live USBを作成してインストールを進めていくと途中で「何かがおかしいです」となり、インストールが途中で止まります。以下が画面の写真です。

「mkfs.ext4: Input/Output error while writing out and closing file system」と出ていたことにより、先のブログの事象と同じであると判断して対応に入ります。ただブログ記事を見つけるまで、かなりの苦戦をしています。

まずは、インストールではなくUSBからのubuntu起動に切り替え、手打ちでコマンドを打ちます。


$ sudo modprobe -r sdhci_pci
$ sudo modprobe -r sdhci
$ sudo modprobe sdhci debug_quirks=0x20000
$ sudo modprobe sdhci_pci

これらのコマンドにより現在のセッションでCQEが無効化されるようです。ですので、この状態でubuntuをインストールします。毎回インストールの途中で止まってしまっていたのですが、おまじないが効いたかのようにインストールが進みます。

ノートパソコンへのインストールが終わったら、dfコマンドでファイルシステムの状態を確認しました。パーティション構成は以下のようです。作業はまだ続くので、再起動はまだです

/dev/mmcblk0p1 : /boot/efi
/dev/mmcblk0p2 : /

ここまでの作業ですが、このような感じです。

次に、マウントをするコマンドを打ちます。


$ sudo mount /dev/mmcblk0p2 /mnt
$ sudo mount /dev/mmcblk0p1 /mnt/boot/efi
$ sudo mount --rbind /dev /mnt/dev
$ sudo mount -t proc none /mnt/proc
$ sudo mount --rbind /sys /mnt/sys

コマンドを打つ度に以下のメッセージが表示されました。

mount: (hint) your fstab has been modified, but systemd still uses the old version; use ‘systemctl daemon-reload’ to reload.

このメッセージは /etc/fstab(ファイルシステムのマウント設定ファイル)が変更されたものの、systemdが古い設定を保持しているために表示されているためのようです。デーモンのリロードを実行しました。


$ sudo systemctl daemon-reload

ここまでの作業です。

そして chroot コマンドを実行します。このコマンドを打つとプロンプトが「$」から「#」に変わります。root権限での実行になります。

おそらくここが一番の要だと思うのですが、ASUSのノートパソコンでext4形式にフォーマットができない理由が「eMMCコントローラーのCQE実装のバグ」で、CQEを無効にする唯一のオプションが「options sdhci debug_quirks=0x20000」という設定らしいです。

ですので、この設定をコンフィグファイルに書き込みubuntuに読み込ませることで、CQEの間違い(バグの戻り値?)を無視して先に進むようにするようです。

root権限で以下のコマンドを打ちます。


$ sudo chroot /mnt
# echo "options sdhci debug_quirks=0x20000" > /etc/modprobe.d/sdhci-disable-cqe.conf
# update-initramfs -u -k all
# exit

ブログ記事にあった以下のコマンドですが、こちらはコマンドを打ち間違えました。。


# lsinitramfs /boot/initrd.img-6.11.0-17-generic | grep cqe

とりあえずCQEを無効にするオプションの書き込みはできたのでexitでchrootを抜けました。

マウントの解除をします。


$ sudo umount -l /mnt/sys
$ sudo umount /mnt/proc
$ sudo umount -l /mnt/dev
$ sudo umount /mnt/boot/efi
$ sudo umount /mnt

最後の2つは No such device となってしまいましたが、気にせず進みました。

ここまでの作業です。

ここまで出来たら Live USBを取り外して、システムを再起動します。

そうしたら・・・無事ubuntuが起動しました!

それにしてもASUSは、バグ持ちのコントローラーを基盤に載せたままでそのままにしておくなよなと思った次第です。windowsであれば問題がないから、こんなことを言う人はいないのでしょうけれど。

コメントを残す

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