Omarchy2.0を1から構築する方法(ISO版)

11 min read

はじめに

以前紹介したOmarchyですが、バージョン2.0がリリースされ、ISOから簡単にインストールできるようになりました。 今回はそのインストール方法を紹介します。

また、ISO採用に伴い、ディスク暗号化(LUKS)が必須要件となりました。 これにより再起動時に毎回物理コンソールへアクセス→パスワードによるロック解除を行う必要があります。 今回はClevisのTPMモードを使用し、物理ロックの自動解除方法も記載しております。

以前の記事

Legacyインストールをしたい方やVNCの有効化、日本語設定が必要な方は以下の記事を参照ください。 https://www.munenick.me/blog/omarchy

Omarchyとは

OmarchyはDHH(Ruby on Railsの作者)によって開発された、Arch Linux + Hyprland をベースにした“おまかせ(omakase)”リミックス環境で、開発に必要なアプリと設定を厳選・一体化したセットアップです。 ワンコマンドで構築することができます。

特徴

Arch Linuxベース
最新のパッケージが使えて、カスタマイズの自由度も高いArch Linuxがベースになっています。

Hyprland採用
Waylandネイティブのタイリングウィンドウマネージャーで、かっこいい画面が表示可能です。 image_1757138178885_c0973c9eb19746ed8616642ec3f970b0.png

Opinionatedな設計
「これが良い環境だ」という明確な意見を持って作られているので、全体的に統一感があります。細かいことを考えなくても、そのまま使える環境が手に入ります。

開発環境込み
Neovim(LazyVim設定済み)がデフォルトエディタとして入っています。面倒なNeoVimのセットアップをスキップできます。他にもLazygit、Lazydocker、Btopなどの便利なTUIツールが含まれています。

ISOのダウンロード

以下のサイトにアクセスし、「ISO」をクリックしてイメージファイルをダウンロードしてください。 https://omarchy.org/

image_1757136763966_46aa6730320640359314e757e3bb40ae.png

USBインストーラの用意(任意)

サーバやPCにインストールする場合はWindowsまたはMacOSからUSBインストーラを作成します。 RufusやbalenaEtcher等のツールを利用し、インストーラを作成してください。

公式手順:

https://wiki.archlinux.jp/index.php/USB_%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%83%A1%E3%83%87%E3%82%A3%E3%82%A2

インストーラを作成したらサーバやPCに接続し、そのインストーラで起動してください。 仮想マシンの場合は本手順はスキップしてください。 その代わりISOを仮想マシンにマウントしてください。

マウントが完了したらマシンを起動します。

「Arch Linux install medium」をクリックします。(放置で自動起動します。)

image_1756296683132_8c4f8492aaeb4187af19d3eeaf6eb224.png

image_1756296706493_82620663ec9e42358318e950c369dfd0.png

Omarchyのインストール

ユーザ名の設定

「User name」ではOSで使用するユーザ名を入力します。

image_1756296719913_499b271311cd4e58867240264e7610ab.png

パスワードの設定

「Password」ではディスク復号化、OSログイン、sudoで使用するパスワードを入力します。

image_1756296823667_f9f729ea1d73409488fe99d2fee569be.png

image_1756296835220_da4d6cdfd8ee43689fe48ba173521930.png

フルネームの設定(任意)

「Full name」ではフルネームを指定します。 Gitの認証時に利用されるようです。 入力は任意です。

image_1756296843918_e01f42311fd64feda4cfcea3e0b6fc39.png

メールアドレスの設定(任意)

「Email address」ではメールアドレスを指定します。 こちらもGitの認証時に利用されるようです。 入力は任意です。

image_1756296853005_7cb61f4fa9ed4da6b54d65509d7c6ca0.png

ホスト名の設定(任意)

「Hostname」ではOSのホストネームを指定します。 何も入力しない場合はデフォルトで「omarchy」となります。

image_1756296861647_08b7a19fafa1424eb2535fdd775f8365.png

タイムゾーンの設定

「Timezone」ではOSのタイムゾーンを指定します。 文字を入力と検索することができ、「Tokyo」と検索すると「Asia/Tokyo」が指定可能です。

image_1756296889748_179c725b4b1b4537bb51ac1e4aebb20f.png

image_1756296879826_91560193c19f4cd0acc33242fc5b5b03.png

キーボードレイアウトの設定

「Keyboard Layout」ではキーボードレイアウトを指定します。 カーソルで移動し、自身の使用しているキーボードレイアウトを指定してください。

image_1756296903898_77b3557e35a34dc39e2ad9dc997908b3.png

