如何在 Mac m2 UTM 上安装 Kali 或 ParrotOS 并将虚拟机文件和虚拟磁盘驱动器存储在外部 SSD 上?

如何在 Mac m2 UTM 上安装 Kali 或 ParrotOS 并将虚拟机文件和虚拟磁盘驱动器存储在外部 SSD 上?

我已经从两个操作系统网站获得了正确的arm64 iso 文件。对于 parrot,我使用他们的arm64架构师版本,对于Kali,我下载了arm安装程序。

在 ParrotOS 安装期间,我打开了 UTM 应用程序并将 ISO 文件加载到启动 iso 部分。我分配了可以给虚拟机的 RAM 数量、CPU 核心和存储大小。

我没有在 UTM 虚拟机设置或安装菜单中看到任何允许我将虚拟磁盘驱动器分配到外部 SSD 的设置选项。通过启动菜单中的图形安装选项创建用户和密码后,我通过所有默认选项对驱动器进行分区。

我正确安装了所有操作系统,并选择了要安装的软件包,重新启动后,再次出现安装和图形安装菜单。不是登录菜单。我再次执行相同的步骤,以找出操作系统和软件包安装步骤中的错误,提示无法完成此过程,我必须删除所有内容并重新启动。

对于 Kali 安装,我做了同样的事情,除了选择图形安装后出现黑屏

答案1

我对此有一个简单直接的解决方案。

我从头开始给出步骤:

  • 在 Mac 上安装 UTM。
  • 按照标准过程在 UTM 中创建所需的 VM。
  • 此时,创建的虚拟机完整数据存储在位置 --> ~/Library/Containers/com.utmapp.UTM/Data/Documents/
  • 例如,就我而言,我创建了 Kali 和 parrot VM。因此这些虚拟机的数据位置将是,
    1. ~/Library/Containers/com.utmapp.UTM/Data/Documents/kali.utm(包含操作系统+数据)。
    2. ~/Library/Containers/com.utmapp.UTM/Data/Documents/parrot.utm(包含操作系统+数据)。
  • 因此,理想情况下,您只需将以上 2 个.utm文件移动到所需的目标位置即可。但不要手动执行。让 UTM 软件来完成这项工作。请参阅下一步。
  • 将外部硬盘插入 Mac。
  • 现在打开您的 UTM 仪表板(应用程序)。在左侧您可以看到所有虚拟机。右键单击每个虚拟机,然后选择“移动”选项。之后,选择目标位置作为您的外部硬盘位置。然后点击“确认”。
  • 现在您已将虚拟机移动到目标位置。该位置的虚拟机数据也会~/Library/Containers/com.utmapp.UTM/Data/Documents/被删除。对所有虚拟机重复相同的操作。

笔记:UTM 软件只需要一个.utm文件。因此您可以手动将该文件保存在您想要的任何位置。打开 UTM 软件仪表板。然后打开Finder并双击您复制的文件以在UTM软件中打开。就是这样。

缺点:您必须为您创建的每个虚拟机手动执行此操作。无论如何,我们达到了我们想要的。

答案2

判断通过Kali UTM 安装说明这看起来像是 UTM 问题。

UTM 开发人员显然没有考虑过为虚拟机使用可移动驱动器,因为这不是一个选项,而且UTM文档只说这个:

可移动驱动器

不可移动驱动器存储在 .utm 包中。可移动驱动器仅存储驱动器映像的书签,应用于 ISO 和其他磁盘映像。

这个 UTM GitHub 线程提供了一个解决方案:

在这里,我找到了一种通过使用稀疏映像以不太聪明的方式解决此问题的方法。缺点是在使用 UTM 之前必须手动挂载磁盘映像,但您可以编写脚本来执行此操作。

  1. 请记住关闭 UTM 应用程序。
  2. 打开 Disk Utility.app 并创建一个新的空白稀疏磁盘映像并将其保存在外部驱动器上。对于 SSD,建议使用 APFS,而 HDD 使用 HFS+(Mac OS 扩展)可能会遇到较少的问题。
  3. 打开终端并通过在终端中运行 hdiutil Attach /Volumes//.sparseimage -mountpoint ~/Library/Containers/com.utmapp.UTM/Data/Documents 来将该映像挂载到目标文件夹。
  4. 现在,您可能会在桌面或 Finder 侧边栏上看到已安装的图像。将 ~/Library/Containers/com.utmapp.UTM/Data/Documents 中的所有文件移动到新磁盘映像。
  5. 删除原始 .utm 文件,启动 UTM 应用程序,您的虚拟机现在在外部驱动器中运行。

在 macOS Monterey 12.0.1 (21A559) 上使用 UTM 2.4.1(40) 进行测试

...反馈:

图像是不必要的抽象级别,可能会降低性能。您可以使用 diskutil 挂载的 -mountPoint 选项将卷挂载到 ~/Library/Containers/com.utmapp.UTM/Data/Documents 挂载点。

相关内容