当前位置: 首页 >> 原创·技术 >> 202008031429 macOS三部曲:自制macOS安装镜像cdr/iso【10.15.x/10.14.x/10.13.x/10.12.x/10.11.x】 >> 正文

202008031429 macOS三部曲:自制macOS安装镜像cdr/iso【10.15.x/10.14.x/10.13.x/10.12.x/10.11.x】

2个月前 (08-04)     作者:iMoke     分类:原创·技术     阅读次数:348     评论(0)    

世界上到底是先有鸡还是先有蛋?科学家可能已经给出了答案。但是在写这个教程的时候,我又一次遇到了先有鸡还是先有蛋的问题。

我想下载macOS镜像,首先我得有一个mac系统【三.3】;

我想要一个mac系统,要么我买或借一个苹果电脑,要么我就得自己装一个黑苹果【三.1,三.2】;

我不想麻烦别人,所以我打算自己做一个黑苹果,所以我首先得有一张mac镜像【三.4】;

……所以,我一口气写这三篇文章,全是傻瓜教程,有图有命令,没有顺序。


一、前言

世界上到底是先有鸡还是先有蛋?科学家可能已经给出了答案。但是在写这个教程的时候,我又一次遇到了先有鸡还是先有蛋的问题

我想下载macOS镜像,首先我得有一个mac系统【三.3】;

我想要一个mac系统,要么我买或借一个苹果电脑,要么我就得自己装一个黑苹果【三.1,三.2】;

我不想麻烦别人,所以我打算自己做一个黑苹果,所以我首先得有一张mac镜像【三.4】;

……

所以,我一口气写这三篇文章,全是傻瓜教程,有图有命令,没有顺序。

未标题-1.png

二、参考资料及准备环境

MacOS Catalina 10.15.x ISO/CDR格式镜像 用于VMware等虚拟机

一台macOS系统的电脑(虚拟机、实体机都可以)

待做成启动镜像的dmg镜像

注:d.rc.it为自用域名。如何获取镜像,你可以去网上找,也可以参考【三.3】自己下载

镜像名版本号DMG文件大小新建镜像大小转化后ISO大小备注
Install_OS_X_El_Capitan_10.11.6-15G31-myjike.dmg10.11.65939.2m6109m

亲测,做完镜像无法安装

提示点击安装提示“无法从此磁盘使用“安装 OS X EI Capitan”应用程序”

Install_macOS_Sierra_10.12.6.dmg10.12.65242.88m4973m4.86GB
Install_macOS_High_Sierra_10.13.6-17G66.dmg10.13.65017.6m5948m5.11GB
Install_macOS_Mojave_10.14.6-18G103.dmg10.14.65765.12m5233m5.81GB
Install_macOS_Catalina_10.15.6-19G73.dmg10.15.67884.8m8046m7.9GB


三、我写的其他相关文章

1.    202001202118 记ESXI 6.0下安装macOS10.13

2.    202008031423 macOS三部曲:使用esxi6.7/Workstation15.5安装macOS虚拟机

3.    202008031428 macOS三部曲:下载macOS官方镜像

4.    202008031429 macOS三部曲:自制macOS安装镜像cdr/iso


四、制作镜像10.15.x / 10.14.x / 10.13.x / 10.12.x / 10.11.x

1.下载镜像(也不知道为啥,macOS不支持wget)

#这里我们下载到桌面
cd $HOME/Desktop
curl -O http://d.rc.it/ISO/01.Apple/Install_macOS_Catalina_10.15.6-19G73.dmg


2.前期定义

先查看一下dmg文件的大小,单位为M,因为我们要创建一个差不多大的光盘文件。

注意:创建大了占地方,创建小了写不进去。

imoke@imokedeMac Desktop % ls -alh
-rw-r--r--@  1 imoke  staff   7.7G Aug  3 18:53 Install_macOS_Catalina_10.15.6-19G73.dmg

# 7.7G,换算后是7884.8M,那我们就创建一个8046m的光盘


然后定义一个临时文件名,这个文件名主要用于挂载光盘,完全自定义。这里我习惯用版本命令

最后定义一个最终文件名,这个名就是最后输出的cdr/iso文件名,完全自定义。这里我习惯与dmg同名

