【转载】如何在Macbook上把Ubuntu安装到移动硬盘里

我的设备系统版本、遇到的问题和解决:

Mac:macOS Ventura 13.3

Ubuntu:22.04.3

问题:

按照这个教程在【3.3.10】修改完启动项后,Mac系统无法启动,Ubuntu可以正常启动。

原因:

Mac找不到启动引导了,所以无法启动。

解决:

开机时按住 Command + R 进入安全模式,在左上角选择启动盘,选择Mac的硬盘即可。

原文如下:

【转载地址】如何在Macbook上把Ubuntu安装到移动硬盘里 - 知乎

如何在Macbook上把Ubuntu安装到移动硬盘里

温馨提示:

装机有风险,请务必先把电脑里面的重要资料备份好。我用的是Apple自带的Time Machine。插入大容量储存设备(例如250G以上的U盘或者移动硬盘)时,系统会弹出“是否用此设备备份Time machine”的提示信息,按照上面的提示操作即可。读者也可以按照自己习惯的方式备份,但记住,一定要先备份资料!!

笔者安装的时候参考了网络上许多不同的教程,失败了很多次,最后主要是根据Floris van Breugel的教程成功安装了(感谢大神),原教程在这里,感兴趣的朋友可以自己点开来看。本教程在原教程的基础上,按照我碰到的其它问题稍作修改。

你需要的工具

  1. 一台有至少两个USB接口的Macbook(没有的话可以用USB hub也可以);
  2. 一个2G以上空白的可以用来烧录Ubuntu镜像的USB【下文称为USB】;
  3. 一个空白的固态硬盘(Solid State Drive)【下文称为移动硬盘】。关于SSD和HDD的区别,请参考这里。简单来说,SSD读写速度比较快,比较可靠,但比较贵。如果你家有不要的旧电脑,也可以把里面的硬盘拆下来用。

注意2和3必须是两个不一样的设备,不可以是一个设备里面的不同分区,不然安装Ubuntu的时候会提示分区失败。

主要步骤

在Macbook上把Ubuntu安装到移动硬盘里主要分为以下三个步骤:

  1. 前期准备:格式化移动硬盘和制作烧录了Ubuntu镜像的USB
  2. 安装Ubuntu到移动硬盘上
  3. 设置开机启动项(让Ubuntu可以在开机时出现)

话不多说,我们开始吧!

【1】前期准备

【1.1】格式化移动硬盘

  1. 插入移动硬盘,然后打开Disk Utility

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】完成。

【1.2】制作ubuntu安装USB

  1. 插入USB
  2. 下载Ubuntu镜像(官网上是新的20.04,我装的是16.04LTS版,在这里可以下载,选64-bit PC (AMD64) desktop image)
  3. 下载balenaEtcher(非常好用的一个烧录镜像的APP,玩RaspberryPi的朋友也可以用这个来烧录RPi的镜像)

4. 打开Etcher,选择下载好的Ubuntu镜像和用来安装Ubuntu镜像的USB。注意看Target name和size,不要选错了Mac的硬盘(如果你选了一个大容量的存储设备的话Etcher会提醒你的,此时就要注意检查)。

5. 点击Flash!,等待完成。完成后Etcher会提示成功烧录,此时你有可能看到Mac弹出USB不可读的提示信息,先不用管它,什么都不要点。打开Terminal,输入diskutil list 看哪个是你的USB。然后在Terminal输入diskutil eject /dev/diskNdiskN换成和USB对应的盘。

6. 成功弹出USB以后,点击ignore。【1.2】完成。

这个时候你可以顺便查看一下自己电脑RAM的大小(点击屏幕左上角的苹果,选择About This Mac)。这个在后面给Ubuntu设置Swap Space的时候会用到。我的是8GB。

【2】安装Ubuntu

(步骤【2】安装过程中的截图我可能在格式化U盘的时候不小心清除了,所以用的大部分是原教程里面的图和加上了自己的注释。)

【2.1】进入Ubuntu

  1. 关机,然后插入烧录了Ubuntu镜像的USB(注意先不要插移动硬盘)
  2. 摁下开机键的同时,长摁住Option键,直到以下页面出现,选择右边黄色的EFI Boot选项:

