云主机装黑果实践(3):得到云主机安装镜像

简介: 本文关键字:qemu kvm mojave enoch,,grub4dos 手动mbr安装到fat32,linux 挂载多区段镜像分区

本文关键字:qemu kvm mojave enoch,,grub4dos 手动mbr安装到fat32,linux 挂载多区段镜像分区

前面二文讲解了在kvm/qemu上尝试安装osx的工作,基本上,变色龙,四叶草,opencore的使用,就是在具体平台上尝试不同的patch参数(acpi,dsdt,etc)和大量第三方kexts,调试是最主要的工作,这三个loader支持都不相同,最弱的是变色龙,只是变色龙的mbr支持是最简单的和云机友好的。那么,作为一类特殊硬件,在云主机上主机启动遇到问题,该如何调试呢。又有哪些特殊呢?第一步是创建出云主机能用的镜像,上传测试。

前文我们使用的是PD开nested虚拟化实现了安装mbr patched 10.15。接前面的测试环境,我们继续来讲解。为了简化工作,我们要在deepin linux上事先创建这个镜像并处理,用raw格式而不是qcow2,得到的raw我们可以直接打包供InstallNET.sh用,我们这次选用的是10.14,因为10.15镜像有点大,而且我们尽量在linux下完成大部分工作 ——— 在osx recovery上分区很麻烦。

为了更方便调试引导区,我们要设置一个200m的引导区,并加入grub2和virtiope,然后chainloader变色龙iso。 —— 变色龙直接作为第一层引导好像在云主机硬盘上会有启动问题。

制作镜像结构和启动

在《离线编辑skynas镜像》文中我们讲过挂载一个多区段的镜像,但是现在我们是从0开始的镜像,是空盘和空分区,不是一个导出的有结构的镜像,我们采用20G,10.14安装后约有11-12G,云硬盘最小也是20G:

qemu-img create -f raw osxkvm 20G
(或dd if=/dev/zero of=osxkvm bs=1024 count=20971520)

我们现在可以通过fdisk osxkvm, mkfs.vfat osxkvm直接操作这个镜像。使之有mbr和分区信息。但是注意:这是针对常规盘已有设备挂载点的(整盘已被挂载)那些操作,这里的镜像文件,虽然内部有分区信息(但没有被挂载),所以分区也得不到挂载设备点,不能经过格式化获得文件系统信息,也就不能实现挂到文件系统。

对于空白镜像,我们可以通过loop将整盘镜像虚拟成块,统一完成分区和格式化/挂载这样的工作:

losetup -fP --show osxkvm
(P参数是带分区的镜像,show参数可以查看刚losetup到的盘,省掉一次losetup -a)

fdisk /dev/loop0进去分区,会自动转为mbr和msdos,n一个2048起的+200M分区,并a为活动,这就是我们的启动设定盘,其余空间作为一个分区,设置卷标BOOT,OSXKVM
(注意不要生成在PD的/media/psf/xxx,否则打不开, 始终要注意,镜像文件的不同步,这时你要重启deepin。或者将镜像移到deepin里面)

现在才可以格式化和挂载分区:

mkfs.vfat /dev/loop0p1
mount /dev/loop0p1 /osxkvm1
(下回再挂载分区就是《离线编辑skynas镜像》文中的-o offsetnumber mount了)

好了,我们现在给它安装启动,我们不会直接在fat32里mbr装变色龙(原因:启动分区是调试必要的,云主机硬盘直接单分区hfs+启不动,4k硬盘装变色龙也有变数,变色龙装在fat32也有特殊:不能直接dd boot1f32,要把原pbr备份下来整个写入新的,再恢复部分老的,dd if=opbr of=/dev/rdisk1s1 bs=1 count=86 skip=3,dd if=opbr of=/dev/rdisk1s1 bs=1 count=90 skip=422 ):

所以为了省事我们用grub2引导wowpc.iso这些原来在windows下用的:

grub-install --boot-directory=/bootpart /dev/loop0
grub-mkconfig -o /osxkvm1/grub/grub.cfg
(这里/dev/loop0为虚拟块对应设备,/bootpart为fat32启动分区的挂载点,deepin的grub.cfg有延时设置不用update-grub)

为wowpc定制grub.cfg,加个menuentry "chameleon”,这里的wowpc.iso在接下来一节要准备好:

set root='(hd0,msdos1)’
linux16 /syslinux/memdisk iso raw
(记得在系统内apt-get install syslinux拷相关文件到boot:cp -av /usr/lib/syslinux/ /bootpart/syslinux)
initrd16 /wowpc.iso

把boot-macOS.sh去掉cdr发现这个raw image是可以grub2启动的,你还可以定制grub逻辑,加入tinycorelinuxpe。接下来就是制作镜像主体:那个osxkvm分区,和wowpc.iso引导文件了

Recovery里安装OS X得到镜像文件和引导

跟据上文,准备mbr patched 10.14 install.cdr(提一下,替换A5,A6会出现apfs stop),全程记得用https://github.com/chris1111/Chameleon-macOS-Mojave-USB/releases/tag/V2 chris1111的安装包ChameleonEnochv2.4svnr2922-Post.pkg在EasyMBR-Installer1013.sh脚本完全后写入,不要用其它地方来的。

ps: 自定chris1111的配置:

