基于Windows 11 wsl2子系统在Docker上部署安装macOS系统

MacOS以其流畅性和简介性,被大家所熟知,但没有实际体验过,接下来我将介绍自己基于Windows 11 的WSL2子系统,借助Docker来运行MacOS,帮助大家可以实际上手体验。
macOS成功界面

一、说明

特别鸣谢,本文实际安装教程,主要参照如下两篇博客,并结合了自己实际中遇到的问题,重新进行了梳理存档,仅供学习交流使用。
参考博客:
告别黑苹果 !Docker-OSX:Windows11 wsl2子系统直接在 Docker 上一键部署安装 macOS 系统

手把手教你在Windows上通过Docker运行MacOS,超炫酷!

以下是本文使用的windows系统和版本:Windows11 专业版 24H2。

二、环境准备

需要确保windows 11 开启了虚拟化的功能以及,安装和更新了最新的WSL2。

1. 确认开启了CPU虚拟化

打开计算机任务管理器,切换到性能-CPU 查看虚拟化状态,如下图:

在这里插入图片描述
如果已开启则进入下一步,否则,需要电脑重启,进入BIOS界面,进行高级CPU配置,使能相应的CPU虚拟化功能。

2. 启用WSL子系统

打开控制面板,进入程序的卸载程序面板:
在这里插入图片描述
配置:启用或关闭windows功能选项,在其中找到并勾选虚拟化平台和linux的子系统的能力,并重启电脑。
在这里插入图片描述

3. 安装Linux子系统

直接在微软应用商城中,搜索ubuntu即可,点击下载。我选择的最新的Ubuntu 24.04.1 LTS
注:默认不会自动安装,需要在任务栏搜索下载的ubuntu,进行打开输入用户名以及两次密码,才能安装完成。
在这里插入图片描述
在这里插入图片描述
然后,windows就会自动开始安装ubuntu,在cmd窗口输入用户名和密码即可!

4. 配置开启wls虚拟机嵌套

在进入系统盘下的用户目录,本地磁盘C->用户->用户名目录,并配置文件管理器的查看选项,使其显示隐藏项目。
如下:
在这里插入图片描述
然后,在此目录下新建一个文件,命名为.wslconfig,文件内容如下,其中的memory可以根据自己的电脑适当调整。

[wsl2]  
memory=16GB  
nestedVirtualization=true  
  
[experimental]  
networkingMode=mirrored  
dnsTunneling=true  
firewall=true  
autoProxy=true

5. 安装docker

下载地址:https://docs.docker.com/desktop/install/windows-install/
1、点击windows版本进行下载:
在这里插入图片描述
2、直接默认安装在C盘,进行正常安装
3、出现提示时,确保选中配置也上的WSL2的选项,一般默认两个选项都选择。
在这里插入图片描述
4、启动Docker后,可以选择不登陆,直接点击“齿轮”进行设置。
以此点击如下配置:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(如果这里没有显示自己安装的ubuntu版本,可以打开一下安装包,确认自己是否安装了还是只是下载了,通过看自己有无设置用户名和密码验证)

最后,点击Apply&restart,重启Docker
在这里插入图片描述
至此,所有准备工作就绪,准备构建镜像安装macOS。

三、构建镜像:

在这里插入图片描述
更新一下仓库的包:
在这里插入图片描述

1、安装KVM:

执行如下命令进行安装:

sudo apt -y install bridge-utils cpu-checker libvirt-clients libvirt-daemon qemu qemu-kvm

执行kvm-ok命令,出现如下提示,表示安装成功。
在这里插入图片描述

2、安装x11工具

sudo apt install x11-apps -y

3、安装Docker-OSX镜像

1、子系统验证子系统是否正常,执行如下指令

docker ps

返回如下信息,说明docker正常:
在这里插入图片描述
2、验证docker正常之后,执行如下代码,拉去镜像并部署容器:

docker run -it \
    --device /dev/kvm \
    -p 50922:10022 \
    -e "DISPLAY=${DISPLAY:-:0.0}" \
    -v /mnt/wslg/.X11-unix:/tmp/.X11-unix \
    -e GENERATE_UNIQUE=true \
    -e MASTER_PLIST_URL='https://raw.githubusercontent.com/sickcodes/osx-serial-generator/master/config-custom.plist' \
    registry.cn-hangzhou.aliyuncs.com/shrimp-images/docker-osx:ventura

3、容器安装成功之后,会自动弹出一个图形化界面,进行macos安装。选择macos base system
在这里插入图片描述
之后,点击顶部file,配置安装语言切换为中文。
4、点击选择第二个磁盘,然后,设置名称为macos
具体安装系统教程,请参考此博客进行安装即可。

四、遇到的问题与解决

1、安装镜像提示如下报错:

curl: (7) Failed to connect to raw.githubusercontent.com port 443 after 10 ms: Couldn't connect to server

解决方法:
1、打开 https://www.ipaddress.com/ 查看IP address,获得对应的IP。(需要VPN)
在这里插入图片描述

2、使用sudo vim /etc/hosts命令打开不能访问的机器的hosts文件,添加如下内容:

185.199.108.133  raw.Githubusercontent.com
185.199.109.133  raw.Githubusercontent.com
185.199.110.133  raw.Githubusercontent.com
185.199.111.133  raw.Githubusercontent.com

如果是基于windows的WSL2,也需要编辑一下windows下的host文件。
对于 Windows,请在以下路径中打开 host 文件,也需要添加上述内容。

C:\Windows\System32\drivers\etc\hosts

再次执行相关命令,就不会出现无法访问的错误了。

2、kvm安装失败

可以按照如下方法进行检查:
使用grep指令,检查硬件是否支持虚拟化

grep -Eoc '(vmx|svm)' /proc/cpuinfo

如果你的 CPU 支持硬件虚拟化,这个命令将会打印出大于0的数字,这代表 CPU 核心数目。否则,如果输出为0,它意味着这个 CPU 不支持硬件虚拟化。
在一些机器上,虚拟化技术可能被厂商在 BIOS 中禁用了。

想要检查 VT 是否在 BIOS 中启用了,使用kvm-ok工具,它被包含在cpu-checker软件包。以 root 或者其他有 sudo 权限用户身份运行下面的命令,安装这个软件包:

sudo apt update
sudo apt install cpu-checker

一旦安装完成,检查你的系统是否可以运行硬件加速的 KVM 虚拟机:

kvm-ok

如果处理器虚拟化能力没有在 BIOS 中被禁用,命令将会打印出:

INFO: /dev/kvm exists
KVM acceleration can be used

上述解决方案参考此[博客]。(https://cloud.tencent.com/developer/article/1657533)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值