image_1756296915519_56f3e800a0c44dad852c888deb149ce1.png

確認

設定を確認し、問題なかったら「Yes」でインストールを開始します。

image_1756296921310_a12851ace5cf4ac58c2b9e238c5bf7dd.png

インストール先ディスクの指定

ディスク一覧が表示されます。OSをインストールするディスクを指定してください。

image_1756296929590_90881492a63b42838d7dc2c18650b6be.png

フォーマットの確認

フォーマットするかを確認されます。 フォーマットされるとデータは削除されます。

image_1756296941662_39b931c516ae42dea8fdf434407f43fe.png

インストール開始

インストールが始まります。 あとはOSが起動するまで待つだけです。

image_1756297048728_09d29418cb90486c80ad66ed30ef2511.png

ログイン

画像のような画面になったらOSがインストール完了です。 設定したパスワードでログインしましょう。

image_1756297532837_e150531081444778bedce4ee974e1620.png

image_1756297543733_7ad6fa033a8f4d739d47697217c96457.png

image_1756297580807_1b75c0e38e7b4ba3a3c1928324d6cb62.png

Clevisを利用したディスクの自動復号設定

データセンタ内のサーバなどにOmarchyを導入するようなケースがあると思います。(私がそうです。)

そのようなケースの場合、Omarchy再起動するたびにデータセンタに赴き、物理コンソールからディスクの暗号化解除をする必要があります。

到底そのようなワークロードには耐えることができないので、ディスクの自動復号の手順を紹介します。

方法としてはDropBearを導入し、initramfs内でSSHサーバを起動→SSH経由でリモート接続し、パスワードを入力する方法やClevis + Tangを利用し、特定ネットワークに接続したら自動でディスク復号などが考えられます。

今回はClevis + TPMを利用してTPMキーでディスクの自動復号を行います。 これは再起動後に自動でディスク復号が行われ、Omarchyが自動起動するようになります。

必要ツールのインストール

ClevisとTPMで必要なツールをインストールします。

# Install clevis and required tools
sudo pacman -S --needed clevis tpm2-tools tpm2-tss
yay -S --needed mkinitcpio-clevis-hook

対象ディスクの特定

以下のコマンドを入力し、ディスク一覧を表示します。 TYPEが「crypt」となっているディスクを探します。 以下の例では「sda2」が対象となります。

# Detect encrypted disk
lsblk

NAME     MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINTS
sda        8:0    0  127G  0 disk
├─sda1     8:1    0    2G  0 part  /boot
└─sda2     8:2    0  125G  0 part
  └─root 253:0    0  125G  0 crypt /var/cache/pacman/pkg
                                   /home
                                   /var/log
                                   /
sr0       11:0    1 1024M  0 rom
zram0    252:0    0  1.9G  0 disk  [SWAP]

TPM2をバインド

LUKSを有効にしたディスクにTPM2.0をバインドします。

# Bind LUKS with TPM2
sudo clevis luks bind -d /dev/sda2 tpm2 '{}'

sudo clevis luks list -d /dev/sda2
1: tpm2 '{"hash":"sha256","key":"ecc"}'

ClevisのHook設定

起動時にClevisを実行するように構成します。

# Add clevis hook
sudo sed -i -E '/^HOOKS=.*\bclevis\b/! s/^(HOOKS=\([^)]*)\bencrypt/\1 clevis encrypt/' /etc/mkinitcpio.conf.d/omarchy_hooks.conf

# Verify configuration
grep -E '^HOOKS=' /etc/mkinitcpio.conf.d/omarchy_hooks.conf
# ⇒ HOOKS=(... clevis encrypt ...)
HOOKS=(base udev plymouth keyboard autodetect microcode modconf kms keymap consolefont block  clevis encrypt filesystems fsck btrfs-overlayfs)

initramfsの再生成

initramfsを再生成します。

# Regenerate initramfs
sudo mkinitcpio -P

# Verify clevis modules are included
lsinitcpio -a /boot/initramfs-linux.img | grep -Ei '(clevis|tpm2|tss2|jose)'

再起動

再起動し、適用します。

# Reboot to apply changes
sudo shutdown -r now

再起動後にディスク解除のパスワード入力が求められなければ成功です。 image_1757138062207_900d296318a14354916dd9c3e0e096c2.png

余談

公式のディスカッションにも手順を記載しました。 https://github.com/basecamp/omarchy/discussions/1283

おわりに

今回はOmarchy2.0のインストール方法を紹介しました。 Omarchyを利用し始めてまだ2週間程度ですが、開発体験がとてもよく手放せそうにありません。

ぜひ皆さんも利用してみてください。