我在我的虚拟机中安装了NixOS . 我想在我的NixOS中添加一个共享文件夹 . 我在我的虚拟机端设置了一个名为Code in Device-> SharedFolder-> Setting的共享文件夹 . 我试图插入Guest Addition图像 . 它说:
无法安装媒体/驱动器'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中(我已经读过某个地方,仅此一行就足以在nixos中安装Guest Addition . )
然后我将配置设置为:
...
fileSystems = [
{
mountPoint = "/";
label = "nixos";
}
];
...
fileSystems."/virtualboxshare" = {
fsType = "vboxsf";
device = "Code";
option = [ "rw" ];
};
nixos-rebuild switch
,它说:
错误:属性fileSystems . “/ virtualboxshare”at ...已在...定义...(fileSystems = ...)
那么如何将这两个表达式组合在一起并使我的shard文件夹在nixOS中可见?
1 回答
您正在构成nixos配置或模块的attrset中定义
fileSystems
两次 . 在第一个定义中,'s a list, whereas in the second, you'通过使用嵌套属性集速记符号将fileSystems
定义为attrset . 实际上,这个错误是由Nix语言而不是NixOS模块系统产生的 .通过使用与
/virtualboxshare
相同的表示法定义所有文件系统,可以解决此错误 .为了更好地感受嵌套的attrsets,使用
nix repl
可能会很有用:(注意使用
:p
评估所有内容而不仅仅是最外面的attrset)