x86 硬件上的 Mac OS X 2008–2024 技术文献库
InfiniteMac OSx86 › 内核发布、社区动态与科技公告 › 真正的 Mac OS X / OSx86 Live DVD 诞生了!
212,477 reads · 2009-01-03 – 2009-05-30
技术专卷 发布与公告 AMD OSx86 Retail DVD / USB

真正的 Mac OS X / OSx86 Live DVD 诞生了!

归功于 InsanelyMac 开发团队(spartango 等人),通过 OS X 内置的 IOHDIXController 磁盘镜像引导机制与 RAMDisk 影子文件(Shadow File)写入技术,无需安装即可直接从光盘启动进入完整可读写 Finder 桌面的 Mac OS X Live DVD 正式实现!

主笔作者
@nfoav8or 发表于 2009-01-03
所属专区
内核发布、社区动态与科技公告
典藏规模与记录
212,477 次历史阅读 · 7 则精选技术笔记(萃取自 12 则原始回帖) · 2009-01-03 – 2009-05-30
参与贡献成员 (8)
@nfoav8or (3)@milanca (2)@cmdshft (2)@Voyn1x@bob5731@biker69@ultimo@Quentin
相关硬件参考
AMD Desktop Processors ↗ USB 3.2 Boot Flash Drives ↗ SATA III & NVMe SSDs ↗
简体中文精译技术专卷 · 完整保留原始命令、Kext 名称、ACPI 节点与引导参数查看英文原版 (Original English) →

归功于 InsanelyMac 的开发团队,专为 OS X 与 OSx86 打造的真正 Live DVD 梦想终于成真了!

以下转载 spartango 在 InsanelyMac.com 发表的原文:
“在 REVENGE 发出号召后不久,OS X Live DVD 团队就取得了重大突破!

我们现在已经拥有一套步骤简单且运行相当稳定的 Live DVD 制作方法。事实上,取决于所搭配的内核扩展(Kext)与引导程序,这套方法无论在黑苹果(Hackintosh)还是正牌 Mac 真机上都能正常工作!

这套方法之所以可行,是因为 OS X 本身就内置了一套磁盘镜像引导机制(Disk Image Boot System),原本是用来支持其网络启动(NetBoot)功能的。IOHDIXController 与系统内核可以接收传入的磁盘镜像路径,并通过将磁盘镜像识别为可挂载文件系统的‘imageboot’机制,直接将其挂载为根目录 /。

此外,Apple 还设计了一套能将‘影子文件’(Shadow File)附加到只读磁盘镜像的机制,使其变成可写入状态。这项机制原本是为了支持 NetBoot 网络启动,让用户的会话(Session)保存在本地且重启后不留存,具体实现位于 /etc/rc.netboot 中。简单来说,vndevice(/usr/libexec/vndevice)会将一个影子文件附加到 DMG 镜像上,并在该设备启用写时复制(Copy-on-Write)策略——所有对 DMG 的写入操作都会被重定向至临时的影子文件中。这与 Linux Live DVD 的工作原理非常相似,只是 Linux 采用的是 UnionFS。

