自動ログインの有効化
Omarchyで採用されている暗号化ファイルシステムLUKS(Linux Unified Key Setup)のアンロックのためのパスワード入力を自動化する手順です。
※ただし、この方法では暗号化解除のための認証鍵ファイルが暗号化されたファイルシステムがあるMac上に存在することになるため、安全な状態とはいえません。
LUKSをアンロックするための認証鍵ファイルを生成する
sudo dd if=/dev/random of=/root/luks.key bs=4096 count=1
生成したファイルのパーミッションを変更し認証鍵ファイルを他人が読めないようにする
sudo chmod 000 /root/luks.key
ブロックデバイスの一覧を表示
lsblk
表示された一覧から暗号化されたファイルシステム(crypt)が存在するデバイス、この例ではnvme0n1p2を掌握
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 1 0B 0 disk
zram0 252:0 0 31.4G 0 disk [SWAP]
nvme0n1 259:0 0 1.9T 0 disk
├─nvme0n1p1 259:1 0 2G 0 part /boot
└─nvme0n1p2 259:2 0 1.9T 0 part
└─root 253:0 0 1.9T 0 crypt /home
/var/log
/var/cache/pacman/pkg
/
LUKSに新たに生成した認証鍵ファイルを暗号化ファイルシステムの解除キーとして登録
sudo cryptsetup luksAddKey /dev/nvme0n1p2 /root/luks.key
[sudo] password for [ユーザー]ではsudo実行のために現在のユーザーのパスワード、Enter any existing passphrase:ではLUKSアンロックのためのパスワード(通常どおりOmarchy Macをインストールしたならばユーザーのパスワードと同一)を入力
[sudo] password for [ユーザー]:
Enter any existing passphrase:
blkidコマンドで対象のパーティションのUUIDを取得
sudo blkid -s UUID -o value /dev/nvme0n1p2
LUKSパーティションのUUID
7020f832-f927-4982-9d3d-9690e4b826ff
/etc/crypttabファイルを編集し、暗号化解除の設定を追加
sudo nvim /etc/crypttab
cryptroot UUID=[LUKSパーティションのUUID] /root/luks.key luks
mkinitcpioの設定ファイルを修正し、initramfsに生成した認証鍵ファイルが含まれるように指示
# FILES
# This setting is similar to BINARIES above, however, files are added
# as-is and are not parsed in any way. This is useful for config files.
FILES=(/root/luks.key)
ブートローダーlimine用の設定ファイル生成ルールを編集し、カーネル起動時のパラメーターにcryptkey=rootfs:/root/luks.keyを追加
TARGET_OS_NAME="Omarchy"
ESP_PATH="/boot"
KERNEL_CMDLINE[default]="cryptdevice=PARTUUID=7baf95aa-3fdb-47c4-877f-503179da38fd:root cryptkey=rootfs:/root/luks.key root=/dev/mapper/root zswap.enabled=0 rootflags=subvol=@ rw rootfstype=btrfs"
KERNEL_CMDLINE[default]+="quiet splash"
ENABLE_UKI=yes
CUSTOM_UKI_NAME="omarchy"
ENABLE_LIMINE_FALLBACK=yes
# Find and add other bootloaders
FIND_BOOTLOADERS=yes
BOOT_ORDER="*, *fallback, Snapshots"
MAX_SNAPSHOT_ENTRIES=5
SNAPSHOT_FORMAT_CHOICE=5
mkinitcpioコマンドで初期用initramfsを再生成
sudo mkinitcpio -P
念のためcatコマンドで/boot/limine.confの内容を確認
cat /boot/limine.conf
comment: machine-id=51d29aad698d4327a397e6bdee45f570 order-priority=50
//linux
### This kernel entry is auto-generated by limine-entry-tool
comment: Kernel version: 6.18.3-arch1-1
comment: kernel-id=linux
protocol: efi
path: boot():/EFI/Linux/omarchy_linux.efi#e901821cbef7b4e6cd8c930f78b7247acead2472b1705c71e46dffb7dc5448e93b8c7fe4ceb345eb799d9321234d99da27de862d5eb507bf0cf62c8d1273210
cmdline: quiet splash cryptdevice=PARTUUID=50f73da6-41c7-45a2-b924-4c570cb00064:root cryptkey=rootfs:/root/luks.key root=/dev/mapper/root zswap.enabled=0 rootflags=subvol=@ rw rootfstype=btrfs
cmdline: のパラメータにcryptkey=rootfs:/root/luks.keyが含まれていることを確認
再起動
reboot