lvmcache と LUKS-on-LVM を使用した NixOS の設定

lvmcache と LUKS-on-LVM を使用した NixOS の設定

ノートパソコンに NixOS 19.09 をインストールしようとしています。ディスク構成は 30GB SSD と 700GB HDD です。SSD を HDD のキャッシュとして使用し、ルート パーティション全体を暗号化することにしました。

したがって、私のパーティション設定は次のようになります。

  • /dev/sda- SSD
    • /dev/sda1- ブートパーティション、UEFIブート可能フラグ、FATでフォーマット、暗号化されていない
    • /dev/sda2- キャッシュに使用される
  • /dev/sdb- パーティション化されていない HDD を LVM でメイン ディスクとして使用します

フォーマットしました/dev/sda1mkfs.fatを使用して、ボリュームグループvgを設定しました。/dev/sda2そして/dev/sdbそして、私は、lvmcache マニュアルページ単一のキャッシュボリュームを作成した後、0 ...、cryptsetupを実行してLUKS-on-LVMスキームを実現しました。キャッシュされた0 ...暗号化されているルクス2.
そしてロックを解除しました0 ...再びcryptsetupを使用してマッピングします/dev/マッパー/ルート私は乗った/分そこに作られた/mnt/ブートそしてマウント/dev/sda1その後、NixOSの設定を生成し、基本的にはデフォルトのままにして、注目すべき変更点として、dm キャッシュboot.initrd.カーネルモジュール、設定boot.initrd.luks.devices."root".preLVM間違いすると、nixos-install正常に実行され、再起動しました。

システムは GRUB を正常に実行しましたが、その後ルート ボリュームが見つかりませんでした。次のエラー メッセージが表示されました:

device-mapper: table: 254:3: cache: Error creating cache's policy  
device-mapper: reload ioctl on (254:3) failed: Invalid argument

全体の検出に問題があると推測しています0 ...ライブインストールUSBスティックから起動してみましたが、そこで有効にする必要がありますdm キャッシュmodprobeを使用して実行します

# lvchange -ay vg

取得するため0 ...活動的かつ目立つこと。

同様の設定を試した人はいますか? 自動的に起動するにはどうすればいいですか? それとも、設定に概念的な欠陥があり、機能しないのでしょうか?

追伸: 質問が十分に詳細であることを願います。ここで質問するのは初めてです。

答え1

今日はヘッドバンギングの後に仕事で得た私のコ​​ンフィデンスは次のとおりです。

boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "ehci_pci" "usb_storage" "usbhid" "sd_mod" "sr_mod" ];
  boot.initrd.kernelModules = [ "dm-cache" "dm-cache-smq" "dm-cache-mq" "dm-cache-cleaner" ];
  boot.kernelModules = [ "kvm-amd" "dm-cache" "dm-cache-smq" "dm-persistent-data" "dm-bio-prison" "dm-clone" "dm-crypt" "dm-writecache" "dm-mirror" "dm-snapshot"];

  boot.initrd.luks.devices = {
    "decrypted" = {
      device = "/dev/mapper/vg-crypt";
      allowDiscards = true;
      preLVM = false;
    };
  };

主なトリックは"dm-cache-smq"モジュールに組み込むことでした。それがなければ、あなたと同じエラー メッセージが表示されていました。

不足していることを示す醜い警告メッセージが表示されますcache_check。これを削除するには、次のコードも追加します。

services.lvm.boot.thin.enable = true;

関連情報