在 Mac 上折腾虚拟机跑国产系统,我以前一直觉得是“能跑但难受”的将就方案。直到 M 系列芯片普及,加上 UTM 这类原生虚拟化工具越来越成熟,把麒麟 V10 装进 Mac 其实已经能当日常开发环境用了。这篇文章想跟你分享我踩过一遍坑之后总结出来的完整路径:从 UTM 虚拟机的选型配置,到麒麟 V10 系统安装,再到达梦 DM8 数据库的部署调优,全部基于 Apple Silicon 的 ARM 架构实践,全程不搞黑苹果引导那套暴力方案,也不绕弯子,直接给你能抄作业的步骤。
这篇文章适合谁看?如果你是需要在 ARM 的 Mac 上做国产化软件适配的开发者,或者你所在的项目必须基于麒麟系统做信创环境的预研,又或者你只是想在 Mac 上临时跑一个 Linux 环境练手,都可以直接按这篇文章的思路走。我会把每一步背后的原因也讲清楚,比如为什么推荐 UTM 而不是 VMware Fusion,为什么磁盘镜像要用 RAW 而不是默认的 qcow2,以及 DM8 在 ARM 数据库里的初始化参数怎么调。读完之后你应该能自己独立装出一套能跑生产级 SQL 的虚拟化环境。
1. 整体方案设计与选型逻辑
1.1 为什么选 UTM 而不是 VMware Fusion 或 Parallels Desktop
M 系列芯片的 Mac 用户想跑 Linux 虚拟机,通常就三个选项:Parallels Desktop、VMware Fusion、UTM。Parallels 对 Windows 的支持做得确实好,但对 Linux 尤其是国产发行版的适配不一定及时;VMware Fusion 的 Apple Silicon 版本虽然是免费的,但它的虚拟机兼容性和 UTM 相比还是有一定差距。
真正让我死心塌地选 UTM 的原因是它对 QEMU 的封装非常贴近底层,你可以拿到接近原生的虚拟化能力,而且完全开源免费。UTM 在 Apple Silicon 上利用 Hypervisor.framework 做硬件加速,不是模拟器,所以性能损失很小。这一点和你在 Linux 上用 KVM 跑虚拟机的体验非常接近,跑达梦 DM8 这种对 CPU 指令集敏感的数据库时是不会出怪问题的。
另外 UTM 的虚拟硬盘管理很灵活,你可以自己创建一个 RAW 格式的空白镜像文件,再手动指定给虚拟机使用,这样后续扩容、备份、迁移都会方便很多。Parallels 和 VMware 的镜像管理虽然省心,但格式封闭,遇到问题反而难搞。
1.2 软件版本组合与镜像选择
先明确一点:你的 Mac 是 Apple Silicon(M1/M2/M3/M4 都可以),对应的虚拟机系统是 aarch64 架构。所以所有软件项目都必须选择对应的 ARM 版本,这是一个大前提。
我用的版本组合如下:
| 项目 | 版本选择 | 说明 |
|---|---|---|
| UTM | 4.x 以上版本 | 从官网或 App Store 安装,App Store 版可能有沙盒限制,建议直接去官网下 GitHub Release |
| 麒麟 V10 | 银河麒麟服务器操作系统 V10 SP3(aarch64) | 服务器版比桌面版更适合跑数据库,不要用 286 内核的旧镜像 |
| 达梦 DM8 | DM8 开发版(aarch64 架构) | 达梦官网下载中心有专门的 ARM 版安装包,x86 的包不能用 |
镜像这里特别提醒一下:麒麟的镜像分桌面版和服务器版,桌面版带 GUI 接近 Windows 的使用习惯,适合普通办公;服务器版则精简了很多 GUI 组件,运行更稳定,资源占用也更小。跑达梦数据库的话,我强烈建议用服务器版,因为数据库服务在纯命令行环境下运行反而更可靠,问题也更少。我最初图新鲜装了桌面版,后来跑 DM8 时由于图形组件占资源,性能测试数据确实不如服务器版好看。
1.3 方案的风险与替代路径
这套方案有一个潜在的风险:达梦 DM8 对 ARM 架构的支持是否足够完善。从实际经验来看,达梦官方确实提供了 aarch64 的安装包,主流的初始化、建库、启停、JDBC 连接都没问题。但如果你用的是比较老的 DM8 版本,安装时可能会碰到 glibc 版本不兼容的问题,这个在文章后面会专门讲。
替代方案的话,有两个:第一个是用 Docker 跑达梦的官方镜像,但达梦官方虽然提供了 Docker 镜像,对 ARM 的覆盖和更新并不总同步,而且生产环境大多还要求直接安装在操作系统上,所以镜像方案更适合临时测试;第二个是直接用 Parallels Desktop 跑 ARM 版麒麟,但 Parallels 的自动安装对麒麟这种专注国产环境的系统并不友好,手动配置有时会出现无法启动的问题,总体体验不如 UTM 可控。
2. 环境准备与 UTM 虚拟机配置
2.1 UTM 的安装方式
UTM 的安装主要有两种:Mac App Store 和官网 GitHub Release。
Mac App Store 版的 UTM 有一个特点:由于沙盒限制,程序本身运行权限相对严格,在某些场景下(比如使用自定义的 RAW 磁盘镜像)可能会遇到权限问题。我更推荐去 GitHub 的 releases 页面下载 Disk Image 版本,装完以后右键打开,拖进 Applications 文件夹就行。
下载 UTM 时注意确认下载的是UTM.dmg而不是源码包,装好后打开 UTM,界面上会有一个“新建虚拟机”的按钮,这就对了。
2.2 创建 ARM 版麒麟 V10 虚拟机
打开 UTM 之后,按照下面的步骤走:
- 点击“新建虚拟机”,选择“虚拟化”,这一步关键,因为只有虚拟化模式才能利用 Apple Silicon 的硬件加速能力;模拟模式(Emulation)虽然兼容性更好,但性能损失极大,跑 DM8 会慢到怀疑人生。
- 在“系统”选项卡里,架构保持默认的
aarch64,系统类型选择ARM64或Linux,内存建议分配 4GB 以上。你的 Mac 如果是 16GB 内存,我建议给虚拟机分配 8GB,数据库吃内存比较凶;如果是 8GB 内存的 Mac,保底也要 4GB。 - CPU 核心数根据 Mac 的芯片来定,M1 Pro/Max 可以给 6 核,M2 基础版给 4 核即可。给太多会导致宿主机卡顿,这点需注意。
- 在“网络”选项卡里,默认的
Bridged (桥接模式)模式比较好,这样虚拟机和宿主机在同一个局域网,外部访问数据库时会方便很多;如果只是本机调试,Shared (共享模式)也可以,但不方便在宿主机直接访问虚拟机的网络服务。 - 在存储配置里,UTM 会让你新建一个虚拟磁盘。这里注意,默认的 qcow2 格式并不差,但后续扩容和排查问题时比较麻烦。我建议先用磁盘工具创建好一个 RAW 格式的映像文件,比如
kylin_disk.img,大小直接给 60GB(虚拟磁盘不会立刻占满 60GB 物理空间,RAW 格式也会按需增长)。
创建 RAW 磁盘映像的具体命令在 macOS 终端里执行:
# 创建一个 60GB 的 RAW 格式磁盘映像 mkfile -n 60g ~/UTM/kylin_disk.imgmkfile -n是 macOS 自带的快速创建指定大小文件的命令,很快。然后在 UTM 的“存储”设置里,删除默认的虚拟磁盘,点击“新建”,选择“创建空白磁盘”,在“界面”里选VirtIO,驱动类型选Disk,然后手动浏览到你刚才创建的kylin_disk.img文件并加载进来。
为什么推荐 RAW 而不是 qcow2?核心原因是在安装麒麟 V10 和达梦时,如果你遇到磁盘空间不足或者分区表错误,RAW 格式可以直接用 macOS 上的磁盘工具或dd来做底层处理;而 qcow2 是 QEMU 的高级格式,虽然支持快照,但在 macOS 宿主上排查问题比较麻烦,还需要额外工具。简单说,RAW 是保底方案,跑生产任务时更省心。
2.3 加载麒麟 V10 安装镜像并设置启动引导
镜像是在“存储”设置里的“IDE 驱动器”加载的,这里加载的是你下载的麒麟 V10 服务器的 ISO 文件。前提是你已经有了 ISO 镜像,没有的话去麒麟官网注册申请下载,注意选择 aarch64 架构的服务器版。
开启虚拟机前,先调整一下启动参数,在 UTM 的“系统”设置里,找到“启动参数”,添加以下内容:
console=ttyS0这个参数的作用是让系统启动时在串口终端输出完整的引导信息,方便排查安装过程中可能出现的内核 panic 和驱动报错。虽然安装界面大多数时候是图形化的,但加上这一行,问题出现时你能拿到更详细的日志。
然后点击启动虚拟机,很快就能看到麒麟系统的安装界面。
3. 麒麟 V10 系统的安装配置
3.1 引导安装与分区方案
麒麟 V10 的安装引导界面其实和大多数 RHEL 系发行版很接近,这点对熟悉 CentOS 的用户比较友好。开机后会让你选择“安装系统”或“测试镜像并安装系统”,建议直接选“安装系统”,跳过镜像测试,节省时间。
分区方案这里重点说一下。达梦 DM8 是数据库软件,数据文件默认放在安装目录的数据子目录里,而且它的表空间、重做日志文件如果不合理规划,很容易把根分区塞满。所以磁盘分区时我建议:
| 挂载点 | 大小 | 说明 |
|---|---|---|
| / | 30GB | 系统和数据库程序文件 |
| /dmdata | 20GB | 达梦数据库的数据文件与日志文件 |
| swap | 4GB | 交换分区,内存不够时的兜底 |
| /boot | 1GB | 系统内核引导分区 |
这里最关键的是把/dmdata单独分出来,后续达梦安装时会直接把数据目录指到这里,避免和系统盘抢空间。如果你是新手,也可以让安装程序自动分区,但后续达梦的数据文件最好还是重新挂载到大分区下。我用的是手动分区,自定义布局,先创建/boot(1GB),再创建 LVM 或直接建物理分区给/(30GB),然后剩下的 20GB 给/dmdata,最后留 4GB 做 swap。
安装过程中会提示设置 root 密码,这个密码就是后续所有管理操作的通行证。麒麟服务器版默认是允许 root 登录的,安装完成后建议直接用 root 操作,避免权限问题。
3.2 软件源更新与基础依赖安装
系统安装完成后,第一次进系统可以先更新软件源。麒麟 V10 的软件源是基于麒麟自己的 yum 源服务器,默认开通了外网的话可以直接更新。
# 更新软件源缓存 yum makecache # 更新所有已安装软件(这里会花一些时间) yum update -y更新完成后,需要安装达梦 DM8 运行所需的依赖和工具:
# 安装基础编译工具和系统工具 yum install -y gcc make unzip tar vim net-tools这些工具看似基础,但在后续安装达梦时都有用处,unzip用来解压达梦的安装包,vim用来编辑配置文件,net-tools提供了ifconfig命令,检查网络时会用到。
还有一个非常关键的依赖:libaio。达梦数据库底层使用异步 I/O 比较多,没有这个库可能导致数据库启动时出现libaio.so.1相关报错。
# 安装 libaio yum install -y libaio如果你下载的达梦版本比较新,可能还需要libncurses.so.5或libtinfo.so.5,这两个库在较新的麒麟系统里默认不安装,可以这样处理:
yum install -y ncurses-libs但有些版本里包名不太一样,如果缺了再针对性解决,后面解决 DM8 初始化报错部分会细讲。
3.3 配置网络与主机名
麒麟默认安装完网络可能是 DHCP 分配或者没有自动连接。用ip a看看有没有拿到 IP。
ip a如果没有 IP,说明网卡没有启用,可以编辑网络配置文件:
# 查看网卡列表 nmcli device status # 启用某个网卡(假设叫 ens3) nmcli connection up ens3如果你希望固定IP,尤其是后续要远程访问数据库,建议修改配置文件:
vim /etc/sysconfig/network-scripts/ifcfg-ens3把BOOTPROTO改成static,加上IPADDR、NETMASK、GATEWAY这些参数,然后重启网络服务:
systemctl restart network如果用的是 NetworkManager,也可以更简单地用nmcli来实现固定 IP,这里不做展开。总之你要保证虚拟机和宿主机之间互通,这样在 Mac 上可以直接用ping测试虚拟机 IP,后续也可以用数据库客户端远程连接 DM8。
4. 达梦 DM8 安装前的准备
4.1 创建专用用户与目录
达梦官方推荐以非 root 用户安装数据库,这样更符合生产安全规范。虽然 root 用户也能装上,但后续启停服务时的权限管理容易混乱。所以我建议创建一个专门的管理用户:
# 创建用户 useradd -m -d /home/dmdba -s /bin/bash dmdba # 设置密码 passwd dmdba然后创建达梦安装目录和数据目录,并赋予 dmdba 权限:
mkdir -p /opt/dmdbms mkdir -p /dmdata chown -R dmdba:dmdba /opt/dmdbms chown -R dmdba:dmdba /dmdata4.2 修改系统资源限制
数据库软件对系统的进程数、打开文件数、信号量等资源都有要求。虽然麒麟的默认限制在轻量使用时问题不大,但跑达梦最好还是主动调高,否则后面并发访问一上来,数据库可能莫名其妙卡顿或崩溃。
编辑/etc/security/limits.conf,在文件末尾添加:
dmdba soft nofile 4096 dmdba hard nofile 65536 dmdba soft nproc 10240 dmdba hard nproc 10240 dmdba soft stack 10240 dmdba hard stack 32768这里nofile是文件描述符上限,nproc是进程数上限,stack是栈大小。加完后建议重启一次虚拟机让设置生效,或者运行ulimit -n确认是否生效。
4.3 达梦安装包解压与准备安装脚本
达梦官网下载的安装包通常是 ZIP 格式,比如dm8_20240722_x86_rh7_64.zip,注意你要下载的是 ARM 架构的版本,文件名里通常会带aarch64或者明确标注 ARM64。如果下载成了 x86 的包,安装时会出现Exec format error,这个错误一出现就说明架构不对,重新下载即可。
因为我推荐使用命令行静默安装,所以解压到 dmdba 用户的某个目录下:
mv dm8_*.zip /home/dmdba/ cd /home/dmdba unzip dm8_*.zip chown -R dmdba:dmdba /home/dmdba解压后你会得到一个DMInstall.bin的可执行文件,这就是达梦的安装程序。
4.4 环境变量准备
达梦安装后需要配置环境变量,才能方便地使用disql、dmrman等命令行工具。先在/home/dmdba/.bash_profile里写入:
export DM_HOME=/opt/dmdbms export PATH=$DM_HOME/bin:$PATH export LD_LIBRARY_PATH=$DM_HOME/bin:$LD_LIBRARY_PATH export JAVA_HOME=/opt/dmdbms/jdk export PATH=$JAVA_HOME/bin:$PATH这里DM_HOME指向达梦的安装根目录,JAVA_HOME是因为达梦自带了 JMX 管理器等 Java 组件,配置好之后后续用manager图形工具时会方便很多。
然后让环境变量生效:
source ~/.bash_profile5. 达梦 DM8 的安装与初始化
5.1 命令行安装 DM8(免图形化)
我在实际部署中遇到的第一个坑就是:麒麟服务器版默认没有装图形桌面,直接运行./DMInstall.bin会提示缺少 GTK 或 X11 相关的库,然后整个安装进程就卡死了。这时候最简单的办法是命令行安装,达梦默认支持。
以 dmdba 用户运行安装程序:
# 切换到 dmdba 用户 su - dmdba # 运行安装程序,进入命令行安装模式 ./DMInstall.bin -i命令行交互模式会问你一系列问题,核心选项如下:
| 提示 | 选择/输入 |
|---|---|
| 请选择安装语言 | 1(简体中文) |
| 是否输入 Key 文件路径 | n(跳过) |
| 选择安装类型 | 1(典型安装) |
| 请选择安装目录 | /opt/dmdbms |
| 是否初始化数据库 | y(是) |
如果你是首次安装,建议选典型安装。典型安装会带着客户端工具和 JDK 等组件一起装,省心。
安装过程会输出日志并提示你安装完成,之后需要对数据库进行初始化。
5.2 配置 DM8 数据库实例
数据库安装完成后,还需要初始化一个实例。达梦用dminit工具来初始化实例,这是和 Oracle 的dbca类似的过程,但更轻量。
使用 dmdba 用户执行:
# 创建初始数据库,指定实例名和数据目录 /opt/dmdbms/bin/dminit PATH=/dmdata PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=1 CHARSET=1 PORT_NUM=5237这些参数解释一下:
PATH:数据文件的目录,就是我们专门分出来的/dmdata,这样数据文件和数据库安装目录分离,万一系统盘满了也不影响数据。PAGE_SIZE:页大小,达梦可选 8、16、32(单位 KB)。对 OLTP 场景建议 16 或 32,对 OLAP 型的大 SQL 建议 32。我选 32,是因为 DM8 的数据仓库类查询较多时,大页能减少缓冲池的换页频率。EXTENT_SIZE:每次分配空间的大小,单位是页。一般用 32 即可,即每次分配 32 个页。CASE_SENSITIVE:标识符大小写是否敏感。1 代表敏感,0 代表不敏感。如果你之前用的是 Oracle,建议设 1,这样和 Oracle 的默认行为一致;如果从 MySQL 迁过来,建议设 0,避免表名大小写引发复杂问题。CHARSET:字符集,1 代表 UTF-8,0 代表 GB18030。国内项目统一用 UTF-8 更合适。PORT_NUM:达梦的默认端口是 5236,如果要避开冲突或者是企业内部规范要求,可以改,我这里改成5237也是可以的,记得后续连接时别搞混。
执行dminit的过程大约持续 1-2 分钟,中间会输出实例名、数据库名等信息,记住输出里的实例名(一般是DMSERVER),后续启动服务要用。
5.3 注册数据库服务
达梦安装时会提供一个服务注册脚本,可以帮你把数据库注册成系统服务,方便开机自启,也可以用systemctl来管理。
# 切换到 root 用户执行注册脚本 cd /opt/dmdbms/script/root ./dm_service_installer.sh -t dmserver -dm_ini /dmdata/DAMENG/dm.ini -p DMSERVER这里-t dmserver是服务类型,-dm_ini指定初始化后生成的dm.ini配置文件路径,-p DMSERVER是服务名后缀。注册完成后,用 systemctl 可以这样操作:
# 启动达梦服务 systemctl start DmServiceDMSERVER # 设置开机自启 systemctl enable DmServiceDMSERVER # 查看服务状态 systemctl status DmServiceDMSERVER服务启动之后,用disql连接数据库验证一下:
# 使用 dmdba 用户连接数据库,默认用户名 sysdba su - dmdba disql SYSDBA/SYSDBA@localhost:5237如果出现SQL>提示符,说明数据库已经正常工作了。
6. 客户端连接与常见配置
6.1 远程连接数据库的配置
Mac 上用数据库客户端(比如 DBeaver、DataGrip)连接虚拟机的 DM8 时,需要在虚拟机里调整几个地方:
第一,达梦服务默认监听的地址是localhost,外部无法访问。修改/dmdata/DAMENG/dm.ini,找到LISTEN_ADDR配置项,改成0.0.0.0表示监听所有网卡,或者指定虚拟机的 IP。
LISTEN_ADDR = 0.0.0.0 PORT_NUM = 5237第二,确认防火墙已经放行端口。麒麟 V10 默认可能装了firewalld,检查一下:
# 查看防火墙状态 firewall-cmd --state # 如果开着,放行 5237 端口 firewall-cmd --permanent --add-port=5237/tcp firewall-cmd --reload第三,确认达梦服务的dm.ini配置里有SQL_LOG_FORBID等安全类的配置不会拦截远程连接。默认配置一般没这么严格,但如果你改过安全策略,需要注意。
6.2 JDBC 驱动和客户端连接串
如果你的项目是 Java Web 应用,连接达梦需要专用的 JDBC 驱动。达梦的 JDBC 驱动在安装路径下就有,不需要额外下载:
# 查找 JDBC 驱动 find /opt/dmdbms -name "DmJdbcDriver*.jar"找到之后拷贝到你的应用 lib 目录下,连接串格式一般是:
jdbc:dm://192.168.1.100:5237用户名SYSDBA,密码为初始化时设置的密码(默认SYSDBA,如果没改的话)。用 DBeaver 连接时,数据库类型选择 “DM” 或 “达梦”,如果版本较老没有内置达梦驱动,选择 Generic JDBC 并手动指定驱动类dm.jdbc.driver.DmDriver也可以,DBeaver 新版通常直接有 DM 驱动管理器了。
6.3 性能初调
达梦安装好之后默认配置偏向保守,适合测试和轻量使用。如果你要把它当作日常开发库,我建议按下面的思路做简单调优:
在/dmdata/DAMENG/dm.ini中调整以下参数:
| 参数 | 默认值 | 建议值 | 说明 |
|---|---|---|---|
| BUFFER_POOL_SIZE | 100(单位 MB) | 512MB 或更大 | 数据页缓存池,数据库内存使用的核心 |
| CACHE_POOL_SIZE | 20 | 64 | 通用缓存池大小 |
| MAX_OS_MEMORY | 约物理内存的 80% | 4GB 或以上 | 达梦最多使用的操作系统内存 |
| MAX_SESSIONS | 100 | 500 | 最大会话数 |
改完这些参数后需要重启数据库服务生效:
systemctl restart DmServiceDMSERVER注意,MAX_OS_MEMORY不是越大越好,因为虚拟机本身也依赖宿主机的内存,分配太多可能导致宿主机卡顿。我建议虚拟机的内存有 8GB 时,MAX_OS_MEMORY给 6GB 左右,给操作系统和其他进程留 2GB 富余。如果你是 4GB 内存的虚拟机,那数据库内存别超过 2.5GB。
7. 常见问题与排查技巧实录
7.1 UTM 启动虚拟机黑屏或无法引导
这个问题在初次配置时经常出现,主要原因是 UTM 的启动参数里没有指定正确的固件或没有启用 UEFI 启动。解决方法是:
在 UTM 虚拟机设置中,找到“系统”选项卡,勾选UEFI Boot,然后确认磁盘驱动类型是VirtIO,ISO 镜像驱动是IDE或SATA。如果还是黑屏,尝试在启动参数里追加:
console=ttyS0 earlyprintk=serial这样可以看到内核输出,定位卡在哪一步。如果卡在引导加载程序,那多半是 ISO 镜像没有正确挂载到 IDE 接口。
7.2 麒麟 V10 安装时报missing required package或崩溃
这类问题多为 ISO 镜像损坏或者架构不匹配。ARM 版麒麟的 ISO 文件名里会包含aarch64,x86 版则包含x86_64。检查一下你下载的文件名和实际机器的架构,在 UTM 里确保系统架构是aarch64(Apple Silicon 的默认值),而不是x86_64。
另外,如果你从别的地方拷贝的 ISO,建议核对一下 SHA256 校验值。麒麟官网下载页面会提供校验码,用 macOS 内置的shasum -a 256 文件.iso对比一下就行。
7.3 达梦安装时报libncurses.so.5: cannot open shared object file
麒麟 V10 SP3 默认会提供ncurses-libs,但里面的版本可能是libncurses.so.6,而达梦安装程序需要.so.5。解决办法有两种:
第一种,安装兼容库:
yum install -y ncurses-compat-libs第二种,手动创建软链接:
ln -s /usr/lib64/libncurses.so.6 /usr/lib64/libncurses.so.5 ln -s /usr/lib64/libtinfo.so.6 /usr/lib64/libtinfo.so.5软链接的方式不优雅但有效,建议优先尝试第一种。
7.4 达梦启动时报PID文件无法创建或权限不足
这种问题几乎都是dmdba用户和数据目录的权限不匹配导致。确认一下:
ls -ld /dmdata ls -ld /opt/dmdbms这两个目录的用户和用户组都应该是dmdba。如果不对,执行:
chown -R dmdba:dmdba /dmdata chown -R dmdba:dmdba /opt/dmdbms chown -R dmdba:dmdba /dmdata/DAMENG另外,服务启动脚本如果是通过 root 运行的,要注意注册服务时指定的dm.ini路径是不是 dmdba 有读写权限。用 root 启动达梦偶尔会因为环境变量缺失而失败,推荐始终用 dmdba 配合 systemd 服务启动。
7.5 设置开机自启后无法正常启动
开机自启失败的常见原因是dm.ini或系统服务脚本里引用了未挂载的目录。由于我们将/dmdata作为独立分区,如果/etc/fstab里没有写明挂载参数,开机时/dmdata可能没有自动挂载成功,导致达梦找不到数据文件。
检查方法:
df -h | grep dmdata如果发现/dmdata没有挂载,打开/etc/fstab,添加一行:
/dev/mapper/xxx /dmdata ext4 defaults 0 0具体设备名通过lsblk查看,然后重新挂载:
mount -a之后重启虚拟机,再确认达梦是否自动启动。
8. 我的最终体会与一个额外建议
整套环境从零搭建到跑通,最费时间的其实不是安装过程本身,而是识别和适配各种报错信息。UVM 的虚拟化设置、麒麟的软件源、达梦自身的权限模型,每一个环节都可能出现文档之外的意外。但当你把整个链路趟平之后,这套环境会变得非常顺手,它扎根在 Apple Silicon 的硬件虚拟化之上,性能足够稳定,快照功能还能随你折腾用于实验。
最后再分享一个好用的扩展思路:装完达梦之后,建议顺手在麒麟虚拟机里装一个docker-ce的 ARM 版,这样以后跑微服务或者中间件可以直接用容器,省掉很多依赖冲突的麻烦。我用了一周之后,现在 Mac 上的日常开发基本都在这套 UTM 虚拟机里进行,达梦作为测试数据库,配合 IDE 使用非常稳定。如果你准备长期使用,也给虚拟机配置了定时快照,每次升级内核或改配置前先拍个快照,出了问题一键回滚,比自己复盘踩坑要高效得多。