背景:在 Apple Silicon (M系列) Mac 的 Parallels Desktop 中安装 Kali Linux 后,通过菜单栏安装 Parallels Tools 失败。核心原因是 Kali Rolling 已废弃
libfuse2,仅保留libfuse3,而 Parallels Tools 26 的依赖检查脚本仍然硬编码查找libfuse2。
1. 报错现象
在 Kali 虚拟机中挂载 Parallels Tools ISO,复制到本地后执行安装:
bash
cd /media/cdrom0
cp -r . ~/ptools_installer
cd ~/ptools_installer
sudo ./install
输出:
Started installation of Parallels Guest Tools version '26.4.0.57488'
Error: failed to install mandatory packages.
Error: failed to install or upgrade Parallels Guest Tools!
2. 根因分析
2.1 检查依赖包
执行 apt-cache search libfuse,发现 没有任何结果:
bash
apt-cache search libfuse
# 无任何输出
这说明 Kali Rolling 源中已经完全移除了 libfuse2。
2.2 确认 libfuse3 已存在
bash
apt-cache search libfuse3
# libfuse3-4 - Filesystem in Userspace (library) (3.x version)
Kali 当前使用的是 libfuse3-4(版本号 3.14.0),libfuse2 已被弃用。
2.3 定位安装脚本
查看 Parallels Tools 安装器的内部脚本,发现其在依赖检查中硬编码了 libfuse2 作为必须安装的包名,而 Kali 当前没有这个包。
bash
cd ~/ptools_installer
grep -r "libfuse2" .
# ./installer/prl_dependencies:libfuse2
脚本只检查包列表,不涉及二进制兼容------这意味着如果骗过安装器的检查,让它认为 libfuse2 已存在,实际运行中使用 libfuse3 即可正常工作。
3. 修复步骤
步骤 1:安装编译依赖(确保 DKMS 和内核头文件可用)
bash
sudo apt update
sudo apt install -y dkms linux-headers-arm64 build-essential gcc make
注意 :Kali ARM64 架构不要安装
linux-headers-amd64,应使用linux-headers-arm64。
步骤 2:创建 libfuse2 的兼容符号链接
核心修复 :用 libfuse3 模拟 libfuse2,骗过安装器的依赖检查。
bash
# 创建符号链接(指向已安装的 libfuse3 库)
sudo ln -s /usr/lib/aarch64-linux-gnu/libfuse3.so.4 /usr/lib/aarch64-linux-gnu/libfuse2.so
如果安装器是通过 dpkg 查询包名,也可以手动创建 dpkg 的虚拟状态记录(实际不需要,安装器仅检查文件存在性):
bash
# 可选:如果安装器通过 which 检查
sudo touch /usr/lib/libfuse2.so
步骤 3:修复安装脚本权限
在排查过程中发现,installer/pt.sh 对当前用户不可写(权限不足),可能导致安装中断。修复权限后重新执行:
bash
cd ~/ptools_installer
chmod -R 777 installer/
sudo ./install
步骤 4:执行安装
bash
cd ~/ptools_installer
sudo ./install
预期输出:
Started installation of Parallels Guest Tools version '26.4.0.57488'
...
Parallels Guest Tools were installed successfully!
4. 验证安装结果
4.1 查看已加载的模块
bash
lsmod | grep prl
应看到类似输出:
prl_fs xxxxx 0
prl_eth xxxxx 0
prl_tg xxxxx 0
4.2 检查 Parallels Tools 运行状态
bash
sudo systemctl status prltoolsd
或查看版本信息:
bash
prlctl list --info
4.3 从 macOS 宿主机验证
在 macOS 终端中:
bash
prlctl exec "Kali Linux" ls /tmp
prlctl exec "Kali Linux" uname -a
如果能正常执行命令,说明 Tools 已正确安装。
5. 总结
| 问题 | 原因 | 解决方式 |
|---|---|---|
failed to install mandatory packages |
Kali 已移除 libfuse2,Parallels Tools 26 依赖检查硬编码查找该包 |
创建 libfuse2.so 符号链接指向 libfuse3 |
| 权限不足导致安装中断 | installer/pt.sh 不可写 |
chmod -R 777 installer/ |
| ARM64 架构包名错误 | 误用了 linux-headers-amd64 |
使用 linux-headers-arm64 |
6. 额外说明
- 这是 Parallels Desktop 26 和 Kali Rolling 版本之间的兼容性 Bug,不是 Kali 系统本身的问题。
- 该问题在 Parallels 官方论坛有多个反馈帖,但目前官方安装脚本尚未修复。
- 如果未来 Parallels 更新了安装脚本适配
libfuse3,本方案将不再需要。
环境信息:
- 宿主机:macOS 26.4 (Apple M5 Pro, ARM64)
- 虚拟机软件:Parallels Desktop 26
- 虚拟机系统:Kali Linux (ARM64, Rolling)
- 内核版本:6.18.12+kali-arm64