3. 进入菜单后选择第一个选项"Try Ubuntu withou Installing"

【2.2】准备移动硬盘

  1. 进入Ubuntu后,插入移动硬盘,并打开GParted

2. 在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粘贴。

3. 选择好所有要删除的分区后,点击上方绿色的钩,实施操作

4. 分区删除后,你的移动硬盘就只剩下UbuntuBootLoader和一个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: 爱写啥写啥

5. 点击上方绿色的钩,应用更改

6. 记住Root分区的分区名(Partition),例如说/dev/sdd2

7. 关掉GParted

注: 想尝试其它分区模式的朋友,可以参考这篇知乎专栏文章,里面有更详细的解释。

【2.3】安装Ubuntu

  1. (可选)链接Wifi,作用见第4步
  2. 双击主屏幕左上角的"Install Ubuntu"
  3. 选择语言
  4. 选择安装项(注:如果你没有开Wifi的话,第一项下载更新会变得不可选。但也没有关系,可以安装完再下载更新,只是说时间可能会长一些。),点Continue

5. 因为要安装在移动硬盘上,所以要选择Something else

6. 找到你刚才设置的ext4格式的分区(检查一下分区名和空间大小是对的),点它。

7. 选择Change,然后按下图设置:

  • Size:不用改
  • Use as: Ext4 journaling file system
  • 选Format the partition
  • Mount point: / (主分区root)

8. 在下方"Device for boot loader installation",选这一个ext4格式的分区(注意不要选了整个/dev/sdd,因为我们还要留下一个UbuntuBootLoader的区域在下一步安装启动项)。例如此处选择的是/dev/sdd2

9. 点击Install now开始安装,等个大概10~20分钟。

10. 安装结束后,选择Continue testing,我们要继续设置开机启动项。

【3】设置开机启动项

【3.1】Ubuntu中的设置

现在Ubuntu已经装到移动硬盘里面啦~但是开机的时候它不会出现,因为Mac要识别这个为bootable的话,它还需要一个EFI boot loader。所以我们要在Ubuntu里面创建一个boot.efi文件。

  1. Ctrl+Alt+T打开Terminal
  2. 输入以下命令,把sdNk换成你在【2.2】中设置成ext4的分区名,例如我的是sdd2:

sudo mount /dev/sdNk /mnt

3. 然后输入以下指令,挂载几个其它的路径:

for i in /dev /dev/pts /proc /sys /run; do sudo mount -B <img src="https://www.zhihu.com/equation?tex=i /mnt" alt="i /mnt" class="ee_img tr_noresize" eeimg="1"> 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,不是你的移动硬盘!)。拔除之后摁回车就可以。

【3.2】关闭Mac系统的SIP(System Integrity Protection)

如果你的Mac系统是El Capitan(10.11)或以上(一般都是,毕竟现在都出到Big Sur(11.X)了),Mac系统有额外的安全设置SIP(System Integrity Protection),我们需要先关掉它。

  1. 关机之后重启电脑同时摁住Command+R直到苹果的标志出现,进入恢复模式(Recovery Mode)。点击你的用户名,输入密码。

2. 屏幕上方,点击Utilities -> Terminal

3. 在Terminal里面输入:

csrutil disable

4. 摁回车,然后点Restart重启电脑。

注:重启时如果看到写着grub的黑色屏幕,输入exit然后摁回车就好

【3.3】在移动硬盘中安装启动项

  1. 打开Terminal
  2. 插入刚安装好Ubuntu的移动硬盘,输入:

cd /Volumes/UbuntuBootLoader/

  • ​ 注:在Mac的Terminal复制粘贴不需要加shift,直接Command+c(复制)或者Command+v(粘贴)就好

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.4】重启Mac系统的SIP(完结撒花✿✿ヽ(°▽°)ノ✿)

和【3.2】一样,把csrutil disable 换成csrutil enable即可。

恭喜你,完成所有安装啦!以后只要不插入移动硬盘,开机的时候就会自动导入到MacOS中。要进入Linux系统,只需插入了移动硬盘后,在开机的同时摁住Option键进入boot manager,然后选择Ubuntu系统就好。开玩~

其它问题

Q1. 开机出现grub的提示?

输入exit,然后摁回车。

