exp用のNixOS / Home Manager設定リポジトリ. 過去に認証設定を壊したままnixos-rebuild switchを実行してログイン不能になったため, このREADMEには最小限の安全ルールだけを残す.
- bookmarkとremote branchは
mainだけを使う. users/security/pam/systemdまわりは, 影響を説明できる場合だけ変更する.- 次の設定は原則変更禁止.
systemd.sysusers.enable = falseservices.userborn.enable = falseusers.mutableUsersをfalseにする変更
jj diffで変更を確認する.- 戻せるchangeを作る.
nixos-rebuild build --flake .#nixosで先にビルドだけを通す.- 問題がなければ
sudo -n nixos-rebuild switch --flake .#nixosを実行する. - switch直後に別TTYまたはSSHでログイン確認する. 失敗したら
nixos-rebuild switch --rollbackを実行する.
- SDDMのWayland sessionはplain
hyprland.desktopだけを使う. - 廃止済み
fetch-journal/journal-fetch/journal-pushuser unitはHome Manager activationで消す. - Mozcユーザ辞書は
home/desktop/fcitx5.nixとhome/desktop/mozc-user-dictionary.nixで宣言管理する. - Neovimは
lualineにcatppuccin-nvimを使い,wrap/linebreak/breakindentを有効にする. - カーソルテーマはBibata-Modern-IceとBibata-Modern-Classicをカーソル直下の輝度で自動切替する.
yazi-forkはprivateなローカルflake inputである. ライブ復旧ではHDD内の/home/exp/projects/yazi_forkを--override-inputで使う.
SSDを直ちに初期化しない. BUFFALO外付けHDDのexternal-hdd-backup specialisationから起動し, HDDを一時的な通常環境として使う.
外付けHDD起動時だけ, 次の復旧設定が有効になる.
- ホスト名を
nixos-recoveryにする. - 有線LANへ
192.168.137.2/24を追加する. - GitHubアカウント
expgolemcloneの公開SSH鍵を取得する. expへの公開鍵SSHだけを許可する.- password, keyboard-interactive, root SSH loginを禁止する.
- firewallでTCP 22だけを許可する.
recovery-status,recovery-ssd-diagnose,recovery-restore-ssdを提供する.
VAIO側の操作と人間が行う最小手順はdocs/remote-recovery.mdを参照する.
- 前のgenerationで起動する.
- それでも入れなければboot menuから
systemd.unit=rescue.targetを付けてrescueへ入る. passwd expで復旧し, 設定を直してからnixos-rebuild switch --flake .#nixosをやり直す.
公式NixOSインストーラをUEFIモードで起動し, ネットワーク接続後に次の1行を実行する.
curl -fsSL https://raw.githubusercontent.com/expgolemclone/nix-config/main/bootstrap-live-recovery | sudo bash以降はVAIOからnixos@192.168.137.2へSSH接続し, 次を実行する.
curl -fsSL https://raw.githubusercontent.com/expgolemclone/nix-config/main/recover-external-hdd | sudo bashスクリプトはHDDのUUID, LABEL, filesystem, partition pairingを検証し, rootとESPをread-onlyに保ったまま固定revisionを解決する. rootだけを書き込み可能にしてシステムをbuildし, external-HDD specialisation, fstab, initrd modulesを確認した後にだけESPを書き込み可能にする. format, repartition, fsckは実行しない.
GitHubへのreportは既定で無効であり, 復旧の必須条件ではない. 明示的にRECOVERY_REPORT_MODE=githubを設定した場合だけ, 保存済みgh認証を使ってissueへ結果を投稿する.