木炭価が高いブログ

めっちゃ木炭(`・ω・´)

GentooInstallBattle した(`・ω・´)

Gentoo LinuxVirtualBox 上にインストールした

来年から研究室でなんのOSを使おうかな〜〜と考えたときに,Linux にしようかと思いました。せっかくならキワモノを使いたいということで,練習のために VMGentoo をインストールしました(`・ω・´)

f:id:highmoctane:20200316012057p:plain

じゃじゃーん(`・ω・´)

構成

  • Grub
  • Dm-crypt を用いて root を暗号化
  • Genkernel
  • Systemd
  • i3wm

覚えたこと・詰まったこと

Arch Linux のインストールとそんなに変わらなかった

Arch Linux をインストールすることには慣れていましたが,手順はだいたいいっしょだなあということを確認できました。違いは GCC のパラメータを設定することくらいです。とくに今回は OpenRC ではなく Systemd を使ったため,本当に違いを感じませんでした。OpenRC と Systemd のどちらを使うかまだ決めていませんが,おそらく Systemd を使うことになるでしょう。時代の流れだもんね……(`・ω・´)

Grubカーネルパラメータを渡せない

Dm-crypt で root を暗号化する際には,カーネルパラメータで root が暗号化されていることを教えなければなりません。具体的には,

cryptdevice=/dev/sdaX:cryptroot root=/dev/mapper/cryptroot

を渡します。

しかしこれが何故かうまくいきません。

原因はおそらく grub のインストール方法にあると思います。今回のインストールでは --removable フラグを与えて,

# grub-install --target=x86_64-efi --efi-directory=/boot --removable

としてインストールしました。うろ覚えですが VirtualBoxEFI boot するとき,ブートローダーのパスは/EFI/BOOT/bootx64.efi しか受け付けてくれなかったはずです。Grub の設定は従来どおりに

# grub-mkconfig -o /boot/grub/grub.cfg

としてしまったため,どうやら grub.cfg を読みに行かなかったようです。いま書いていて気づいた……。

いままで systemd-boot ばかりつかっていたので grub よくわからん…….。あとで man 読みます……。

とはいえブートに失敗しても grub の rescue shell が起動します。Shell に入って

# cryptsetup open /dev/sdaX cryptroot

とすることでブートできるので,多少めんどいだけでどうにかなります(`・ω・´)

<追記>

今回カーネルにパラメータを渡せなかったのは genkernel を使っていたからでした。

Genkernel の man ページを見ると initramfs を使った場合のブートの仕方が書いてありました。

なるほど感(`・ω・´)

カーネルのビルド

今回はカーネルの設定までやっていたら日が暮れてしまうので,genkernel でカーネルビルドすることにしました。Dm-crypt で root を暗号化している都合上 initramfs も作成しなければならなく,genkernel にまかせてしまえば一石二鳥です。やったね!

Genkernel を実行する際には --luks オプションを渡し忘れないようにしましょう。

本番では自力でカーネルビルドしてみようかな〜〜と思っています。でもアップデートがめんどくさそうですね。みなさんどうしてるんだろ(`・ω・´)

Systemd

Gentoowiki は OpenRC をデフォルトとして扱っているので,systemd を使う際は気をつけないといけないなと思いました。一方 Arch Linux は systemd を使っているため,情報が豊富です。インストールの際は Gentoowiki と Arch の wiki を交互に見るようになりますね(`・ω・´)

i3wm

流石に CUI で研究生活を送るわけには行かないので i3wm を導入することにしました。Gnome いれるの Gentoo ではきつそう……。Gentoo では Arch と違って dmenu や i3bar がついて来ません。せっかくなので polybar をインストールしてみました(`・ω・´)

dmenu がセグフォで落ちる

dmenu に文字を打ち込もうと思うと突然 dmenu が消えます。なんで?? と思ってログを見ていると,どうやらセグフォで落ちてしまうようです。困った。 ということでググったら情報が出てきました。

bbs.archlinux.org

どうやら locale が変わったところだと落ちるようです。なんで??

仕方がないので dmenu が実行されるときだけ locale を変更します。今回は i3wm を使っているので,~/.config/i3/configdmenu のところを

exec LC_ALL=en_US.UTF-8 dmenu_run

にします。これで動いて一安心です(`・ω・´)

USE フラグの立て忘れに注意

ターミナルエミュレータをなんか入れないといけないので,とりあえず urxvt をインストールしました。いざ開いてみると文字化けします。困った。

原因がわからずに 1 時間くらい溶かしました。

そこで,$ equery u rxvt-unicode で USE フラグを確認すると,xft のフラグを立て忘れていました。どうりでフォントがおかしくなるわけだ……。フラグを立て直してビルドし直したら無事にフォントがきれいに表示されました。めでたしめでたし(`・ω・´)

emerge --oneshot が便利

Gentoo をインストールした記念に neofetch のスクショを撮るのが恒例だそうです。でも neofetch のスクショとったらもう neofetch 使わなくないですか……?

そんなときは --oneshot をつけるのが便利です! --oneshot をつけると neofetch がインストールされたことが world に記録されないため,次回の emerge --depclean できれいに消えます。Gentoo を使う人はきっと潔癖なので,こういうオプションが生まれたのでしょう(`・ω・´)

Arch よりは安定してそう

Arch よりも Gentoo のほうがカーネルのバージョンが古いです。なんとなくカーネルパニックになりにくそうな気がしています。気のせいかな? まあ lts を使えという話ではあると思います(`・ω・´)

感想

一通りやってみて,意外とやっていけるのではないかという気がしてきました(`・ω・´)

© 2015 high-moctane