Объедините два выражения nix в «Добавить общую папку в гостевой виртуальный ящик NixOS» - PullRequest
0 голосов
/ 02 мая 2018

Я установил NixOS в моей виртуальной коробке. Я хотел бы добавить общую папку в моем NixOS. Я установил общую папку с именем Код в Device-> SharedFolder-> Setting на моей стороне виртуальной коробки. Я попытался вставить изображение гостевого дополнения. Это говорит:

Не удалось смонтировать носитель / диск 'C: \ Program Files \ Oracle \ VirtualBox \ VBoxGuestAdditions.iso» (VERR_PDM_MEDIA_LOCKED).

Я принудительно монтирую его в Device-> CDRom

ls -l /dev/cdrom и mount -t iso9660 -o ro /dev/cdrom /cdrom. Файлы гостевых дополнений можно увидеть в /cdrom

virtualization.virtualbox.guest.enable = true в /etc/nixos/configuration.nix (я где-то читал, что одной этой строки достаточно для установки Guest Addition в nixos.)

Затем я установил свою конфигурацию как:

...
fileSystems = [
  {
    mountPoint = "/";
    label = "nixos";
  }
];
...

fileSystems."/virtualboxshare" = {
  fsType = "vboxsf";
  device = "Code";
  option = [ "rw" ];
};

nixos-rebuild switch, там написано:

ошибка: атрибут fileSystems. "/ Virtualboxshare" в ... уже определен at ... (fileSystems = ...)

Так как я могу объединить эти два выражения вместе и сделать мою папку с осколками видимой в nixOS?

1 Ответ

0 голосов
/ 02 мая 2018

Вы определяете fileSystems дважды в attrset, который составляет вашу конфигурацию или модуль nixos. В первом определении это список, тогда как во втором вы определяете fileSystems как attrset, используя сокращенную запись набора вложенных атрибутов. Так что на самом деле эта ошибка создается языком Nix, а не модульной системой NixOS.

Эта ошибка может быть решена путем определения всех ваших файловых систем с той же нотацией, которую вы использовали для /virtualboxshare.


Чтобы лучше понять вложенные атрибуты, может быть полезно поиграть с nix repl:

$ nix repl
Welcome to Nix version 2.0. Type :? for help.

nix-repl> :p { a = {c = 2; }; a.b = 1; }
{ a = { b = 1; c = 2; }; }

(обратите внимание на использование :p для оценки всего, а не только для внешнего атрибута)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...