macos 系统镜像iso 的制作
2019-03-24 本文已影响287人
ldzSpace
需求: 因为需要调试内核, VMware Funsion 需要iso 系统, 但是发现网上基本上没有相关系统镜像, 大部分是dmg 镜像, 所以只有自己制作
比如:这是appstore 的10.12.6的系统 https://itunes.apple.com/us/app/macos-sierra/id1127487414?mt=12
下载下来后自动会放到/Application/中
方式一
制作镜像: 我直接在下载macos 10.12.6 .dmg , 然后通过window 的iso 制作工具将其转换成macos 10.12.6 .iso 格式, 然后放到VMware Funsion 直接安装, 发现出现了错误:
image.png
这是怎么回事? 然后对比了一下我原来下载好其他版本的可安装的iso 镜像, 发现自己制作的iso里缺少很多文件, 原来直接将dmg转成iso是无法作为mac的启动盘的, 因为这样少了很多的引导程序
方式二
根据上述的情况, 在网上找到了一篇帖子, 需要我们使用命令行去自己制作
1: 把下载好的dmg文件拷到mac上,或者直接在mac上下载, 不要使用什么百度网盘下载, 真的太慢了, 丫的限速
2:这里我直接使用AppStore 里的10.12.6 的版本, 下载好后直接会在/Application 中
image.png3:打开终端: 按以下顺序输入命令,一共12条命令
1.1>>hdiutil attach /Applications/Install\ macOS\ Sierra.app/Contents/SharedSupport/InstallESD.dmg -noverify -nobrowse -mountpoint /Volumes/install_app
目的: 就是将我们下载系统[即在/Application中]关联到Volumes/目录下, 成为install_app
![image.png](https://img.haomeiwen.com/i1974361/8cfb38947922f8ae.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
1.2>> hdiutil create -o /tmp/Sierra.cdr -size 7316m -layout SPUD -fs HFS+J
目的: 创建cdr 文件, 这个就是创建iso的前身, 所以放到临时目录下,因为到时会改成iso 并从临时目录下移除
![image.png](https://img.haomeiwen.com/i1974361/c4f864ace8a7949e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
1.3>>hdiutil attach /tmp/Sierra.cdr.dmg -noverify -nobrowse -mountpoint /Volumes/install_build
目的: 将上面的临时文件关联到/Volumes/目录下,成为install_app
![image.png](https://img.haomeiwen.com/i1974361/5e7354e42282928a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
1.4>>asr restore -source /Volumes/install_app/BaseSystem.dmg -target /Volumes/install_build -noprompt -noverify -erase
目的: 将install_app 中BaseSystem.dmg 转到/Volumes/install_build中
![image.png](https://img.haomeiwen.com/i1974361/498a2a8b2d32b023.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
1.5>>rm /Volumes/OS\ X\ Base\ System/System/Installation/Packages
目的: 删除Packages
1.6>>cp -rp /Volumes/install_app/Packages /Volumes/OS\ X\ Base\ System/System/Installation/
1.7>>cp -rp /Volumes/install_app/BaseSystem.chunklist /Volumes/OS\ X\ Base\ System/BaseSystem.chunklist
1.8>>cp -rp /Volumes/install_app/BaseSystem.dmg /Volumes/OS\ X\ Base\ System/BaseSystem.dmg
上述3个命令都是将install_app 的东西放到OSX Base System 中, OSX Base System存放就是最后iso 镜像所有的内容
1.9>> hdiutil detach /Volumes/install_app
目的: 解除关联install_app
![image.png](https://img.haomeiwen.com/i1974361/3bade795a415a156.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
1.10>> hdiutil detach /Volumes/OS\ X\ Base\ System/
目的: 解除关联osx Base System
![image.png](https://img.haomeiwen.com/i1974361/00ec14449f25816a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
1.11>>hdiutil convert /tmp/Sierra.cdr.dmg -format UDTO -o /tmp/Sierra.iso
将cdr.dmg临时文件转换成iso.cdr
![image.png](https://img.haomeiwen.com/i1974361/25d7a56179d34351.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
1.12>> mv /tmp/Sierra.iso.cdr ~/Desktop/Sierra.iso
放到桌面,改成iso 的后缀
OK,搞定,现在在mac的桌面上你就可以发现有一个Sierra.iso的文件了
最后的ios 中的内容:
image.png