我用mac dmg文件可以直接打开 那是不是linux也可以

我用mac dmg文件可以直接打开 那是不是linux也可以,第1张

dmg是Mac系统中的软件安装程序,下载dmg后,双击运行即可安装APP。 dmg是MAC苹果机上的压缩镜像文件,相当于在Windows上常见的iso文件。DMG在苹果机上可以直接运行加载,在Windows PC上可以通过命令行软件dmg2iso.exe转换成ISO文件。 命令运行格...

近几年已经比较少不使用 U 盘直接使用硬盘安装黑苹果的教程了。这可能和 U 盘越便宜、速度越快有关,也有可能跟此方法 *** 作过于麻烦有关。

本文介绍写入原版 dmg 镜像到硬盘分区的方法 (不需要抹掉整个硬盘),主要用于不方便使用 U 盘安装的情况。

方法原理

教程开始前先介绍清楚此方法的基本原理:

为什么 dmg 镜像只能直接写入到 U 盘?因为 dmg 是硬盘镜像 (Disk Image),其原始数据是包含分区表的完整硬盘镜像,写入 U 盘就相当于硬盘对拷。前面加粗了原始数据,是要强调 dmg 是压缩格式,不能直接写入 U 盘。使用 TransMac 等工具写入其实是边解压成原始数据边写入。

既然 dmg 是带分区表的硬盘镜像,我们按照分区表提取出对应分区的数据,再写入硬盘分区就可以了,这个过程相当于分区对拷。

工具准备

首先我们需要把 dmg 转换成 raw img 以便提取内容。

Linux 可以使用 dmg2img 和 qemu-img,可从软件源安装,或者自行编译。Windows 似乎没有 dmg2img,不过也有 qemu-img,我使用的是 Cloudbase Solutions 提供的预编译的 qemu-img。

接下来是从 img 中提取分区数据,Linux 可以直接使用 loop mount 挂载,Windows 我使用的是 7-Zip。

最后是写入分区,Linux 可以直接使用 dd,Windows 也有 dd for windows。

*** 作步骤

以下教程针对 Windows 平台,相信各位 Linux 用户有能力理解并在 Linux 下 *** 作。

1.dmg 转换成 raw img

打开命令行,切换到 qemu-img 的目录。

先执行 qemu-img --help 查看帮助。帮助很长,我们只需要关注 convert 命令的参数:

convert [-c] [-p] [-q] [-n] [-f fmt] [-t cache] [-T src_cache] [-O output_fmt] [-o options] [-s snapshot_id_or_name] [-l snapshot_param] [-S sparse_size] filename [filename2 [...]] output_filename

复制代码

以及最下面支持的格式:

Supported formats: dmg vpc host_device bochs blkverify blkdebug parallels file nbd vmdk vdi qcow2 qed cloop qcow vhdx sheepdog null-aio vvfat raw null-co

复制代码

可以看到是支持 dmg 和 raw 的。

接下来开始转换,我们只需要指定输入格式和输出格式即可:

qemu-img convert -f dmg -O raw <dmg文件名><输出文件名>

复制代码

2.提取分区数据

用 7-Zip 打开刚刚转换的 img,可以看到有两个“文件”,点 Info 可以看到 Type 是 GPT。

这两个文件对应的是两个分区,我们需要的是 disk image.hfsx 这个文件,提取出来。

需要注意的是,不要直接拖放文件来提取,因为 7-Zip 会先提取到临时目录,再复制到你拖放的地方。

EFI System Partition.img 是 EFI 系统分区,大多数黑苹果镜像会在里面附带引导程序,可以用 7-Zip 直接打开提取文件。

3.写入硬盘分区

先准备一个至少 8GiB 的硬盘分区 (我自己准备了 16GiB,上图可以看到 disk image.hfsx 已经有 7.13GiB 了),分配盘符为 Z:。如果分区已经格式化了,建议在磁盘管理中删除该分区重新新建,新建时选择不格式化。

请自行搜索使用磁盘管理压缩、新建分区的方法,在此不再赘述。

接下来以管理员身份运行命令行,切换到 dd 的目录。

执行 dd --list 可以查看所有硬盘分区,找到要写入的分区。如果已经分配了盘符,可以跳过这一步。

执行

dd if=<disk image.hfsx路径>of=<要写入的分区>bs=4M

复制代码

其中 <要写入的分区>是上一步 list 找到的,如果分配了盘符 Z:,可以直接写 \\.\z:。

这一步开始写入数据到硬盘分区,请耐心等待。

4.设置分区 ID

最后需要把分区的 ID 设为 HFS。运行 diskpart。

执行 list disk 查看所有硬盘,确认分区所在的硬盘编号。

执行 select disk <#>,其中的 <#>是上一步记下的硬盘编号。

执行 list part 查看所有分区,确认分区编号。

执行 select part <#>,其中的 <#>是上一步记下的分区编号。

如果是 GPT 分区表,执行 set id=48465300-0000-11AA-AA11-00306543ECAC。

如果是 MBR 分区表,执行 set id=AF。

教程到此结束,可以尝试启动 macOS 了。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7309400.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-04
下一篇2023-04-04

发表评论

登录后才能评论

评论列表(0条)

    保存