Files
cyy_othermind/零碎的知识/mac安装ubuntu.md
2026-06-16 22:44:49 +08:00

170 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
好的,我们来把整个过程中的问题点和最终解决方案做一个清晰的总结,方便你日后参考。
---
## 📋 完整问题回顾与解决总结
### 一、环境背景
- **宿主机**M4 芯片 MacARM64 架构)
- **虚拟机软件**UTM
- **虚拟机系统**Ubuntu 22.04.5 LTSARM64 架构)
- **目标**:配置宿主机与 Ubuntu 虚拟机的共享文件夹
---
### 二、问题与解决过程全记录
#### 阶段1获取 ARM64 镜像
**问题**:在清华镜像站 `ubuntu-releases/22.04.5/` 只看到 `amd64` 镜像,找不到 `arm64`
**原因**`amd64``arm64` 镜像分开放置:
- `amd64``ubuntu-releases/`
- `arm64``ubuntu-ports/``ubuntu-cdimage/`
**解决方案**
- **下载安装镜像**:前往 `https://mirrors.tuna.tsinghua.edu.cn/ubuntu-cdimage/releases/22.04.5/release/`,选择 `ubuntu-22.04.5-live-server-arm64.iso`(标准版,支持 ≤64GB 内存)。
- **配置 APT 软件源**:使用 `http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/` 作为 `jammy` 的软件源地址。
---
#### 阶段2尝试 VirtIO-FS 共享(失败)
**问题**:执行 `sudo mount -t virtiofs share ~/shared` 报错:
```
mount: /home/cyy/shared: wrong fs type, bad option, bad superblock on share...
```
**排查过程**
1. 尝试安装 `virtiofsd``sudo apt install virtiofsd` 提示 `E: Unable to locate package virtiofsd`
2. 启用 `universe` 仓库后仍找不到该包。
**结论**`virtiofsd` 在 Ubuntu 22.04 ARM64 架构的软件源中**不存在**`virtiofs` 方案在 ARM64 上不可用。
---
#### 阶段3改用 SPICE WebDAV 共享(成功)
**最终方案**:使用 UTM 推荐的 **SPICE WebDAV** 方式。
**步骤**
1. **在 Ubuntu 中安装 WebDAV 相关软件包**
```bash
sudo apt update
sudo apt install spice-vdagent spice-webdavd davfs2
```
2. **在 UTM 中启用 WebDAV**(虚拟机需关机状态):
- 编辑虚拟机 → “共享”选项卡
- 确保 “SPICE WebDAV” 已启用
- 添加要共享的 macOS 文件夹
3. **在 Ubuntu 中挂载**
```bash
# 创建挂载点
mkdir -p ~/shared
# 挂载(关键:使用 uid/gid 指定用户权限,并跳过认证)
sudo mount -t davfs http://127.0.0.1:9843 ~/shared -o uid=1000,gid=1000
```
**⚠️ 注意**:提示 `Username:` 和 `Password:` 时,**直接按回车跳过**,不要输入任何内容。
---
#### 阶段4解决权限问题Permission denied
**问题表现**
- 挂载后只能以 `root` 写入,普通用户 `cyy` 无法创建文件。
- 执行 `touch ~/shared/test.txt` 报 `Permission denied`。
**原因**
- 挂载时未指定 `uid`/`gid`,默认以 `root` 身份挂载。
- 用户输入了认证信息(`cyy`/密码),导致挂载状态异常。
**解决方案**
1. **卸载时确保不在挂载目录内**
```bash
cd ~
sudo umount ~/shared
```
如果提示 `target is busy`,使用惰性卸载:
```bash
sudo umount -l ~/shared
```
2. **重新挂载并指定用户权限**
```bash
sudo mount -t davfs http://127.0.0.1:9843 ~/shared -o uid=1000,gid=1000
```
**认证环节必须直接回车跳过**。
3. **验证**
```bash
touch ~/shared/test.txt
ls -l ~/shared
```
---
#### 阶段5配置文件语法错误排查
**问题**:修改 `/etc/davfs2/davfs2.conf` 后挂载报错:
```
/sbin/mount.davfs: /etc/davfs2/davfs2.conf:78: unknown option
```
**原因**`davfs2` 的全局配置文件不支持 `uid`/`gid` 选项(某些版本限制)。
**解决方案**
- **方式一**(推荐):注释掉配置文件中添加的 `uid`/`gid` 行,改用**命令行参数**指定:
```bash
sudo sed -i '78,79s/^/#/' /etc/davfs2/davfs2.conf
```
- **方式二**:将 `uid`/`gid` 写入 `/etc/fstab`(见下文永久挂载方案)。
---
### 三、最终稳定方案总结
#### ✅ 每次手动挂载(已验证)
```bash
cd ~ # 先退出挂载目录
sudo umount ~/shared # 如果已挂载,先卸载
sudo mount -t davfs http://127.0.0.1:9843 ~/shared -o uid=1000,gid=1000
# 遇到 Username/Password 提示时,直接按 Enter 跳过
```
#### ✅ 永久挂载(推荐)
编辑 `/etc/fstab`,添加一行:
```
https://127.0.0.1:9843 /home/cyy/shared davfs rw,noauto,user,uid=1000,gid=1000 0 0
```
之后每次挂载只需:
```bash
mount ~/shared
```
无需 `sudo`,无认证提示,权限自动生效。
---
### 四、关键经验与避坑指南
| 问题 | 原因 | 正确做法 |
|------|------|----------|
| 找不到 `arm64` 镜像 | 镜像分开放置 | 去 `ubuntu-cdimage` 或 `ubuntu-ports` 找 |
| `virtiofsd` 无法安装 | ARM64 软件源无此包 | 放弃 `virtiofs`,改用 SPICE WebDAV |
| 挂载后无法写入 | 未指定 `uid`/`gid` | 挂载时用 `-o uid=1000,gid=1000` |
| 认证弹窗干扰 | 输入了用户名/密码 | **直接回车跳过**(本地服务无需认证) |
| 卸载提示 `busy` | 终端在挂载目录内 | 先 `cd ~`,再 `umount` |
| 配置文件报错 | `davfs2.conf` 不支持 `uid`/`gid` | 注释掉,改用命令行或 `/etc/fstab` |
---
### 五、最终环境状态
- ✅ UTM 虚拟机运行 Ubuntu 22.04.5 ARM64
- ✅ SPICE WebDAV 共享文件夹正常工作
- ✅ 普通用户 `cyy` 可读写共享目录
- ✅ 可选用 `fstab` 自动挂载方案
---
如果你后续需要配置 YOLOv8 环境或其他开发工具,这份总结可以作为你的基础环境配置文档。有问题随时再问! 🚀