fullname=Install_macOS_Catalina_10.15.6-19G73
tempname="macOS Catalina"
disksize=8046m
# 8046是经测试最小的,能满足制作镜像的大小。
fullname=Install_macOS_Mojave_10.14.6-18G103
tempname="macOS Mojave"
disksize=5948m
# 5948是经测试最小的,能满足制作镜像的大小。
fullname=Install_macOS_High_Sierra_10.13.6-17G2208
tempname="macOS High Sierra"
disksize=5233m
# 5233是经测试最小的,能满足制作镜像的大小。
fullname=Install_macOS_Sierra_10.12.6
tempname="macOS Sierra"
disksize=4973m
# 4973是经测试最小的,能满足制作镜像的大小。
fullname=Install_OS_X_El_Capitan_10.11.6-15G31-myjike
tempname="OS X El Capitan"
disksize=6109m
# 6109是经测试最小的,能满足制作镜像的大小。
# 注意,制作后用VMware无法安装。


3.制作脚本

hdiutil attach $HOME/Desktop/$fullname.dmg  -noverify -mountpoint /Volumes/"$tempname"
hdiutil create -o $HOME/Desktop/"$tempname".cdr -size $disksize -layout SPUD -fs HFS+J
hdiutil attach $HOME/Desktop/"$tempname".cdr.dmg -noverify -mountpoint /Volumes/install_build

# 下面的命令适用于10.15.x / 10.14.x
sudo /Volumes/"$tempname"/Install\ "$tempname".app/Contents/Resources/createinstallmedia --volume /Volumes/install_build

# 下面的命令适用于10.13.x / 10.12.x / 10.11.x
sudo /Volumes/"$tempname"/Install\ "$tempname".app/Contents/Resources/createinstallmedia --volume /Volumes/install_build --applicationpath /Volumes/"$tempname"/Install\ "$tempname".app --nointeraction

hdiutil detach /Volumes/Install\ "$tempname"/
hdiutil detach /Volumes/"$tempname"
hdiutil convert $HOME/Desktop/"$tempname".cdr.dmg -format UDTO -o $HOME/Desktop/$fullname.iso


讲解:

# 挂载dmg文件。你可以直接在macOS上双击文件挂载,我习惯用命令行而已。
# 为什么我不用双击呢,因为双击后挂载的,在中文系统下,镜像名叫“安装 macOS Catalina”,后面的命令不好写。
# 挂载的路径是/Volumes/$tempname,比如说这个就是 /Volumes/Catalina
hdiutil attach $HOME/Desktop/$fullname.dmg  -noverify -mountpoint /Volumes/"$tempname"

# 创建一个空镜像,用到刚才说的8100这个数,用到临时文件名tempname,disksize
hdiutil create -o $HOME/Desktop/"$tempname".cdr -size $disksize -layout SPUD -fs HFS+J

# 将新创建的这个空镜像挂载到系统中。因为只有这样,才能向镜像里写入安装文件和引导项
# 挂载的路径是/Volumes/install_build,其实是可以自定义的。不建议修改。
hdiutil attach $HOME/Desktop/"$tempname".cdr.dmg -noverify -mountpoint /Volumes/install_build

# 向挂载的空镜像写入系统并创建引导项
# 下面的命令适用于10.15.x / 10.14.x
sudo /Volumes/"$tempname"/Install\ "$tempname".app/Contents/Resources/createinstallmedia --volume /Volumes/install_build

# 下面的命令适用于10.13.x / 10.12.x / 10.11.x
sudo /Volumes/"$tempname"/Install\ "$tempname".app/Contents/Resources/createinstallmedia --volume /Volumes/install_build --applicationpath /Volumes/"$tempname"/Install\ "$tempname".app --nointeraction

# macOS 10.14以上会有下面的提示
# 系统问你,是否要清空并写入/Volumes/install_build,输入Y,回车
# To continue we need to erase the volume at /Volumes/install_build.
# If you wish to continue type (Y) then press return: Y
# Erasing disk: 0%... 10%... 20%... 30%... 100%
# Copying to disk: 0%... 10%... 20%... 30%... 40%... 50%... 60%... 70%... 80%... 90%... 100%
# Making disk bootable...
# Copying boot files...
# Install media now available at "/Volumes/Install macOS Catalina"
# 这时候,原来的/Volumes/install_build 已经变更为 /Volumes/Install macOS Catalina

# 卸载新创建的磁盘镜像和安装镜像
hdiutil detach /Volumes/Install\ "$tempname"/
hdiutil detach /Volumes/"$tempname"

# 最后一步,将创建的带引导的dmg文件转换成iso文件,并且重命名成与img相同文件名,用到最开始定义的fullname
hdiutil convert $HOME/Desktop/"$tempname".cdr.dmg -format UDTO -o $HOME/Desktop/$fullname.iso