如果想一劳永逸地解决这个问题,进入MacOS以后,点左上方的苹果,选择System Preferences -> Startup Disk。进去之后点左下角的锁解锁,然后选择你的Macintosh。重启之后就再也不会见到grub了。

参考链接:

  • 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/184821.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Vue】浏览器安装vue插件

首先看一下安装之后的效果&#xff0c;再考虑一下要不要安装 安装完之后&#xff0c;打开浏览器控制台&#xff08;ctrl shift j) <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</t…

多回路交流三相单相电压电流电量监测开口式互感器适用多种环境用电能耗监控

1 产品概述 多回路交流无线电压电流传感器/电量采集监测仪搭配多路开口式互感器&#xff0c;可以监控采集三相电压、电流、功率和电量等信息&#xff0c;可用于能耗采集监控。支持RS485和4G网络接口&#xff0c;数据可以对接客户指定的第三方云平台。本产品可实现单相/三相用电…

渲染农场渲染一分钟动画需要多少钱?需要渲染多少时间?

现在很公司都开始使用渲染农场渲染动画&#xff0c;但是还是有很多人不知道渲染农场渲染动画需要多少钱&#xff0c;需要渲染多少时间。在这篇文章中我们将为你一一解答&#xff0c;为你提供一个清晰的参考。 渲染农场的收费通常是按照渲染的使用时间收费&#xff0c;渲染十分…

讲概念谈愿景AI Agent名不副实?看实在智能RPA Agent智能体如何落地!

OpenAI在首届开发者大会上推出了GPTs和Assitant API&#xff0c;不仅改写了AI Agent的构建范式&#xff0c;也把AI智能体的应用推向一个新高潮。GPTs和GPT商店&#xff0c;使得用户无需编码通过自然语言就能创建并拥有多个专属私人助理&#xff0c;且可以如在苹果应用商店一样在…

yarn:无法加载文件 C:\Users\***\AppData\Roaming\npm\yarn.ps1,因为在此系统上禁止运行脚本

原因&#xff1a;PowerShell 脚本的执行有着严格的安全策略限制&#xff01; 解决方案&#xff1a;管理员身份启动Windows PowerShell 在命令行中输入set-ExecutionPolicy RemoteSigned 再使用yarn就可以了

JavaScript实现动态背景颜色

JavaScript实现动态背景颜色 前言实现过程HTML实现过程CSS实现过程JS实现过程全部源码 前言 本文主要讲解JavaScript如何实现动态背景颜色&#xff0c;可以根据颜色选择器选择的颜色而实时更新到背景中&#xff0c;如下图所示。 当我们在颜色选择器中改变颜色时&#xff0c;会…

抖音电商品牌力不足咋办?如何升级或强开旗舰店、官方旗舰店?我们有妙招!

随着抖音电商的发展&#xff0c;越来越多的商家蜂拥而至&#xff0c;入驻经营抖音小店... 然而我们在开店的时候&#xff0c;选择开通官方旗舰店、旗舰店、专营店或专卖店&#xff0c;却被系统提示为你的商标品牌力不足&#xff0c;无法开通官方旗舰店、旗舰店、专营店、专卖店…

windows事件查看器日志

Windows 事件查看器&#xff08;Event Viewer&#xff09;是 Windows 操作系统提供的一个内置工具&#xff0c;它用于管理和查看系统、应用程序和安全事件日志。在 Windows 系统中&#xff0c;各种活动和错误都会被记录到事件日志中&#xff0c;包括系统启动、应用程序崩溃、安…

linux如何查看文件的hash数值

在Linux系统中&#xff0c;你可以使用各种工具来查看文件的哈希值。下面是一些常见的方法&#xff1a; md5sum命令&#xff1a; md5sum 文件名例如&#xff1a; md5sum example.txtsha1sum命令&#xff1a; sha1sum 文件名例如&#xff1a; sha1sum example.txtsha256sum命令&a…

PSP - 蛋白质真实长序列查找 PDB 结构短序列的算法

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/134599076 在蛋白质结构预测的过程中&#xff0c;输入一般是蛋白质序列(长序列)&#xff0c;预测出 PDB 三维结构&#xff0c;再和 Ground Truth …

