以下主要目的是记录安装过程中的问题,安装步骤等信息怕忘记
环境信息:
Mac :macOS High Sierra 10.13.6 内存8G(Swap时用到)
Ubuntu: ubuntu-22.04.4-desktop-amd64.ios
金士顿U盘:Kingston-64G
烧录软件:balenaEtcher-1.18.11
固态移动硬盘:西部数据512G
注意项:
1.装机有风险,请先备份电脑里的资料。具体不在赘述,可看原著温馨提示。
2.U盘大于2G以上的,质量好的(博主说的),否则在烧录过程中会失败(烧录失败2个U盘)。
转载原文如下:
如何在Macbook上把Ubuntu安装到移动硬盘里 - 知乎
如何在Macbook上把Ubuntu安装到移动硬盘里-CSDN
具体步骤
1.格式化移动硬盘并分区
2.烧录Ubuntu镜像到U盘
3.U盘安装Ubuntu到移动硬盘
4.设置开机启动
格式化移动硬盘并分区
- 插入移动硬盘,打开磁盘工具
- 选择新插入的移动硬盘(千万不要选错了你Macbook的硬盘)
- 未分区硬盘路径是如下(借用原著的图)
- 如果不一样,点左上角显示所有设备。如下是制作完毕的盘
- 选中外置硬盘->抹掉(格式化) EmptyDisk
- 再次选中你的移动硬盘,制作Ubuntu的boot loader。点击分区UbuntuBootLoader这里多分配一些,根据实际情况分配。原著分配了256MB,点击应用
- 完成后如下,可推出硬盘。有两个分区,分别是EmptyDisk和UbuntuBootLoader。
- 系统装在EmptyDisk
- 安装开机启动项UbuntuBootLoader
烧录Ubuntu镜像到U盘
- 下载Ubuntu镜像 ubuntu-22.04.4-desktop-amd64.ios ubuntu其他版本
- 下载balenaEtcher烧录镜像App balenaEtcher-1.18.11
- 打开balenaEtcher,烧录Ubuntu镜像到U盘。选择Ubantu镜像和U盘。注意不要选择错存储盘。点击现在!等待完成。
- 会提示成功烧录,此时可能弹出USB不可读的提示信息,先忽略。
- 打开Terminal 查看你的USB,并推出U盘,制作完成。
//查看
diskutil list
//推出U盘,把diskN换成和USB对应的盘
diskutil eject /dev/diskN
U盘安装Ubuntu到移动硬盘(会引用大量原著图)
- 关机,插入烧录U盘、移动硬盘(之后插入硬盘GParted识别不到,原著可以)。
- 开机,长按Option键,直到出现如下画面,选择EFI Boot选项:
- 进入后ubuntu-22.04.4版本会与原著不一样,没有拍照选择第一个选项(大概是Ubuntu...Installing)
- 进入Ubuntu后选择Try Ubuntu
- 打开GParted
- 在GParted中,点击右上角的方框选择你的移动硬盘(再次注意不要选错了你的Mac硬盘)。
- 把移动硬盘中,除了UbuntuBootLoader以外的所有分区都删掉。
- 例原著中,要删掉的分区就有一个标记着EFI的fat32格式分区,还有一个标记着EmptyDrive的hfs+格式分区。要删除一个分区,鼠标点击该分区,然后点左上方的红色圆圈斜杠图标,该分区就会出现在等待删除的序列中。
- 如下原著注意情况未遇到,保留一下。
- 原著注:如果你的分区中出现了一把小钥匙的图标,说明该分区被锁住了。这是因为这个文件系统已经挂载(mounted),要把它卸载下来(Unmount)。可以右键点击(在Mac接触板上两只手指同时点),然后选择Unmount。如果Unmount的选项变成了灰色不给选的话,就Ctrl+Alt+T打开Terminal,然后在上面输入
sudo umount /dev/sdNk
(把sdNk换成你要卸载的文件系统对应的位置,例如此处可以是sudo umount /dev/sdd2
。如果你不知道它的位置的话,可以在GParted最左边一列Partition中看到,或者输入指令lsblk
查看)。- 另原著注:如果你要复制粘贴到Terminal的话,用Ctrl+c复制,然后在Terminal用Ctrl+Shift+v粘贴。
- 选择好所有要删除的分区后,点击上方绿色的钩,实施操作 。
- 分区删除后,你的移动硬盘就只剩下UbuntuBootLoader和unallocated的区域。
- 选中unallocated区,新增两个分区(点击Partition -> new,填好设置后点Add)
- Swap 分区
- New Size: 8192 MiB(跟你电脑的RAM一样大或者稍大一点)
- Created as: Primary Partition(有别的教程显示要用Logical,但是我在这里没法选所以就没改它,也安装成功了,使用正常)
- File system: linux-swap
- Root分区
- New Size: 剩下的全部空间(除非你想多分几个区)
- Created as: Primary Partition
- File system: ext4
- Label: 爱写啥写啥
- 点击上方绿色的钩,应用更改
- 分区完成,关掉GParted。
- 安装Ubuntu
- (可选)链接Wifi,作用见第4步
- 双击主屏幕左上角的"Install Ubuntu"
- 选择语言
- 选择安装项(注:如果你没有开Wifi的话,第一项下载更新会变得不可选。但也没有关系,可以安装完再下载更新,只是说时间可能会长一些。),点Continue
- 因为要安装在移动硬盘上,所以要选择Something else:
- 找到你刚才设置的ext4格式的分区(检查一下分区名和空间大小是对的),点它。
- 选择Change,然后按下图设置:
- Size:不用改
- Use as: Ext4 journaling file system
- 选Format the partition
- Mount point: / (主分区root)
- 在下方"Device for boot loader installation",选这一个ext4格式的分区(注意不要选了整个/dev/sdd,因为我们还要留下一个UbuntuBootLoader的区域在下一步安装启动项)。例如此处选择的是/dev/sdd2
- 点击Install now开始安装,等个大概10~20分钟。
- 安装结束后,选择Continue testing,我们要继续设置开机启动项。
设置开机启动项
-
1.Ubuntu中设置
- Ubuntu已经在硬盘中,但开机不会显示,Mac要识别这个为bootable的话,它还需要一个EFI boot loader。所以我们要在Ubuntu里面创建一个boot.efi文件。
- 打开Terminal,快捷键Ctrl+Alt+T
- 输入以下命令,把sdaN换成你自己,中设置成ext4的分区名,不知道可以在打开GParted查看
//1.sda3我自己的
sudo mount /dev/sdaN /mnt
//2.然后输入以下指令,挂载几个其它的路径
for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
//3.把root路径改成/mnt,这样Terminal的bash session就是在Ubuntu里面运行了
sudo chroot /mnt
//4.设置GNU GRUB(GRand Unified Bootloader):
grub-mkconfig -o boot/grub/grub.cfg
//5.把它保存到一个boot.efi文件中:
grub-mkstandalone -o boot.efi -d usr/lib/grub/x86_64-efi -O x86_64-efi --compress=xz boot/grub/grub.cfg
//6.退出
exit
//7.把boot.efi文件拷贝到这个Ubuntu的live session中:
cp /mnt/boot.efi /home/ubuntu
- 然后在home文件夹下找到boot.efi文件,通过邮件发送给自己,或者保存在你的云盘上
- 指令图如下
- 关闭Ubuntu,拔出装机的USB(就是烧录了镜像的USB,不是你的移动硬盘!)。
-
2.关闭Mac系统的SIP(System Integrity Protection)
- 如果你的Mac系统是El Capitan(10.11)或以上(一般都是,毕竟现在都出到Big Sur(11.X)了),Mac系统有额外的安全设置SIP(System Integrity Protection),我们需要先关掉它。
- 关机之后重启电脑同时摁住Command+R直到苹果的标志出现,进入恢复模式(Recovery Mode)。点击你的用户名,输入密码。
2. 屏幕上方,点击Utilities -> Terminal
3. 在Terminal里面输入:
csrutil disable
4. 摁回车,然后点Restart重启电脑。
注:重启时如果看到写着grub的黑色屏幕,输入exit然后摁回车就好
-
3.在移动硬盘中安装启动项
- 开机进入系统MacOS打开Terminal,插入刚安装好Ubuntu的移动硬盘,会看到
UbuntuBootLoader盘,
做如下操作
- 开机进入系统MacOS打开Terminal,插入刚安装好Ubuntu的移动硬盘,会看到
//1.
cd /Volumes/UbuntuBootLoader/
//2.
sudo mkdir System mach kernel
//3.
cd System
//4.
sudo mkdir -p Library/CoreServices
//5.
cd Library/CoreServices
//6.下载boot.efi文件,放在/Downloads文件夹,拷贝到引导盘下
sudo cp ~/Downloads/boot.efi ./
//8.下载SystemVersion.plist文件,放在/Downloads文件夹,拷贝到引导盘下
sudo cp ~/Downloads/SystemVersion.plist ./
//9.把diskNsK换成查到的,我的是disk2s2
sudo bless --device /dev/diskNsK --setBoot
- 指令图
- 打开Disk Utility(Go -> Utilities -> Disk Utility),查看你的UbuntuBootLoader的设备编号。或者你也可以在Terminal输入
disktutil list
查看。在我的是disk2s2。
- Ubuntu安装完成!!!!开机的同时摁住Option选择要进入系统
重启Mac系统的SIP(完结撒花✿✿ヽ(°▽°)ノ✿)
把csrutil disable
换成csrutil enable
即可。
各种问题
Q1.Ubuntu安装好后,第一步换成csrutil enable。否则开机grub的提示exit不好使。
Q2.原著中一劳永逸解决办法,进入MacOS以后,如下图。重启之后就再也不会见到grub了。
但在启动Ubuntu系统后,在启动MacOS,还是会进入grub。不知道是不是跟MacOS版本有关。待查,占时不影响使用。。
Q3.原著SystemVersion.plist文件要用梯子,懂得都懂!!!资源已上传
<xml version="1.0" encoding="utf-8"?>
<plist version="1.0">
<dict>
<key>ProductBuildVersion</key>
<string></string>
<key>ProductName</key>
<string>Linux</string>
<key>ProductVersion</key>
<string>Ubuntu Linux</string>
</dict>
</plist>
再次感谢原著作者!!!!
参考连接
Installing Ubuntu on an external SSD drive on a Macbook – Floris van Breugel
How to Create a Bootable Ubuntu USB Drive, for Mac, in OS X | Envato Tuts+
Ubuntu分区方案 - 知乎
boot - Grub rescue after installing Ubuntu on a external HDD from USB - Ask Ubuntu