Debian を中古PCにインストールして使っていたが適当にapt update をしたところ can not open access to console the root account is locked
というエラーがでてデスクトップが起動しなくなってしまった。
色々調べてみたものの修復できそうになかったのでOSをクリーンインストールしてやり直すことにした。
過去のブログによると2019年9月にインストールしたDebianらしい。
もともと利用していた Debian を再インストールしても良かったが Arch Linux を使ってみることにした。 Arch Linux に興味があって試してみたかったのと会社の同僚に使用者が多いので何かあっても大丈夫だろうと思って決めた。
Arch Linux のインストールは大変という噂だし実際インストールガイドを調べると次のようなサイトがでてくる。コマンドを沢山入力してインストールするのが普通っぽい。
一回上記サイトの通りにコマンドを入力してインストールに挑戦してみたが何かを間違えてしまって上手くいかなかった。
2回目をやる元気はその時なかったので archinstall
コマンドを使った。
archinstall
コマンドはCUI版のインストーラーという感じ。キーボードレイアウトやネットワーク設定、利用するミラー先などを選ぶだけインストールが完了した。
めっちゃ楽。
インストールメディアの作成
インストールメディア作成はWindowsだったので Refus を使った。
ISOは最新の archlinux-2024.02.01-x86_64.iso
を利用した。
当初は、Refusの設定を変更せずにインストールメディアを作成してインストールを進めたが ERROR: 'UUID=2024-02-01-12-07-52-00' device did not show up after 30 seconds...
がでてしまった。
そのため、Arch Wikiに書かれていたように Refus のパーティション構成→ドロップダウンメニューから GPT を選択、START をクリックしたあとにモード選択のダイアログが表示されるので DD イメージモードを選択してインストールメディアを作成し直してインストールを進めた。
インストール設定
ファイルシステムなど
パーティションはより現代的なパーティションスタイルらしいGPT、ブートローダーは systemd-boot を採用した。 ファイルシステムは初回インストール時は適当にext4にしていたんだけれど、ファイルシステムを何にするか迷ってるとXに投稿したら btrfs をお薦めされたので採用した。
ファイルシステムをext4のままで行くかどうかも悩む。systemd-homedを使ってみたいからどうせインストールはし直す
— ねことまと🐈🍅🍲 (@tomato3713) 2024年2月25日
btrfs はCoW (Copy on Write) 方式が採用されていてストレージ効率が良さそうなのも印象が良かった。 なお雰囲気でbtrfsを利用しているので使い心地の良さはまだ理解できていない。 説明だけ読んでも理解しにくいので使いながら勉強する予定でいる。
デスクトップ周り
デスクトップはWayland上で動くGNOMEにした。日本語入力は、fcitxとmozc にした。
# Wayland なので X11 は不要、全てインストールを選択 pacman -S gnome systemctl enable gdm # フォントもインストール pacman -S noto-fonts not-fonts-cjk # wayland 用にクリップボードツールをインストール pacman -S wl-clipboard # Bluetooth を使うためにBlueZをインストールする pacman -S bluez bluez-utils # fcitx5 まわりのパッケージをインストール sudo pacman -S fcitx5 fcitx5-configtool fcix5-mozc fcitx5-qt # エディタがデフォルトだとインストールされてないので pacman -S vi sudoedit /etc/environment # /etc/environment に以下を追加 GTK_IM_MODULE=fcitx QT_IM_MODULE=fcitx XMODIFIERS=@im=fcitx # 「キーボード - 日本語」と「Mozc」を入力メソッドに設定する fcitx5-configtool
ユーザー管理
今まで /etc/passwd で管理するやり方しか知らなかったが、systemd-homed を知ったので使うことにした。
2020年はsystemd-homedの登場でLinuxのユーザー管理が大きく変わるぞ #Linux - Qiita の記事に詳しく書かれているのだけれど、homectl
コマンドや userdbctl
コマンドでユーザーやグループを管理できたり、ユーザーディレクトリを暗号化できたりと使い勝手が良さそうだった。
2020年には存在していたらしいので今まで気がついていなかったことが悔しい。
# systemd-homed を有効化 systemctl enable systemd-homed # 一般ユーザーを作成 homectl create tomato # wheel の行をコメントアウト解除 sudoedit /etc/sudoers # wheel グループに追加 homectl update tomato --member-of=users,wheel # ログインできるようにPAMの設定を追加 cp /usr/share/factory/etc/pam.d/system-auth /etc/pam.d/system-auth # このままだとGDMからログインするときにパスワードを2回求められてしまうので設定を編集する # pamedit みたいなツール経由で編集したほうが良いらしい # ざっくりとしか理解してないのでより適した設定があるかも # 1行目の `# auth sufficient pam_unix.so` をコメントアウト sudoedit /etc/pam.d/system-auth # 設定内容をチェック homectl inspect tomato
感想
Arch Linux のインストールは archinstall
を使うと他のOSとほぼ変わりなくインストールできて簡単じゃんとなった。
普段ターミナルでコマンドを実行してる人なら簡単にできると思う。
忘れてしまっていたLinux周りの知識を思い出したり systemd-boot や systemd-homedなどの知らなかった情報を知ることができたのも良かった。
Arch Linuxと関係ないところでは tomaot3713/dotfiles にある Neovim の設定ファイルに記述間違いを見つけて修正した。
別PCに設定を移植しやすいように書いていたつもりだったが、普段は設定済みのPCでしか利用していなかったので気がつけていなかった。
実際に試したことで問題に気がつけたのでインストールのついでにわかってお得だった。
本当なら dotfiles にも自動テストを書きたいと思っているが、調査しきれていないことと他のことを優先して時間が取れてないせいで実現できていない。
インストールしたArch Linux は趣味の開発用とかブラウジングに利用している。
ThinkPad X1 Carbon gen1 は発売が2012年で10年以上前の古いPCだがnext run dev
で簡単なWebアプリケーションを起動するとかプラグインが沢山はいったNeovimは快適に動作している。Dockerが軽快に動くかは試していないのでわからない。