カラクリサイクル

『輝かしい青春』なんて失かった人の雑記

NixOS を使う上で気を付けたい三つのコト

とりあえず、今日はブログに取り立てて書く事がないので、 NixOS を使う上でのちょっとした小ネタを。


1. システムへのストレージの割り当ては多めに

NixOS は、システムの状態を宣言的に書くコトができ、かつ、そのシステムへの変更をも簡単にロールバックする事が出来る、 というのが最大の魅力であり、僕もそれが気に入っているが故に、今もなお NixOS を使っているのですが、NixOS はその魅力の代償、 と言うか要求リソースとして、システムのストレージが結構要求されます。

それで、僕は今のマシン (Dell XPS 9560) の内部ストレージ (SSD・512GB) の容量の割り当ては、

  • /boot - 256MB
  • swap - 32GB
  • / - 64GB
  • /data - 残り全部

という感じになっているんですが、正直言って、 NixOS を使うのに、 / への割り当て(正確には /nix/store で使える容量) が 64GB しかないのは、結構心許無い感じです。

と言うのも、僕は良く nixpkgs に無いパッケージのパッケージ定義については、自前でなんとかしているのですが、 その作業の過程で、結構コンパイルし損ねたパッケージの残骸とか、あるいは、 パッケージのコンパイルに失敗した理由を探るために残した一時ファイルなどで、 割と直ぐに Disk Full になってしまうので、 64GB の割り当ては、ちょっと失敗だったかなーと考えています。

2. boot.cleanTmpDirtrue にしておく

これも上記の (1) と関連するのですが、/tmp を boot 毎に揮発させる様なファイルシステムを使っていない限り、 /tmp に結構、自作 nixpkgs のビルドした失敗の残骸とかが残り続けるので、 boot.cleanTmpDirtrue にしておくのがベターなんじゃないかな、と思っています。

というか、僕は先日までこの設定をしていなかった影響で、なんかシステムに割り当てた 64GB の内、 半分近くを /tmp が喰っていて、このフラグを有効にしてシステムを reboot したら、 ディスク使用量が半分になったでござる、という怖い話が有りました。

とは言え、/tmp を RAM disk に載せてしまえば不要な気もするので、その辺り、僕の設定がアレなだけかもしれませんが。

3. NixOS であろうとも、バグ等でシステムが壊れる事もある

基本、 NixOS はシステムの設定ファイル等でをミスしていても、 bootさせる事さえ出来れば、 システムのロールバックで失敗した設定のリカバリーとかが出来るのですが、極まれに、 NixOS (と言うか nixpkgs 側の処理) の側でのバグ等で、システムが壊れることが有ります。

そのため、万が一 NixOS が boot しなくなった、とか、あるいは、 boot はするけどログイン出来ない (現実に僕がなった) と言う場合に備えて、

  • NixOS の Bootable Live System (USB や CD/DVD 等)

は作っておいた方が、安心出来るかと思います。はい。

以上

とりあえず、今日は以上です。

なんか、割とサクと書けるかと思いきや、分量を結構書いてしまった……