将两个nix表达式组合在“中”;在virtualbox guest NixOS中添加共享文件夹;
我已经在我的virtualbox中安装了一个NixOS。 我想在我的NixOS中添加一个共享文件夹。 我在virtualbox端的设备->共享文件夹->设置中设置了一个名为“代码”的共享文件夹。 我尝试插入来宾添加图像。它说: 无法装入媒体/驱动器“C:\程序” Files\Oracle\VirtualBox\vboxguestaditions.iso' (VERR_PDM_MEDIA_锁定) 我强制将其装入设备->光盘将两个nix表达式组合在“中”;在virtualbox guest NixOS中添加共享文件夹;,virtualbox,shared-directory,nixos,Virtualbox,Shared Directory,Nixos,我已经在我的virtualbox中安装了一个NixOS。 我想在我的NixOS中添加一个共享文件夹。 我在virtualbox端的设备->共享文件夹->设置中设置了一个名为“代码”的共享文件夹。 我尝试插入来宾添加图像。它说: 无法装入媒体/驱动器“C:\程序” Files\Oracle\VirtualBox\vboxguestaditions.iso' (VERR_PDM_MEDIA_锁定) 我强制将其装入设备->光盘 ls-l/dev/cdrom和mount-t iso9660-o ro/d
ls-l/dev/cdrom
和mount-t iso9660-o ro/dev/cdrom/cdrom
。
可以在/cdrom
/etc/nixos/configuration.nix中的virtualization.virtualbox.guest.enable=true
然后,我将配置设置为:
...
fileSystems = [
{
mountPoint = "/";
label = "nixos";
}
];
...
fileSystems."/virtualboxshare" = {
fsType = "vboxsf";
device = "Code";
option = [ "rw" ];
};
nixos重建开关
,上面写着:
错误:属性文件系统。“/virtualboxshare”位于。。。已经定义
在(文件系统=…)
那么,如何将这两个表达式组合在一起,使我的碎片文件夹在nixOS中可见呢?您在构成nixOS配置或模块的属性集中定义了两次文件系统。在第一个定义中,它是一个列表,而在第二个定义中,您使用嵌套的属性集速记法将
文件系统
定义为属性集。所以实际上,这个错误是由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
来评估一切,而不仅仅是最外层的属性集)还将/virtualboxshare
符号中的选项更改为选项
,根据。我还发现(nix repl
和其中的c=import{}
和c.config.fileSystems.“/virtualboxshare”
)至少在我的设置(virtualbox中的nix机器)中,systemd fs.automounter在选项=[“rw,noauto,x-systemd.automount”]
设置中不再有问题。