当前位置: 首页 > news >正文

win11下Multipass修改默认MULTIPASS_STORAGE位置后,持续报错waiting for daemon的问题

在学习juju时,Canonical 的教程推荐了自家的开源虚拟机软件 Multipass。据说基于 Windows 原生的 Hyper-V,优化很丝滑,且内置大部分 Ubuntu 版本。如此好用的东西肯定要尝尝咸淡。

当笔者兴致冲冲地下载好后,立刻发现问题:Windows 家庭版无法使用 Hyper-V,遂研究专业版升级。

系统升级了,Hyper-V 也开启,随便启动了一个测试虚拟机,又报错了。

退出一看,发现 C 盘已经爆红,原来坑爹的安装程序只能指定本体文件地址,镜像存放地址仍然默认在 C 盘的 ProgramData 中。又研究修改默认存放地址,没想到又踩了很多坑。

先说最简洁的方案:

1. 下载 .msi 安装程序(先不要执行程序!)

2. 修改环境变量,以管理员身份运行 PowerShell,执行以下命令:

[System.Environment]::SetEnvironmentVariable('MULTIPASS_STORAGE', 'D:\MultipassData', 'Machine')

其中 D:\MultipassData 修改为你实际想存放的地址。

3. 运行 .msi 安装程序。系统安装程序会自动识别MULTIPASS_STORAGE变量,将所有镜像数据写入你指定的地址,完全不会碰 C 盘。正常到这一步就 OK 了。

4. 如果你已经运行过安装程序且触发了 waiting for daemon 的问题,那么最简单的方式是彻底删除 Multipass 文件和系统变量MULTIPASS_STORAGE,然后按上述步骤来。

原理,以及复杂的方案:

为什么在安装好 Multipass 后再修改MULTIPASS_STORAGE变量位置,即使文件内容复制、文件位置都正确,依然会触发 waiting for daemon?

答案是 Windows 的 NTFS 权限继承逻辑:当你首先设置好MULTIPASS_STORAGE的路径后,MSI 安装器以SYSTEM身份在指定位置创建文件夹,创建者和所有者都是 SYSTEM。但若安装完后自行创建 D 盘目录并复制文件,则该目录的创建者和所有者是当前用户。但 multipassd 服务以 SYSTEM 身份运行,没法访问没权限的目录,只会得到 access denied,我们看到的就是不停的 waiting for daemon。

因此,如果确实需要在已安装完后修改存放镜像位置,参考以下步骤:

1. 停止 Multipass 服务,用管理员启动 PowerShell,执行以下命令:

Stop-Service Multipass

2. 创建指定位置的目录并复制数据

# 创建目标目录 New-Item -ItemType Directory -Path "D:\MultipassData" -Force # 复制数据(保留权限) robocopy "C:\ProgramData\Multipass" "D:\MultipassData" /E /COPYALL /DCOPY:T

3. 设置系统环境变量(见简洁方案)

4.配置目录权限

# 给予 SYSTEM 账户完全控制权限 $acl = Get-Acl "D:\MultipassData" $rule = New-Object System.Security.AccessControl.FileSystemAccessRule( "NT AUTHORITY\SYSTEM", "FullControl", "ContainerInherit,ObjectInherit", "None", "Allow" ) $acl.SetAccessRule($rule) Set-Acl "D:\MultipassData" $acl

5. 重启 Multipass 服务

Start-Service Multipass

6. 验证

multipass list multipass info

(完)

http://www.cnnetsun.cn/news/3149116.html

相关文章:

  • 5分钟掌握ppInk:Windows屏幕标注终极指南,让远程协作效率翻倍
  • 【Java课程设计/毕业设计】农家乐客房排班运维管理系统的设计与实现 乡村民宿文旅服务智能化管理平台【附源码、数据库、万字文档】
  • 【Java毕业设计】基于前后端分离的民宿农家乐综合管理系统的设计与实现 农家乐客房住宿预约与订单管理系统(源码+文档+远程调试,全bao定制等)
  • 基于单片机人脸识别电子密码锁智能门禁指纹识别语音提醒防盗成品112(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_
  • 手中有机, 心中不慌 (5 只 二手 Android 手机)
  • 干货教程:APK反编译神器安卓修改大师,一步步教你如何美化和修改安卓应用
  • Java计算机毕设之美容会员储值充值积分管理系统的设计与实现 美业技师业绩提成统计管理系统(完整前后端代码+说明文档+LW,调试定制等)
  • LED灯珠颜色亮度工业自动化测量
  • 工业机器人送料机械手设计实战指南
  • 从电商项目课程设计,搞懂 JWT 鉴权和 Redis 缓存到底在解决什么问题
  • 面试官问:“模型一本正经胡说时,logprobs 抓得到吗?“
  • 你往 AI 里装的那些 skill,打开看过一眼吗?
  • 【图像分类】实战ResNet——从零构建到CIFAR-10分类(Pytorch)
  • Agent记忆系统设计与实现
  • 别把知识图谱做成高级文档库——定制化做企业级知识图谱
  • 【面板数据模型实战】从理论到Stata/R/Python实现与选择
  • 【机器人】基于缓冲的不确定性感知沃罗诺伊单元多机器人碰撞规避附Matlab代码
  • Rmarkdown动态文档创作与数据科学报告实战指南
  • 【HarmonyOS NEXT】error: failed to install bundle. code:9568322...
  • 多接地配电系统的基于PMU的系统状态估计附Matlab代码
  • Linux /etc/fstab 配置详解:5个关键参数避免重启后挂载回退只读
  • 普推黑体(PUTUI)1.202,更适合商标及标题文字!
  • 用C语言的<wchar.h>宽字节库实现好玩的逐字输出效果(模拟打字)
  • 鸿蒙新特性——Badge 徽章组件详解
  • Linux 用户管理知识与应用实践(二:用户相关命令与示例)
  • 高速 ADC 与 FPGA LVDS 接口设计:5 项 PCB 布线规则与 IDELAY 时序校准实战
  • 远控横评:向日葵、ToDesk、UU 远程,远程玩游戏差距有多大
  • Transformers自动化训练全流程优化实战
  • 助睿实验7-3:可视化探索
  • 基于51单片机的教室智能照明灯控制系统光控人数检测定做定制电子13(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码