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であれば問題がないから、こんなことを言う人はいないのでしょうけれど。

Lightsailを構成するAWSサービスを考えてみた。

Amazon Lightsail は一般的なVPSサーバー(Virtual Private Server)であると思うのですが、構成としてはいくつかのAWSサービスをパッケージ化して提供しているものなのだと思います。どんなサービスで構成されているのかを考えてみました。なお、推測で書いておりますので、その点はご容赦ください。

Lightsailの構成を図にしてみると、こうなると思います。

メインはEC2(Elastic Compute Cloud)とEBS(Elastic Block Store)です。仮想サーバーはEC2で、ストレージはEBSを使用します。AZはアベイラビリティゾーンの略ですが、Lightsailのインスタンスは1つのAZにのみ作成とのことなので、冗長化という点では弱いです。

また、インターネットとの通信もできるのでIGW(インターネットゲートウェイ)があります。

ネットワークですが、これはVPC(Virtual Private Cloud)での制御になります。VPC内のサブネットは1つだけで、そのサブネットにデフォルトルートがIGWとなったルートテーブルが関連付けされています。このルートテーブルはメインとは別のものではないかと思います。

上記の図ではIPアドレスの記載をはしなかったのですが、VPCは /16 で作成して、その中に /20 のサブネットを作成した場合、ネットワーク的にはこんな感じになります。/24 のサブネットのほうがわかりやすいのですが、僕が利用しているLightsailが /20 のようでしたのであわせました。。

プライベートIPアドレスの他にパブリックIPアドレス(グローバルIPアドレス)があるのですが、これはIGWが持つものなのかもしれません。このあたりは不明瞭です。裏の仕組みはわからないのですが、このパブリックIPアドレスをEC2インスタンスにアタッチするとインターネットとの通信が可能になります。

この他にLightsailではファイアーウォールの機能があるのですが、これはセキュリティグループの機能が使われています。

DNS管理ですが、Lightsailで提供されるDNSサーバーに名前解決を委任すれば(ISP側のDNSサーバーにNSレコードを登録する必要があります)サブドメインでの運用ができます。

スナップショットもLightsailでは利用できます。スナップショットはS3(Simple Storage Service)を利用して複数のAZの複数の施設にバックアップをするのですが、LightsailではAZは1つなので別のAZにバックアップを作成するのかは不明です。なおスナップショットは課金の対象(1GB/月あたり0.05 USDかかる)になります。

AWSのEC2は停止していれば料金はかからないのですが、Lightsailの場合は停止していても料金が発生するので注意しましょう。

データ転送の従量制の料金ですが、インバウンドとアウトバウンドの両方のデータ転送が無料のデータ転送枠にカウントされます。データ転送枠の上限を超えた場合、アウトバウンドデータ転送のみが超過分として課金対象になります。AWSではAZ間の転送も従量課金の対象ですが、LightsailではAZ間の転送が発生しないのでアウトバウンドのみが課金になります。