麒麟linux离线安装dotnet core

1. 下载 dotnet core,以3.1为例 下载地址: 下载 .NET Core 3.1 (Linux、macOS 和 Windows) 查看linux cpu类型,然后根据类型下载 uname -m #结果是: aarch64 2. 放到指定目录,比如:/usr/dotnet 3. 解压dotnet-sdk-3.1.426-linux-arm64.tar.gz cd /usr/dotnet tar –zxvf a…

数字图像处理(实践篇)一 将图像中的指定目标用bBox框起来吧!

目录 一 实现方法 二 涉及的OpenCV函数 三 代码 四 效果图 一 实现方法 ①利用OTSU方法将前景与背景分割。 ②使用连通区域分析可以将具有相同像素值且位置相邻的前景像素点组成的图像区域识别。 ③画bbox。 ④显示结果。 二 涉及的OpenCV函数 ① OpenCV提供了cv2.th…

Android 打包aar包含第三方aar 解决方案

Android 打包aar包含第三方aar 因项目需要&#xff0c;打包aar包含第三方aar&#xff0c;如果直接对module进行打包会产生一些问题。 * What went wrong: Direct local .aar file dependencies are not supported when building an AAR. The resulting AAR would be broken be…

金风玉露一相逢|实在智能联手浪潮信息合力致新生成式AI产业生态

近日&#xff0c;实在智能正式加入浪潮信息元脑生态AIStore。 实在智能是一家基于AGI大模型超自动化技术&#xff0c;领跑人机协同时代的人工智能科技公司&#xff0c;以其自研垂直的“TARS&#xff08;塔斯&#xff09;大语言模型”技术、实在RPA Agent智能体数字员工产品和超…

土壤教学经典用图30张

一、土壤分布 二、土壤形成与气候 三、土壤形成与地形 四、土壤形成与成土母质 五、成土过程示意图 六、土壤剖面实景图 七、土壤剖面示意图 八、土壤质地 以上图片多来源于 人教、湘教、鲁教、中图、沪教 五套新教材及地图册

unity Terrain 性能问题

在实践过程中unity发生进入场景GPU爆显存的情况&#xff0c;经过调查发现是使用Terrain造成的问题&#xff0c;这个问题在使用一个Terrain的时候并不会发生&#xff0c;但是在使用多个时会发生。 似乎在使用过程中Terrain会直接把Terrain的整个地图加载&#xff0c;造成移动设…

Duplicate 模型中的 ROLLUP(十六)

因为 Duplicate 模型没有聚合的语意。所以该模型中的 ROLLUP&#xff0c;已经失去了“上卷”这一层含义。而仅仅是作为调整列顺序&#xff0c;以命中前缀索引的作用。下面详细介绍前缀索引&#xff0c;以及如何使用 ROLLUP 改变前缀索引&#xff0c;以获得更好的查询效率。 前…

【广州华锐互动】Web3D云展编辑器能为展览行业带来哪些便利?

在数字时代中&#xff0c;传统的展览方式正在被全新的技术和工具所颠覆。其中&#xff0c;最具有革新意义的就是Web3D云展编辑器。这种编辑器以其强大的功能和灵活的应用&#xff0c;正在为展览设计带来革命性的变化。 广州华锐互动开发的Web3D云展编辑器是一种专门用于创建、编…

微服务学习|初识MQ、RabbitMQ快速入门、SpringAMQP

初识MQ 同步通讯和异步通讯 同步通讯是实时性质的&#xff0c;就好像你用手机与朋友打视频电话&#xff0c;但是&#xff0c;别人再想与你视频就不行了&#xff0c;异步通讯不要求实时性&#xff0c;就好像你用手机发短信&#xff0c;好多人都能同时给你发短信&#xff0c;你…

java springboot测试类虚拟MVC环境 匹配返回值与预期内容是否相同 (JSON数据格式) 版

上文java springboot测试类鉴定虚拟MVC请求 返回内容与预期值是否相同我们讲了测试类中 虚拟MVC发送请求 匹配返回内容是否与预期值相同 但是 让我意外的是 既然没人骂我 因为我们实际开发 返回的基本都是json数据 字符串的接口场景是少数的 我们在java文件目录下创建一个 dom…