Mac M1安装ubuntu踩坑记录(含Booting a command list和EFI stub等报错卡住与解决方法)

黑屏和Booting a command list卡住

如果出现黑屏情况

按e进入grub界面

修改quiet --- ,删除---在其后面添加nomodeset,然后按esc按键继续安装

如果还是黑屏,在nomodeset 后面再加acpi=off noapic,这时应该部分人可以继续

如果长时间出现Booting a command list换个版本,比如我在Mac M1安装ubuntu-22.04-live-server-arm64就会黑屏或Booting a command list,换了ubuntu-22.04.5-live-server-arm64就可以继续

ubuntu-22.04.5-live-server-arm64 下载链接:https://cdimage.ubuntu.com/releases/22.04/release/ubuntu-22.04.5-live-server-arm64.iso

过一会成功进入界面

其他步骤基本按默认,可参考其他教程,到这里已经安装ubuntu服务器,选择Reboot Now重启

温馨提醒:mac的Vmware里释放鼠标/键盘回到宿主机需要按Command + Control,而win是按Ctrl + Alt释放鼠标/键盘

Failed unmounting /cdrom报错与EFI stub卡住

如果卡在Failed unmounting /cdrom

点击设置的CD/DVD

如果连接CD/DVD驱动器选项打勾,则去除

否则继续按回车,如果不幸,长时间出现如下情况

重来,在安装ubuntu完成这一步的时候关掉网络

继续,如果出现,选择restart the installer

继续执行前面步骤,再按reboot now

EFI stub会快速闪过,然后执行到这个时候开网络

成功进入,继续按回车

输入用户名和密码,完成登录,如果需要安装图形界面可选执行sudo apt-get install -y ubuntu-desktop

ubuntu-desktop安装问题及网络连接失败

如果出现没有找到ubuntu-desktop下载包

可选确认源有没有问题

正常情况下执行sudo apt update刷新软件列表,然后执行sudo apt upgrade再次执行sudo apt-get install -y ubuntu-desktop就能完成,但如果在执行sudo apt update出现这种情况疑似网络问题

执行ping -c 3 8.8.8.8 测试是否能 ping 通外网 IP,能通说明是DNS 问题,而下面没有连通,说明没有网络连接

执行ip addr查看所有网络接口状态,再ip route查看路由表

诊断结果

项目 状态 说明
lo (回环) ✅ UP 本地回环正常
ens160 (网卡,请以实际为准) DOWN 网卡被禁用/未启动
ip route 没有路由表,因为网卡没启用

根本原因:物理网卡 ens160 处于 DOWN 状态,没有获取到 IP 地址。

执行sudo ip link set ens160 up,ens160 应该换成你的网卡名,下同。

然后执行ip addr

以下结果说明网卡已经启用了,但没有获取到 IPv4 地址 ,只有一个 fe80:: 开头的 IPv6 本地链路地址。

这说明:

  • 网卡物理层正常(state UP

  • 但 DHCP 没有成功分配到 IP

执行sudo dhclient ens160尝试手动获取 IP

再次执行ip addr检查,结果说明ens160 获取到了 IP 192.168.xx.xx/24

为了避免每次重启后网卡不会自动启用,需要手动 sudo ip link set ens160 upsudo dhclient ens160,配置开机自动启用网卡并获取 IP

配置开机自动启用网卡并获取 IP及YAML语法报错

执行sudo nano /etc/netplan/00-installer-config.yaml,参考以下内容配置Netplan,再次提醒ens160应该换成你的网卡名,另外建议切换输入法是英文,还需要注意YAML语法强制要求的**key: value 格式中,冒号后必须有空格,比如version: 2正确而version:2是错的**

bash 复制代码
network:
  version: 2
  ethernets:
    ens160:
      dhcp4: true
      optional: true

按ctrl+o写入

按下enter,然后再按ctrl+x退出

执行sudo netplan apply保存应用,如果出现这种情况,说明可能用了 Tab或缩进不规范或者冒号有值情况下没有在值前加空格

如果出现这种情况,是成功应用了,但警告文件权限开放(不影响功能,可选执行sudo chmod 600 /etc/netplan/00-installer-config.yaml)和Open vSwitch未运行(可以忽略)

执行ping -c 3 baidu.com测试能否连通百度,这说明能连通外网

继续安装图形界面

执行sudo apt update刷新软件列表,然后执行sudo apt upgrade所有已安装的软件包升级到最新版本

部分升级过程,出现提问默认按y即可

提示内核已升级,但当前运行的还是旧内核,需要重启才能用新内核,按回车继续完成安装

继续回车,执行sudo apt-get install -y ubuntu-desktop

安装ubuntu桌面中

如果前面出现过没断网会卡在EFI stub,这一步需要断网执行sudo reboot重启,否则大概率还是卡在EFI stub(出现了得重来...),之前没出现则直接sudo reboot

至此,成功完成图形界面安装

根分区不足,与实际设置不一致

可以看到明明设置了40g,但系统显示的磁盘仅给了10g左右,剩余的约 30GB 空间在物理卷(PV)层面,但**没有被分配到逻辑卷(LV)**中,VMware里把虚拟磁盘从 20GB 调大到 40GB,但系统内的分区表没有随之更新

执行sudo lvextend -l +100%FREE -r /dev/mapper/ubuntu--vg-ubuntu--lv,再执行free -h,可以看出磁盘空间有所增加,但整体仍然未接近40g

执行sudo parted /dev/nvme0n1 print修复根分区表

执行sudo pvresize /dev/nvme0n1p3再执行sudo lvextend -l +100%FREE -r /dev/mapper/ubuntu--vg-ubuntu--lv,整体接近40g

分析

LVM 的三层结构:物理卷(PV)→ 卷组(VG)→ 逻辑卷(LV)。

复制代码
┌─────────────────────────────────────┐
│           虚拟磁盘 40GB               │
│  ┌─────────────────────────────┐    │
│  │  物理卷 (PV) /dev/nvme0n1p3 │    │
│  │  ┌─────────────────────┐   │    │
│  │  │   卷组 (VG) ubuntu-vg │   │    │
│  │  │  ┌─────────────────┐ │   │    │
│  │  │  │ 逻辑卷 (LV)      │ │   │    │
│  │  │  │ ubuntu-lv 17GB  │ │   │    │
│  │  │  └─────────────────┘ │   │    │
│  │  │   (剩余 0GB 空闲)    │   │    │
│  │  └─────────────────────┘   │    │
│  │  (剩余 20GB 未识别)        │    │
│  └─────────────────────────────┘    │
└─────────────────────────────────────┘

之前为什么只扩到 17GB?

第一次执行 lvextend 时:

  • 物理卷 /dev/nvme0n1p3 只有 17.3GB(因为 GPT 分区表没更新)

  • 卷组 ubuntu-vg 的总空间 = 物理卷大小 = 17.3GB

  • 逻辑卷已经占了 17.3GB,卷组里没有剩余空间

  • +100%FREE 只能加到 0,所以没变化

这次为什么能到 37GB?

执行 pvresize 后:

  • parted print 先修复了 GPT 表,让系统识别到 nvme0n1p3 实际有 40GB

  • pvresize物理卷从 17.3GB 扩展到 40GB

  • 卷组 ubuntu-vg 跟着变成 40GB

  • 此时卷组里有 40 - 17.3 = 22.7GB 剩余空间

  • lvextend -l +100%FREE 把这 22.7GB 全部分配给逻辑卷

  • 最终逻辑卷从 17.3GB → 37.3GB(40GB 减去少量 LVM 元数据开销)

简化的理解

步骤 作用 之前的状态 之后的状态
parted print 修复 GPT 分区表 分区表认为 p3 只有 17GB 分区表正确识别 p3 为 40GB
pvresize 扩展物理卷 PV = 17GB PV = 40GB
lvextend 扩展逻辑卷 LV = 17GB, VG 无剩余 LV = 37GB, 用了 VG 全部剩余

lvextend 只能分配卷组里已有的空闲空间,如果卷组本身没有空间(因为物理卷只有 17GB),它也无能为力。必须先让物理卷变大,卷组才有空间可分配。

无法复制宿主机的内容到ubuntu

如果无法粘贴宿主机复制的内容,则可以通过执行sudo apt install open-vm-tools open-vm-tools-desktop后重启

参考教程:

1.ubuntu22.04+5060显卡双系统安装,各种黑屏踩坑记录_nomodeset acpi=off noapic-CSDN博客

https://blog.csdn.net/qq_61133322/article/details/149222506

2.mac pro M1(ARM)安装:ubuntu虚拟机(四)_mac安装ubuntu虚拟机-CSDN博客

https://blog.csdn.net/qq_24950043/article/details/123764210

创作不易,禁止抄袭,转载请附上原文链接及标题