此时,桌面上的 *.iso.cdr 就是你要的光盘镜像。


4.操作失败了,请输入如下命令清空刚才的失败过程文件,然后重新执行。

hdiutil detach /Volumes/$tempname
hdiutil detach /Volumes/Install\ $tempname
rm -rf $HOME/Desktop/$tempname.cdr.dmg


5.清理(可选)

删除原来的dmg文件

rm -rf $HOME/Desktop/$fullname.dmg

删除过程镜像

rm -rf $HOME/Desktop/$tempname.cdr.dmg


九、导出镜像

我不太熟悉macOS系统,我是开启了SSH后,使用FlashFXP导出的。在同一个内网下,速度大约是16-30M/s。


十、常见故障

1.使用xshell远程macOS,无法输入中文字符。

解决办法:将下面两行写入/etc/profile里
export LC_ALL=en_US.UTF-8
export.UTF-8
# 注意,/etc/profile是只读的root权限文件,无法用sudo echo写入,只能手动添加
# 强制保存后,重新连接即可。
# 最终效果
# System-wide .profile for sh(1)
  
if [ -x /usr/libexec/path_helper ]; then
        eval `/usr/libexec/path_helper -s`
fi
if [ "${BASH-no}" != "no" ]; then
        [ -r /etc/bashrc ] && . /etc/bashrc
fi
export LC_ALL=en_US.UTF-8
export.UTF-8


2.使用建议

如何可以,最好是换成纯英文环境再做,省事


3.报错信息:(22 0)错误【产生于:Install_macOS_Catalina_10.15.6-19G73.dmg】

To continue we need to erase the volume at /Volumes/install_build.
If you wish to continue type (Y) then press return: Y
Erasing disk: 0%... 10%...
Error erasing disk error number (22, 0)
An error occurred erasing the disk.
原因是VMware Workstation 所在的硬盘满了……


4.报错信息:【产生于:Install_macOS_Catalina_10.15.6-19G73.dmg】

Error: Error Domain=NSCocoaErrorDomain Code=512 "未能将“InstallESD.dmg”拷贝到“SharedSupport”。
" UserInfo={NSSourceFilePathErrorKey=/Volumes/Catalina/Install macOS Catalina.app/Contents/SharedSupport/InstallESD.dmg, 
NSUserStringVariant=(
    Copy
), NSDestinationFilePath=/Volumes/Install macOS Catalina/Install macOS Catalina.app/Contents/SharedSupport/InstallESD.dmg, 
NSFilePath=/Volumes/Catalina/Install macOS Catalina.app/Contents/SharedSupport/InstallESD.dmg, NSUnderlyingError=0x7fe6d8d59190 
{Error Domain=NSPOSIXErrorDomain Code=34 "Result too large"}}The copy of the installer app failed.
原因是创建的新镜像空间给小了……
# 卸载原来写一半的安装镜像
hdiutil detach /Volumes/Install\ macOS\ Catalina

# 删除原来创建的空镜像
rm -rf $HOME/Desktop/$tempname.cdr.dmg

# 从头执行,例如 四.2


5.转换iso时报错:【产生于:Install_macOS_Catalina_10.15.6-19G73.dmg】

hdiutil: convert failed - 资源暂时不可用
原因是必须先把新写入的镜像先卸载,才能转换。


6.写入镜像报错【产生于:Install_macOS_High_Sierra_10.13.6-17G2208.dmg】

imoke@imokedeMac Desktop % sudo /Volumes/$tempname/Install\ macOS\ High\ Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/install_build --applicationpath /Volumes/High\ Sierra/Install\ macOS\ High\ Sierra.app --nointeraction
Erasing Disk: 0%... 10%... 20%... 30%...100%...
Copying installer files to disk...
The copy of the installer app failed.
.%
可能的原因是,空镜像创小了……新空间为5200时报错,5500就没有错误了。


除非注明,发表在“傲孤漠客”的文章『202008031429 macOS三部曲:自制macOS安装镜像cdr/iso【10.15.x/10.14.x/10.13.x/10.12.x/10.11.x】』版权归iMoke所有。 转载请注明出处为“本文转载于『傲孤漠客』原地址https://www.imoke.org/post/20200803462.html

评论

发表评论   

昵称*

E-mail*(建议输入,以便收到博主回复的提示邮件)

网站

分享:

支付宝

微信