FakeSMC-Extra-Options->FakeSMC-NULCPU->FakeSMC&HWMonitor:
HWsensors.V6.26.146,安装
FakeSMC,安装(Fakesmc是为把boot-macOS.sh中的device smc参数消减,所以接将kexts做进osx来解决,必备黑果驱动)
CPUSensors,GPUSensors,LPCSensors都取消
FakeSMC-Extra-Options->Extra-smbios:
Extr,安装
SMBIOS PC on Laptop->imac14,2,勾选
跳到最后Chameleon Enoch v2.4svn r2922->Chameleon Standard
勾选standard mode安装变色龙引导到虚拟U盘,,它默认以-Xmpc -v等参数启动。删掉主题default后启动会更清爽。

在osx下虚拟U盘复制以下引号里提到的文件到某一目录,准备制作wowpc.iso,并把它放到虚拟U盘Extra下

sudo hdiutil makehybrid -o wowpc.iso “boot,Extra,Extra/extesions等chris1111的变色龙引导配置文件所在目录”/ -iso -hfs -joliet -eltorito-boot “虚拟U盘standalone/i386/cdboot”/cdboot -no-emul-boot -hfs-volume-name "Chameleon" -joliet-volume-name "Chameleo" -iso-volume-name "Chameleo"

cdr和wowpc.iso准备好了,启动boot-macOS.sh进入recovery,如果启动有问题,加-f重建缓存启动,

在recovery里界面的磁盘工具中查看未分区的盘号,这里是disk1s2,发现不是很好看,二个区凑一起了,但是没关系,能用就行(要得到好看的,diskutil partitiondisk disk1 MBR fat32 “BOOT” 200M HFS+ “OSXKVM” R,在linux里按上面过程返工吧),

退出磁盘工具进入命令行,打入:sudo diskutil eraseVolume JHFS+ OSXKVM disk1s2

拷wowed.iso到boot分区根下:cp /Extra/wowpc.iso /Volumes/BOOT/

进入安装界面,开始安装OSX到上一步准备的镜像osxkvm,因为是在PD中是虚拟套虚拟,安装性能有点慢,安装接近完全,最后一分钟要等好久,把最后得到的osxkvm测试启动,最后关掉PD,把得到的raw image gzip -c xx>xx.gz打包,完工!。


(此处不设回复,扫码到微信参与留言,或直接点击到原文)

qrcode.png

相关文章
|
1月前
|
存储 域名解析 固态存储
云主机搭建教程
云主机提供全球机房选择、灵活配置及客户支持。购买时要考虑CPU、内存、硬盘和流量需求,推荐根据预算选择不同套餐。本文介绍了如何快速注册云主机,购买流程包括选择套餐、注册/登录、支付和管理主机。
23 0
云主机搭建教程
|
3月前
|
弹性计算 Linux 数据安全/隐私保护
保姆级幻兽帕鲁服务器创建教程,稳定不卡
保姆级幻兽帕鲁服务器创建教程,稳定不卡,玩转幻兽帕鲁服务器,阿里云推出新手0基础一键部署幻兽帕鲁服务器教程,傻瓜式一键部署,3分钟即可成功创建一台Palworld专属服务器,成本仅需26元,阿里云百科网分享2024年新版基于阿里云搭建幻兽帕鲁服务器教程
269 0
|
10月前
|
存储 弹性计算 移动开发
阿里云无影云电脑使用方法_新手3分钟入门教程
阿里云无影云电脑使用方法_新手3分钟入门教程,阿里云无影云电脑即无影云电脑,云电脑如何使用?云电脑购买后没有用户名和密码,先创建用户设置密码,才可以登录连接到云电脑。云电脑想要访问公网还需要开通互联网访问功能。阿里云百科来详细说下阿里云无影云电脑从购买、创建用户名密码和访问互联网全过程
247 0
|
11月前
|
NoSQL 关系型数据库 MySQL
阿里云服务器部署图文详解
阿里云服务器部署图文详解
阿里云服务器部署图文详解
|
弹性计算
Minecraft服务器租用使用阿里云服务器自己搭MC更方便性价比高
阿里云服务器搭建Minecraft我的世界CPU内存配置怎么选择?公网带宽和系统盘选择多少合适?一般20人以内玩家、1.12版本的大型整合包、100个以内个轻量mod,2核4G配置就够用了,公网带宽选择3M或5M都可以,系统盘就高效云盘40GB够用了。阿里云服务器配置1核1G配置3个月19.17元、1核2G配置26.46元3个月、2核4G内存42.66元、2核8G内存58.86元3个月、4核8G配置75.06元、8核16G配置139.86元
776 0
Minecraft服务器租用使用阿里云服务器自己搭MC更方便性价比高
|
应用服务中间件 数据库 nginx
使用Docker快速搭建Halo个人博客到阿里云服务器上[附加主题和使用域名访问、无坑系列]
使用Docker快速搭建Halo个人博客到阿里云服务器上[附加主题和使用域名访问、无坑系列]
411 1
使用Docker快速搭建Halo个人博客到阿里云服务器上[附加主题和使用域名访问、无坑系列]
|
弹性计算 数据安全/隐私保护
旧服务器迁移到新的云服务器教程(以阿里云为例)
使用阿里云服务器迁移中心SMC从原服务器或虚拟主机迁移到阿里云服务器上
1216 0
旧服务器迁移到新的云服务器教程(以阿里云为例)
|
弹性计算 数据安全/隐私保护
服务器迁移到阿里云服务器方法(全流程)
旧服务器迁移至阿里云新服务器的方法,使用阿里云服务器迁移中心SMC
787 0
服务器迁移到阿里云服务器方法(全流程)
|
前端开发 Linux 数据安全/隐私保护
小白从购买服务器到部署环境
因为本人目前也是小白阶段,所以看了各种资料和视频一步步从阿里云上通过学生认证买了一个服务器,以下是从购买到部署一站式展示。如有错误欢迎指正!
|
应用服务中间件 程序员 API