Automatisches / permanentes Mounten externer Geräte unter NixOS

12

Ich habe einen USB-Stick und eine NTFS-Festplattenpartition, die ich in NixOS verwenden möchte. In einer anderen Distribution würde ich es mit ntfs-3g in / mnt mounten. Unter NixOS existiert das Verzeichnis jedoch nicht. Ich nehme an, NixOS hat eine andere kanonische Methode und / oder einen anderen Ort dafür.

Wie sollte man in NixOS das automatische Einbinden externer Partitionen einrichten, vorzugsweise mithilfe von configuration.nix?

stefkin
quelle
Öffnen Sie, nautiluswenn Sie services.xserver.desktopManager.gnome3.enable = true;in Ihrem configuration.nixund Sie das Laufwerk und es wird erhalten montiert sehen/run/media/$USER/<drive name>
Boris

Antworten:

12

Nun, ich benutze bashmountoder udisksctlmontiere normalerweise USB-Sticks. Sie werden montiert /run/media/$(user name)/$(drive label or UUID).

Wenn es sich jedoch um eine interne Festplatte oder Partition auf einer lokalen Festplatte handelt, ist der einfachste Weg:

  1. Erstellen Sie ein Verzeichnis Ihrer Wahl als / mnt / windows-partition
  2. Hängen Sie die gewünschte Partition, z. B. / dev / sdn5, in dieses Verzeichnis ein:

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

  1. Führen Sie nixos-generate-config aus . Es wird /etc/nixos/hardware-configuration.nix entsprechend der neuen Partitionskonfiguration aktualisiert (und configuration.nix bleibt unberührt, sofern Sie nicht die Option --force verwenden ).
  2. Und schließlich ein nixos-rebuild switch!
Anderson Torres
quelle
1
Wenn Sie also ein /mntVerzeichnis weglassen, lautet die Antwort scheinbar "Machen Sie es sich selbst oder mounten Sie es, wo immer Sie möchten".
Ryne Everett
Was ist der Zweck von Schritt 3? Macht das die Montierung dauerhaft?
Chris Stryczynski
Ja! Dieser Schritt besteht darin, / mnt / windows-partition in der (maschinengenerierten) Datei hardware-configuration.nix zu registrieren. Auf diese Weise wird es beim nächsten Start gemountet (natürlich nach einem Nixos-Rebuild).
Anderson Torres
8

Ich persönlich benutze dazu Udisks . Das heißt, wenn ich einen USB-Stick mounten möchte, muss ich ihn nur anschließen und ausführen:

$ udisksctl mount -b /dev/sdc

Ich aliased udisksctl mount -bzu udmihm noch kürzer zu machen. Das Gerät ist dann /run/media/$USER/$DEVICE_LABELfür Sie montiert und zugänglich.

Ich denke, einige Tools (zB Nautilus und LDM ) können das automatisch für Sie tun.

EDIT : ah, ich habe gerade herausgefunden, dass udisks auch Geräte automount können.

toogley
quelle