ThinkPadX230を買ったのでManjaro Linuxをインストールしたらとんでもなく起動に時間がかかるので解決した話

はじめに

Think Pad X230を中古で買いました。22,800円。

メモリを増設して8GBにしておきました。低電力メモリで動くんだねこれ。

Windows10との別れ

Windows10がインストール済みでしたが、WindowsはSteam専用機で事足りているので、Linuxを入れました。

今回選んだのはManjaro Linuxです。


参考
メインページ (日本語) - Manjaro Linux

Think PadへのManjaro Linuxのインストール手順

1. Stable Releaseからxfce版の18.0.4のisoをダウンロード

Downloading File / - Manjaro Linux - OSDN

2. Image WriterでUSBにisoイメージを書き込み

3. Think PadのBIOSを開いてブートの優先度を変えておく。

BIOSThinkPadのロゴが出ている状態でF1
shiftキー押しながら^キーで起動優先度を上に移動できる。USBの優先度を最上位にする。

4. 起動したらインストール

自分はパーティション消してインストールしました。

5. 終わるまで待つ

6. 再起動

インストール完了したが・・・

起動が遅い

起動が遅い!(重要)

なぜか起動に2分近くかかる始末。これを解決した。

はじめにやったこと

原因を探るために、

systemd-analyze

で起動時間を見てみた。5秒。

そんなわけないだろ・・・

次にブート時のログを見るために、

dmesg

でログを表示した。

明らかに時間がかかっているログがあり、メッセージをみると”crng init done”とあった。

ググってみると乱数生成器が乱数生成しきるまで時間がかかっているらしいことがわかった(というかもしかしてタイムアウトまで待ってる?)

対策を調べてみるとrng-toolsとかhavegedで乱数生成を手伝わせるのがいいらしいことがわかった。
今回は色々とあって縁のあるrng-toolsをインストールした。
Rng-tools - ArchWiki

rng-toolsのインストールと有効化

1. pacmanのパッケージリストをアップデートする
インストールしたてほやほやなのでパッケージリストをアップデートしないと何もインストールできないので、

sudo pacman -Syy

してやる。

2. rng-toolsのインストール

sudo pacman -S rng-tools

でrng-toolsをインストールする。

3. 確認

rngd -f

これで乱数生成器が起動(どんどん/dev/randomにぶち込まれていく状態)

dd if=/dev/random of=/dev/null bs=1024 count=1 iflag=fullblock

これをrngd -fが起動していない状態でやるとバチクソ時間がかかる。rngd -fを起動すると一瞬で終了する。サラマンダーよりはやい

4. rng-toolsのサービスを有効化
あとは起動時にrngdが起動するように設定する。

systemctl enable —now rngd.service

でOK。確認は

systemctl status rngd.service

でenabledになっているかを見ればよい。

結果

Manjaro Linuxの起動が速くなった!

具体的には2分かかっていたところが14秒で終わるようになった。


ちなみにcrng initが動いている理由をよくわかってないままやったので、その辺は後々調べておこうと思う。