vbox两步解决VirtualBox共享文件夹在Windows下的符号链接创建问题

news2024/11/19 15:18:32

默认情况下,VirtualBox 的共享文件夹特性在 Windows 下工作是有问题的,如果你运行一些需要符号连接(Symlink)的程序,比如默认设置的 yarn 或者 npm,由于 npm 包在安装之后会在 ./node_modules/.bin 创建在 package.json 中定义好的应用入口的符号连接,它会在最后一步报错。这是一个困扰了非常久的问题,我因此在这几年也一直在用 vmdk(虚拟磁盘)挂载到虚拟机上来存数据,但这样是一种非常不安全的使用方式,因为 vmdk 备份起来太难受了,粒度太大没法增量,硬盘一旦出问题很容易整个虚拟磁盘 GG,今天无意中想到了一个关键的 Windows 的权限问题(下面会说),这个问题才得以解决。

下面来讲一下如何解决这个问题。

对相应虚拟机实例启用符号链接特性

如果想正常使用符号链接,需要对虚拟机设置 VBoxInternal2/SharedFoldersEnableSymlinksCreate/<share_folder_name> 这个 extradata,这里顺带一提,对于 vagrant,这个选项只要你运行 vagrant up之后这个选项便是自动设置好的。设置这个 extradata 可以使用 VboxManage,这个工具在 Windows 下是和 VirtualBox 图形界面在一个相同目录的,可以使用 Powershell cd 到这个目录,然后运行

.\VBoxManage.exe setextradata "[虚拟机名]" VBoxInternal2/SharedFoldersEnableSymlinksCreate/共享文件夹名称 1

注意这个共享文件夹名称是你在 VirtualBox 中设置共享时对应的“共享文件夹名称”一栏的内容,不是相应文件夹的路径或者文件夹名称。

配置 Windows 权限,允许非 Administrator 用户创建符号连接

到这里基本很多教程都结束了。但也可能很多人发现这么做之后创建符号连接依然是无法使用的状态,会报错

ln: failed to create symbolic link "name": Protocol error

这是因为 Windows 的默认配置,非 Administrator 用户是没有创建符号连接权限的(至少在我的 Win10 20h2 上是这样,不太清楚其他版本是怎么设计的)

解决这个问题有两种办法

  1. VBoxHeadless 等相关实际承载虚拟机实例的进程用 Administrator 用户运行。
  2. 配置本地安全策略,允许其他用户创建符号连接

至于第一种方法,我不太了解 Windows 的一些权限与进程模型设计,我尝试直接管理员运行 VirtualBox GUI 发现似乎并没有生效,并且看对应进程也没在相应用户下。

于是我使用了第二种方法即去改本地安全策略。方法如下

  1. 运行secpol.msc打开本地安全策略
  2. 依次进入本地策略->用户权限分配,选择创建符号连接
  3. 添加你当前的用户,保存退出,注销当前用户重新登陆

所以说就很奇怪啊!为什么 Windows 默认连符号连接的权限都不给低权帐户啊!

我按照这样测试之后尝试创建符号连接已经没有任何问题了。

附上我目前的软件版本

  • Win10 20h2
  • VirtualBox 7

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1610082.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

B008-方法参数传递可变参数工具类

