NixOSで外部デバイスを自動的にマウント/永続的にマウントする方法

NixOSで外部デバイスを自動的にマウント/永続的にマウントする方法

USBドライブとNTFSハードディスクパーティションがあり、それをNixOSで使用したいと思います。他のディストリビューションでは、ntfs-3ginを使用してインストールします/mnt。ただし、NixOSにはそのディレクトリは存在しません。 NixOSには、これを行うための標準的な方法や場所があります。

NixOSで外部パーティションの自動マウントを設定するにはどうすればよいですかconfiguration.nix

答え1

まあ、私は主にUSBスティックを使用またはbashmountインストールします。udisksctlにインストールされます/run/media/$(user name)/$(drive label or UUID)

ただし、内蔵ハードドライブまたはローカルハードドライブのパーティションについて話している場合は、最も簡単な方法は次のとおりです。

  1. /mnt/windows-partition など、目的のディレクトリを作成します。
  2. このディレクトリに必要なパーティションをマウントします(例:/dev/sdn5):

$mount /dev/sdn5 /mnt/windows-partition

  1. 走るnixos ビルドの構成。更新されます/etc/nixos/hardwareconfig.nix新しいパーティション構成と一致するように(そして構成.nix使用しない限り、変更されないままです。- 力オプション)。
  2. 最後の一つnixos-rebuild switch

答え2

個人的に使っています。ユティカそのような理由で。つまり、USBスティックをマウントするには、USBスティックを接続して実行するだけです。

$ udisksctl mount -b /dev/sdc

短くするudisksctl mount -bためにエイリアスを使用してください。udmこれにより、デバイスが取り付けられて/run/media/$USER/$DEVICE_LABEL使用できるようになります。

私の考えにいくつかのツール(例:ノーチラスそしてLDM)これを自動的に実行できます。

編集する:ああ、ちょうどudiskがデバイスを自動マウントすることができることがわかりました。

答え3

hardware-configuration.nixファイルを直接編集


他の回答で述べたのと同じ結果を得るには、次のfileSystems場所に他の設定項目を追加することもできますhardware-configuration.nix

{
  ...

  fileSystems."${mount_location}" = {
    device = "/dev/${device}";
    fsType = "${filesystem_extension}";
  };

  ...
}
メモ:

特定のパーティションのファイルシステム拡張情報を取得するには、次のようにします。

df -T | grep /dev/${device}

/dev/sda1ext4次の場所にインストールされるファイルシステム拡張を持つデバイスの設定例/mnt/sda1

{
  ...

  fileSystems."/mnt/sda1" = {
    device = "/dev/sda1";
    fsType = "ext4";
  };

  ...
}

nixos-generate-configソリューションのように、デバイス名はNixOS固有の名前空間によってオーバーライドされないため、これらのソリューションはよりユニークであると思います。

関連情報