Skip to content

Repository files navigation

nix-config

exp用のNixOS / Home Manager設定リポジトリ. 過去に認証設定を壊したままnixos-rebuild switchを実行してログイン不能になったため, このREADMEには最小限の安全ルールだけを残す.

最重要

  • bookmarkとremote branchはmainだけを使う.
  • users / security / pam / systemdまわりは, 影響を説明できる場合だけ変更する.
  • 次の設定は原則変更禁止.
    • systemd.sysusers.enable = false
    • services.userborn.enable = false
    • users.mutableUsersfalseにする変更

rebuild手順

  1. jj diffで変更を確認する.
  2. 戻せるchangeを作る.
  3. nixos-rebuild build --flake .#nixosで先にビルドだけを通す.
  4. 問題がなければsudo -n nixos-rebuild switch --flake .#nixosを実行する.
  5. switch直後に別TTYまたはSSHでログイン確認する. 失敗したらnixos-rebuild switch --rollbackを実行する.

現行の注意点

  • SDDMのWayland sessionはplain hyprland.desktopだけを使う.
  • 廃止済みfetch-journal / journal-fetch / journal-push user unitはHome Manager activationで消す.
  • Mozcユーザ辞書はhome/desktop/fcitx5.nixhome/desktop/mozc-user-dictionary.nixで宣言管理する.
  • Neovimはlualinecatppuccin-nvimを使い, wrap / linebreak / breakindentを有効にする.
  • カーソルテーマはBibata-Modern-IceとBibata-Modern-Classicをカーソル直下の輝度で自動切替する.
  • yazi-forkはprivateなローカルflake inputである. ライブ復旧ではHDD内の/home/exp/projects/yazi_fork--override-inputで使う.

SSDトラブル時の既定方針

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を参照する.

通常の設定事故からの復旧

  1. 前のgenerationで起動する.
  2. それでも入れなければboot menuからsystemd.unit=rescue.targetを付けてrescueへ入る.
  3. passwd expで復旧し, 設定を直してからnixos-rebuild switch --flake .#nixosをやり直す.

外付けHDDのinitrdをライブUSBから再生成

公式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へ結果を投稿する.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages