我的设备系统版本、遇到的问题和解决:
Mac:macOS Ventura 13.3
Ubuntu:22.04.3
问题:
按照这个教程在【3.3.10】修改完启动项后,Mac系统无法启动,Ubuntu可以正常启动。
原因:
Mac找不到启动引导了,所以无法启动。
解决:
开机时按住 Command + R 进入安全模式,在左上角选择启动盘,选择Mac的硬盘即可。
装机有风险,请务必先把电脑里面的重要资料备份好。我用的是Apple自带的Time Machine。插入大容量储存设备(例如250G以上的U盘或者移动硬盘)时,系统会弹出“是否用此设备备份Time machine”的提示信息,按照上面的提示操作即可。读者也可以按照自己习惯的方式备份,但记住,一定要先备份资料!!
笔者安装的时候参考了网络上许多不同的教程,失败了很多次,最后主要是根据Floris van Breugel的教程成功安装了(感谢大神),原教程在这里,感兴趣的朋友可以自己点开来看。本教程在原教程的基础上,按照我碰到的其它问题稍作修改。
注意2和3必须是两个不一样的设备,不可以是一个设备里面的不同分区,不然安装Ubuntu的时候会提示分区失败。
在Macbook上把Ubuntu安装到移动硬盘里主要分为以下三个步骤:
话不多说,我们开始吧!
2. 选择新插入的移动硬盘(千万不要选错了你Macbook的硬盘)
3. 点击Erase,并按照图中设置选项:
4. 再次选中你的移动硬盘,点击Partition。按照图中的设置划分一个128MB以上的区域作为Ubuntu的boot loader。在这里我设置了256MB的空间:
5. 点击Apply,然后点击Partition。
6. 完成后是下图这个样子的,有两个分区,分别是EmptyDisk和UbuntuBootLoader。我们将把系统装在EmptyDisk里面(见步骤【2】),留出UbuntuBootLoader安装开机启动项(见步骤【3】)。
7. 弹出移动硬盘并从Mac中拔出。【1.1】完成。
4. 打开Etcher,选择下载好的Ubuntu镜像和用来安装Ubuntu镜像的USB。注意看Target name和size,不要选错了Mac的硬盘(如果你选了一个大容量的存储设备的话Etcher会提醒你的,此时就要注意检查)。
5. 点击Flash!,等待完成。完成后Etcher会提示成功烧录,此时你有可能看到Mac弹出USB不可读的提示信息,先不用管它,什么都不要点。打开Terminal,输入diskutil list
看哪个是你的USB。然后在Terminal输入diskutil eject /dev/diskN
把diskN换成和USB对应的盘。
6. 成功弹出USB以后,点击ignore。【1.2】完成。
这个时候你可以顺便查看一下自己电脑RAM的大小(点击屏幕左上角的苹果,选择About This Mac)。这个在后面给Ubuntu设置Swap Space的时候会用到。我的是8GB。
(步骤【2】安装过程中的截图我可能在格式化U盘的时候不小心清除了,所以用的大部分是原教程里面的图和加上了自己的注释。)
3. 进入菜单后选择第一个选项"Try Ubuntu withou Installing"
2. 在GParted中,点击右上角的方框选择你的移动硬盘(再次注意不要选错了你的Mac硬盘)。把移动硬盘中,除了UbuntuBootLoader以外的所有分区都删掉。例如说,我要删掉的分区就有一个标记着EFI的fat32格式分区,还有一个标记着EmptyDrive的hfs+格式分区。要删除一个分区,鼠标点击该分区,然后点左上方的红色圆圈斜杠图标,该分区就会出现在等待删除的序列中。
sudo umount /dev/sdNk
(把sdNk换成你要卸载的文件系统对应的位置,例如此处可以是sudo umount /dev/sdd2
。如果你不知道它的位置的话,可以在GParted最左边一列Partition中看到,或者输入指令lsblk
查看)。3. 选择好所有要删除的分区后,点击上方绿色的钩,实施操作
4. 分区删除后,你的移动硬盘就只剩下UbuntuBootLoader和一个unallocated的区域。下面我们来新增两个分区(点击Partition -> new,填好设置后点Add):
5. 点击上方绿色的钩,应用更改
6. 记住Root分区的分区名(Partition),例如说/dev/sdd2
7. 关掉GParted
注: 想尝试其它分区模式的朋友,可以参考这篇知乎专栏文章,里面有更详细的解释。
5. 因为要安装在移动硬盘上,所以要选择Something else:
6. 找到你刚才设置的ext4格式的分区(检查一下分区名和空间大小是对的),点它。
7. 选择Change,然后按下图设置:
8. 在下方"Device for boot loader installation",选这一个ext4格式的分区(注意不要选了整个/dev/sdd,因为我们还要留下一个UbuntuBootLoader的区域在下一步安装启动项)。例如此处选择的是/dev/sdd2
9. 点击Install now开始安装,等个大概10~20分钟。
10. 安装结束后,选择Continue testing,我们要继续设置开机启动项。
现在Ubuntu已经装到移动硬盘里面啦~但是开机的时候它不会出现,因为Mac要识别这个为bootable的话,它还需要一个EFI boot loader。所以我们要在Ubuntu里面创建一个boot.efi文件。
sudo mount /dev/sdNk /mnt
3. 然后输入以下指令,挂载几个其它的路径:
for i in /dev /dev/pts /proc /sys /run; do sudo mount -B i; done
4. 把root路径改成/mnt,这样Terminal的bash session就是在Ubuntu里面运行了:
sudo chroot /mnt
5. 设置GNU GRUB(GRand Unified Bootloader):
grub-mkconfig -o boot/grub/grub.cfg
6. 把它保存到一个boot.efi文件中:
grub-mkstandalone -o boot.efi -d usr/lib/grub/x86_64-efi -O x86_64-efi --compress=xz boot/grub/grub.cfg
7. 退出:
exit
8. 所有的指令如下图:
9. 把boot.efi文件拷贝到这个Ubuntu的live session中:
cp /mnt/boot.efi /home/ubuntu
10. 然后在home文件夹下找到boot.efi文件,通过邮件发送给自己,或者保存在你的云盘上
11. 点屏幕右上角的齿轮状图标,关闭Ubuntu。此时电脑会提示让你拔出装机的USB(就是烧录了镜像的USB,不是你的移动硬盘!)。拔除之后摁回车就可以。
如果你的Mac系统是El Capitan(10.11)或以上(一般都是,毕竟现在都出到Big Sur(11.X)了),Mac系统有额外的安全设置SIP(System Integrity Protection),我们需要先关掉它。
2. 屏幕上方,点击Utilities -> Terminal
3. 在Terminal里面输入:
csrutil disable
4. 摁回车,然后点Restart重启电脑。
注:重启时如果看到写着grub的黑色屏幕,输入exit然后摁回车就好
cd /Volumes/UbuntuBootLoader/
3. 把下面四行命令一行一行地输进去:
sudo mkdir System mach kernel
cd System
sudo mkdir -p Library/CoreServices
cd Library/CoreServices
4. 从邮件/云盘上把你刚才保存的boot.efi文件下载下来,放在/Downloads文件夹
5. 回到Terminal中输入以下指令:
sudo cp ~/Downloads/boot.efi ./
6. 现在我们要创建SystemVersion.plist文件,可以点击这个链接下载到/Downloads,如果链接打不开的话,我会把文件以附件形式上传。
7. 回到刚才的Terminal,把下载下来的plist文件保存到存放boot.efi的路径(/Volumes/UbuntuBootLoader/System/Library/CoreServices):
sudo cp ~/Downloads/SystemVersion.plist ./
8. 所有的指令如下图:
9. 打开Disk Utility(Go -> Utilities -> Disk Utility),查看你的UbuntuBootLoader的设备编号。或者你也可以在Terminal输入disktutil list
查看。在我的是disk2s3。
10. 最后一步,在Terminal中输入:
sudo bless --device /dev/diskNsK --setBoot
把diskNsK换成第10步中查到的设备编号。
和【3.2】一样,把csrutil disable
换成csrutil enable
即可。
恭喜你,完成所有安装啦!以后只要不插入移动硬盘,开机的时候就会自动导入到MacOS中。要进入Linux系统,只需插入了移动硬盘后,在开机的同时摁住Option键进入boot manager,然后选择Ubuntu系统就好。开玩~
Q1. 开机出现grub的提示?
输入exit,然后摁回车。
如果想一劳永逸地解决这个问题,进入MacOS以后,点左上方的苹果,选择System Preferences -> Startup Disk。进去之后点左下角的锁解锁,然后选择你的Macintosh。重启之后就再也不会见到grub了。