在一般情况下,影子文件会创建在本地磁盘或网络共享空间(NFS 或 HFS 格式)上。而在我的方法中,影子文件则是创建在格式化为 HFS 的内存盘(RAMDisk)上,系统运行起来就跟通过 NetBoot 启动完全一样。唯一的差别在于,我指定要引导的 DMG 位于本地(file:///),然后手动启动一个自定义的 rc 脚本。这个脚本的行为与 rc.netboot 类似,差别只在于我会先创建一个 RAMDisk 并将影子文件设在那里,而非本地硬盘上。完成这步之后,根目录 / 就具备完整读写权限(R/W),OS X 也能像平时一样正常引导进入 Finder 桌面……甚至执行各种进阶操作。

更多技术细节请参阅下方 InsanelyMac X Labs 的讨论帖链接!

http://forum.insanelymac.com/index.php?showtopic=144128 ↗”

上方图片由 spartango 于原帖 ↗提供。

我个人对这群比我聪明得多的牛人致以万分敬意 :-B,因为我自己前阵子也一直尝试修改 modbin 的方法 ↗ 却始终未能完美成功。

同时我也认为,大家不应该把用这套方法自制出来的各种镜像到处发到网上散播。对于 Windows 用户而言:网上已经有了一些现成版本,只需使用 TransMac 编辑镜像文件内的驱动即可在自己的机器上运行;至于我们这些已经在使用 OS X 的玩家……直接按照教程亲手做一张属于自己的 Live DVD 吧!现在有了完整的 [How-To] 指南,制作过程已经非常简单了。相关技术问题可以直接向开发团队请教,也很欢迎在我们论坛这里发帖讨论(请在标题加上适当标签)。

希望这张 Live DVD 的诞生,能帮我们救回许多原本看似无药可救的崩溃系统!

再次向各位开发者脱帽致敬,开发团队干得太漂亮了!

(文章上方展示的 OS X LIVE 图片是我之前为自己制作的旧版 AMD-LIVE DVD 在 Photoshop 设计的,这次特别修改后用于本篇文章。)

社区实测与技术补充笔记

自 12 则原始讨论回帖中萃取 7 则高价值技术回应

技术笔记 #1 @Voyn1x 2009-01-03

太棒的消息了!我期待这项技术已经好长一段时间了 :

技术笔记 #2 @milanca 2009-01-03

没错,这绝对是了不起的突破……前几天我在 InsanelyMac 看到那篇原帖时就照着做了一张,运行起来顺畅无比,真的太赞了!这对整个黑苹果社区来说绝对是一大福音。

作者修订 #1 @nfoav8or 2009-01-15 ↳ Re: @bob5731
@bob5731我想要一份它的 ISO 镜像文件。

据悉即将推出的新版 Leo4All 安装 DVD 就会直接内置这项功能了,这也是为什么我不打算上传自己做的版本。我手头这张 LiveDVD 虽然在我的主机和另外几台电脑上工作良好,但我可不想传上去之后,引来一堆人抱怨为什么在他们的电脑上开不了机(因为我当初制作时本来就只针对自己的硬件配置)。

老实说,自己动手做一张真的比较快。

拿一张“旧版”的 Leopard OSx86 安装 DVD 装好系统并更新,然后按照教程指南一步步操作即可。要我说的话,这些步骤真的非常简单。

技术笔记 #3 @milanca 2009-01-15

是的,我也同意自己动手制作一张 LiveDVD 非常简单。我自己做了一张,在我的两台主机上都能完美工作。我原本也可以把它上传分享出来,但一张通用版 LiveDVD 必须涵盖够多种类的芯片组驱动才行。谁知道呢,说不定我之后会整合看看、做一张类似通用版(Universal)的 LiveDVD,但目前还不确定。无论如何,这项技术本身真的非常了不起,能帮我们省下为了救援系统而额外在另一块硬盘保留备用系统的麻烦,也不用每次都慢吞吞地从安装 DVD 启动,用来恢复备份镜像或进行各种系统维护都超方便!真是太棒了。

技术笔记 #4 @cmdshft 2009-01-23

这套方法似乎对物理内存(RAM)容量有一定要求。

我的电脑只有 1GB 内存,拿别人发给我的一张测试版 Live DVD 启动时,跑到一半就会卡住无法进桌面。看来系统至少需要 1.1GB 或以上的物理内存才能顺利引导开机。

作者修订 #2 @nfoav8or 2009-01-24 ↳ Re: @cmdshft

我想如果在最初构建镜像时把 RAMDisk 的容量改小一点,应该就能在内存较小的电脑上顺利运行了。

技术笔记 #5 @cmdshft 2009-01-24

PCWiz 和我正准备测试几项改进方案,他那边刚收到一些测试资料,我们接下来很可能会尝试编写一个能自动检测物理内存容量的启动脚本,以动态分配并优化 RAMDisk 的大小。

参与实测与协作验证成员: @bob5731 @biker69 @ultimo @Quentin
文献来源与贡献者溯源名录(共 8 位具名成员 · 原始讨论串 #1868)
成员用户名本卷贡献角色发帖数活跃时间窗
@nfoav8or主笔作者32009-01-03 → 2009-01-24
@milanca协作成员22009-01-03 → 2009-01-15
@cmdshft协作成员22009-01-23 → 2009-01-24
@Voyn1x协作成员12009-01-03
@bob5731协作成员12009-01-14
@biker69协作成员12009-02-05
@ultimo协作成员12009-02-20
@Quentin协作成员12009-05-30

选择语言 · Choose your language