mirror of
https://github.com/moons-14/dotfiles.git
synced 2026-10-06 02:18:12 +09:00
3.7 KiB
3.7 KiB
NixOSインストール手順(SOPSなし・ディスク暗号化なし)
この手順は、SOPSによるシークレット管理とLUKSによるディスク暗号化を 使用しないホスト向けの、独立したインストール手順である。
SOPSとディスク暗号化を使用する場合は、暗号化ありの手順を参照。
事前準備
- ISOビルドを参照してISOを作成
- USBに書き込んで対象マシンでブート
ネットワーク接続
有線LAN
DHCPで自動設定される。
Wi-Fi(有線が使えない場合)
nmcli device wifi connect <SSID> --ask
SSH接続
コンソールに表示されたIPアドレスに接続:
ssh root@<ip-address>
インストール手順
1. dotfilesのクローン
git clone [email protected]:moons-14/dotfiles.git ~/dotfiles
cd ~/dotfiles
2. ホスト設定の作成
hosts/<hostname>/nixos.nixを作成し、hosts/default.nixにホストと使用する
プロファイルを登録する。ホスト固有の設定だけをホストディレクトリに置き、
再利用可能な設定は適切なunitまたはprofileに置く。
3. インストール先ディスクの確認
lsblk -o NAME,PATH,SIZE,MODEL,SERIAL,TYPE,FSTYPE,MOUNTPOINTS
ls -l /dev/disk/by-id/
以降の操作では指定したディスクの既存データが消去される。対象を必ず確認し、
可能であれば/dev/sdaや/dev/nvme0n1ではなく、安定した
/dev/disk/by-id/...パスを使用する。
4. Disko設定の作成
hosts/<hostname>/disko.nixを作成する:
_:
{
disko.enableConfig = true;
disko.devices.disk.main = {
type = "disk";
device = "/dev/disk/by-id/<target-disk>";
content = {
type = "gpt";
partitions = {
ESP = {
size = "512M";
type = "EF00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
};
};
root = {
size = "100%";
content = {
type = "filesystem";
format = "ext4";
mountpoint = "/";
};
};
};
};
};
}
<target-disk>を手順3で確認した実際のディスクIDに置き換える。指定した
ディスクの既存データは消去される。
5. パーティション作成とマウント
disko --mode destroy,format,mount hosts/<hostname>/disko.nix
Diskoの実行結果を確認する:
findmnt /mnt
findmnt /mnt/boot
6. ハードウェア設定の生成
nixos-generate-config --no-filesystems --root /mnt --show-hardware-config \
> ~/dotfiles/hosts/<hostname>/hardware-configuration.nix
7. ホストモジュールから設定を読み込む
hosts/<hostname>/nixos.nixで、生成したハードウェア設定とDisko設定を読み込む:
{
imports = [
./hardware-configuration.nix
./disko.nix
];
}
8. NixOSインストール
nixos-install --flake ~/dotfiles#<hostname>
SOPSを使用しないため、age鍵の登録、シークレットの再暗号化、SSHホストキーの 事前生成とコピーは不要である。OpenSSHを有効にしたホストでは、SSHホストキーは 通常の初回起動時に生成される。
9. 再起動
reboot
インストール後の確認
- 正しいディスクから起動できるか
/と/bootが意図したファイルシステムからマウントされているか- ネットワークと、設定している場合はSSH接続が利用できるか