目录 方法参数传递可变参数冒泡排序Arrays工具类Arrays工具类常用方法 方法参数传递 /*** java中只有值传递* 基本数据类型 传递的是具体的值* 引用数据类型 传递的是地址值*/ public class _01_ParamPass {public static void main(String[] args) {// 调用方法 getSumge…

InFusion:通过从扩散先验学习深度补全来进行图像 3D 高斯修复

InFusion 以其图像条件模型超越了当前的方法&#xff0c;提供精确的深度修复并支持纹理定制和对象插入等高级应用程序。 github项目页面&#xff1a; Infusion Github 仓库&#xff1a;GitHub - ali-vilab/Infusion: Official implementations for paper: InFusion: Inpainti…

婚恋相亲软件优缺点揭秘:世纪佳缘、青藤之恋、二狗、伊对

曾经我也是个大龄单身狗&#xff0c;把市面上主流的相亲软件都装了一个遍&#xff0c;也充了不少会员&#xff0c;踩了不少坑&#xff0c;现把各个婚恋软件的优缺点梳理给大家。 二狗&#xff1a;原腾讯产品经理做的&#xff0c;号称高学历平台&#xff0c;用户质量堪称人类天花…

pycharm-git 配置(1)

1.安装git2.pycharm 中配置git 插件 弹出Git版本号&#xff0c;即配置成功。3.创建本地仓库 VCS->VCS operations->create repository->设置本地目录 左下角可以看到git本地仓库git可以看到push,commit。 4.配置远方仓库&#xff0c;此时确保git上是有这个项目…

Excel中将单元格格式改成文本后,为何要双击数字才会改变?

将大批量的数值型数字转换成文本型数字&#xff0c;当然不能一个一个的去双击做转换了。以下说说有哪个可以将数值型数字转换成文本型数字的方法。 一、转换方法 方法1.数据分列功能 选中数据后&#xff0c;点击数据选项卡&#xff0c;分列&#xff0c; 分列向导的第一步和…

上位机图像处理和嵌入式模块部署(智能硬件的介绍)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 目前&#xff0c;用上位机软件虽然可以部署项目&#xff0c;但是它本身有自己的缺点&#xff0c;那就是稳定性差、价格贵。稳定性这部分&#xff0…

jsoup接收429,404错误用来接收json格式

1.代码用例 try { // 拿到当前剩余余下的钱Document doc Jsoup.connect(url).header("Authorization", "Bearer " apiKey).header("Content-Type", "application/json").header("Connection", "keep-aliv…

Linux - tar (tape archive)

tar 的全称是 Tape Archive。它最初是在 Unix 系统中用于将数据写入磁带的工具&#xff0c;但现在它通常用于创建、维护、修改和提取文件的归档文件。尽管 tar 可以用于压缩和解压缩文件&#xff0c;但它本身并不进行压缩&#xff0c;而是通常与 gzip 或 bzip2 等压缩工具一起使…

【提示学习论文】BlackVIP: Black-Box Visual Prompting for Robust Transfer Learning论文原理

BlackVIP: Black-Box Visual Prompting for Robust Transfer Learning BlackVIP:稳健迁移学习的黑盒视觉提示 问题 黑盒白盒&#xff1f; 黑盒和白盒的概念与对预训练模型内部参数的了解程度相关。黑盒指的是对预训练模型的参数和结构缺乏详细了解&#xff0c;通常只能通过使…

详解数据结构:栈

一、顺序栈 顺序栈的存储方式如下&#xff1a; 从图中可以看出&#xff0c;顺序栈需要两个指针&#xff0c;base指向栈底&#xff0c;top指向栈顶。 typedef struct SqStack {ElemType *base; //栈底指针ElemType *top; //栈顶指针}SqStack; 说明&#xff1a; ElemType是元…

Meta:OpenAI不open?那我来?

Meta的Llama 3&#xff1a;开启开源AI新纪元&#xff0c;4000亿参数的科技奇迹 在人工智能的璀璨星河中&#xff0c;Meta公司以其最新的开源大模型Llama 3&#xff0c;再次引领科技潮流&#xff0c;为开源社区带来前所未有的活力与创新。这不仅是技术的一次飞跃&#xff0c;更…

岩石变角剪切试验夹具 技术参数

岩石变角试验夹具是根据TB10115-2014铁路工程岩石试验规程等标准利用压力机施加垂直荷载,通过一套特制的夹具使试件沿某一剪切面产生剪切破坏,然后通过静力平衡条件解析剪切面上的法向压应力和剪应力,从而绘制法向压应力&#xff08;σ&#xff09;与剪应力&#xff08;τ&…

Linux文件的特殊权限(SUID|SGID|SBIT)

一、SUID 介绍&#xff1a;SUID是一种对二进制程序进行设置的特殊权限&#xff0c;能够让二进制程序的执行者临时拥有所有者的权限&#xff08;仅对拥有执行权限的二进制程序有效&#xff09;。 &#xff08;一&#xff09;语法格式 chmod us 文件名&#xff08;设置SUID权限…

VsCode配置SSH连接远程服务器(手把手,学不会打我)

闲言少叙&#xff0c;直接上步骤。 1.打开VsCode安装插件 安装完成后可以看到左边多了一个图标Remote Explorer&#xff0c;如下图所示 2.添加服务器连接配置 点击该选项卡会进入SSH TARGETS的添加&#xff0c;如下图&#xff1a; 在点击红框框住的加号&#xff0c;会让你输…

鸿蒙系列--第一个程序HelloWorld

一、下载安装 下载DevEco Studio&#xff08;https://developer.huawei.com/consumer/cn/deveco-studio/&#xff09;并安装 二、创建第一个鸿蒙应用 Next Compile SDK&#xff1a;鸿蒙SDK版本 Mode&#xff1a;ArkTS的声明式开发范式与类Web 开发范式&#xff0c;官方主推S…

vLLM-prefix浅析(System Prompt,大模型推理加速)

原文&#xff1a;vLLM-prefix浅析&#xff08;System Prompt&#xff0c;大模型推理加速&#xff09; 简介 本文浅析了在大模型推理加速方面一个非常优秀的项目 vLLM 的一个新特性 Prefix。在 Prompt 中有相同前缀时可以提高吞吐量降低延迟&#xff0c;换句话说可以省去这部分…

哈希函数、哈希表、布隆过滤器、一致性哈希

哈希函数 工程的哈希函数展示 哈希值根据余数分组的均匀性 哈希表原理 一致性哈希 虚拟节点技术

C++ 类对象

C是一种功能强大的编程语言&#xff0c;它拥有丰富的特性集合&#xff0c;使得我们可以编写出高效、可维护且性能卓越的代码。其高级概念包括运算符重载、静态成员、友元函数、匿名对象和嵌套类。这些概念在面向对象编程中扮演着至关重要的角色&#xff0c;它们提供了对对象行为…

Maxwell安装使用和简单案例

一、解压 cd /opt/software/ ​ tar -zxvf maxwell-1.29.2.tar.gz -C /opt/module/ ​ cd /opt/module/ 二、MySQL 环境准备 1、修改 mysql 的配置文件 修改 mysql 的配置文件&#xff0c;开启 MySQL Binlog 设置 vi /etc/my.cnf 添加以下内容 server_id1 log-binmysql-…

一篇文章带你掌握⽹络原理--HTTP/HTTPS(HTTP各个部分详解和HTTPS加密详解)

HTTP HTTP是什么? HTTP(全称为"超⽂本传输协议")是⼀种应⽤⾮常⼴泛的应⽤层协议. HTTP诞⽣与1991年.⽬前已经发展为最主流使⽤的⼀种应⽤层协议. 最新的HTTP3版本也正在完善中,⽬前Google/Facebook等公司的产品已经⽀持了. HTTP往往是基于传输层的TCP协议实现的…