【转载】如何在MacBookPro上把Ubuntu安装到移动硬盘里过程记录

以下主要目的是记录安装过程中的问题,安装步骤等信息怕忘记

环境信息:

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粘贴。
  • 选择好所有要删除的分区后,点击上方绿色的钩,实施操作 。

  • 分区删除后,你的移动硬盘就只剩下UbuntuBootLoaderunallocated的区域。
  • 选中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
  1. (可选)链接Wifi,作用见第4步
  2. 双击主屏幕左上角的"Install Ubuntu"
  3. 选择语言
  4. 选择安装项(注:如果你没有开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),我们需要先关掉它。
  1. 关机之后重启电脑同时摁住Command+R直到苹果的标志出现,进入恢复模式(Recovery Mode)。点击你的用户名,输入密码。

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

3. 在Terminal里面输入:

csrutil disable

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

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

  • 3.在移动硬盘中安装启动项
    • 开机进入系统MacOS打开Terminal,插入刚安装好Ubuntu的移动硬盘,会看到UbuntuBootLoader盘,做如下操作
//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

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

牛客NC371 验证回文字符串(二)【简单 双指针 C++/Java/Go/PHP】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/130e1a9eb88942239b66e53ec6e53f51 思路 直接看答案&#xff0c;不难参考答案C class Solution {public:/*** 代码中的类名、方法名、参数名已经指定&#xff0c;请勿修改&#xff0c;直接返回方法规定的值即可…

Atlassian Jira 信息泄露漏洞(CVE-2019-3403) 排查思路

Atlassian Jira&#xff1a; 企业广泛使用的项目与事务跟踪工具&#xff0c;被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。 简述&#xff1a; 近日发现多个内网IP触发的Atlassian Jira 信息泄露漏洞的告警。 告警的检测规…

openvoice v2 声音克隆使用案例

参考: https://github.com/myshell-ai/OpenVoice/blob/main/docs/USAGE.md https://www.wehelpwin.com/article/4940 安装 1)下载OpenVoice项目安装 2)MeloTTS安装 参考:https://blog.csdn.net/weixin_42357472/article/details/136320097 pip install git+https://gith…

2398.预算内最多的机器人数目

我第一个手搓的hard的单调队列题目......灵神yyds 思路解析: 我做的时候感觉这个题目有点歧义,我以为他的连续运行是时间上连续,所以我开始写的代码是选择最多的子序列(可以不连续),使得不超过budget,这个求最多子序列的代码会在最后给出,不保证完全正确(因为没有太多测试点),…

element-ui et -i 编译默认主题报错:ReferenceError: primordials is not defined

报错信息如下 fs.js:40 } primordials;^ ReferenceError: primordials is not defined导致这个问题的原因&#xff1a;node和gulp版本冲突&#xff01;&#xff01; 我使用的是node 14版本 解决方法&#xff1a; 看了好几个帖子&#xff0c;都推荐使用node 11.15.0版本&am…

华为ensp中BGP(边界网关协议)基础原理及配置命令

作者主页&#xff1a;点击&#xff01; ENSP专栏&#xff1a;点击&#xff01; 创作时间&#xff1a;2024年4月27日10点04分 BGP&#xff08;边界网关协议&#xff09;是一种路由协议&#xff0c;用于在互联网中的不同自治系统&#xff08;AS&#xff09;之间交换路由信息。它…

浅谈操作系统中的重要概念——线程

文章目录 一、进程概念产生的原因二、进程的弊端三、线程3.1、线程复用结构体PCB3.2、多线程弊端3.2.1、拖慢程序的效率3.2.2、产生线程安全问题3.2.3、导致整个进程终止 3.3、怎么判断一个线程是否执行完毕&#xff1f;&#xff1f;3.4、怎么终止一个线程&#xff1f;&#xf…

【学习笔记二十八】EWM和QM集成的后台配置和前台展示

一、EWM和QM集成概述 SAP EWM(扩展仓库管理)和QM(质量管理)的集成是SAP系统中一个重要的特性,它允许企业在仓库管理过程中实现质量控制和检验流程的自动化。以下是关于EWM和QM集成的一些关键点概述: 集成优势:通过集成,企业可以确保仓库中的物料在收货、存储、…

csdn的复制代码功能如何实现

页面布局分析&#xff1a; 按钮在文本框里面&#xff0c;所以文本框是父元素&#xff0c;按钮是子元素。要使得按钮在文本框的右上角&#xff0c;需要使用绝对定位。 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8">…

实现ALV页眉页脚

1、文档介绍 在ALV中&#xff0c;可以通过增加页眉和页脚&#xff0c;丰富ALV的展示。除了基本的页眉和页脚&#xff0c;还可以通过插入HTML代码的方式展示更加丰富的页眉和页脚&#xff0c;本篇文章将介绍ALV和OOALV中页眉页脚的使用。 2、ALV页眉页脚 效果如下 2.1、显示内…

长图高效切割新体验:支持按随机宽度灵活裁切,释放无限创意与效率

图像的传播已经成为我们日常生活的一部分。而长图&#xff0c;作为一种特殊的图像形式&#xff0c;其独特的展示方式能够吸引更多的目光。但是&#xff0c;如何将长图高效切割&#xff0c;以展现其独特的魅力呢&#xff1f;现在&#xff0c;我们为您带来了一款支持按随机宽度切…

怎么找回录音文件?这4个方法实用又简单!

“我有一份比较重要的录音文件保存在电脑上了&#xff0c;不知道是因为误删还是什么原因&#xff0c;这个文件丢失了&#xff0c;我现在有什么比较好的方法可以找回这个文件吗&#xff1f;” 录音文件是我们日常生活中经常使用的文件类型&#xff0c;无论是会议记录、学习笔记还…

论机器学习(ML)在网络安全中的重要性

机器学习是什么&#xff1f; 机器学习(ML)是人工智能的一个分支&#xff0c;它使用算法来使计算机系统能够自动地从数据和经验中进行学习&#xff0c;并改进其性能&#xff0c;而无需进行明确的编程。机器学习涉及对大量数据的分析&#xff0c;通过识别数据中的模式来做出预测…

MySQL/MariaDB 如何查看当前的用户

MySQL 的所有数据库用户信息是存储在 user 数据表中的。 可以在登录成功数据后运行 SQL&#xff1a; MariaDB [(none)]> select user,host from user;就可以查看到数据中的所有用户信息。 MariaDB [(none)]> select user,host from user; ERROR 1046 (3D000): No databa…

数据集笔记:geolife staypoint聚合的location 最近的10个其他location

数据集&#xff1a;处理geolife数据-CSDN博客 这边的stations&#xff0c;找到每个station 最近的其他10个station 1 读取数据 假设已经读完了&#xff0c;就是locations 2 保留有用的列 locations.drop([center,user_id],axis1,inplaceTrue) locations 3 加载几何形状 使用…

27 - 数据传送指令

---- 整理自B站UP主 踌躇月光 的视频 文章目录 1. CPU 电路2. 数据传送指令的几种情况3. 实验工程4. 实验结果 1. CPU 电路 2. 数据传送指令的几种情况 # program.asm; 1. ; MOV A, 5;; 2. ; MOV A, B;; 3. ; MOV A, [5];; 4. ; MOV B, 6 ; MOV A, [B]; 5. ; MOV [0x2f], 5;; …

Zynq 7000 系列中成功执行BootROM的条件

Zynq 7000设备的启动需要正确的电压序列和I/O引脚控制。BootROM的流程由复位类型、启动模式引脚设置以及启动映像来控制。BootROM对所选启动设备的引脚连接有特定的要求。 Zynq 7000 SoC设备具有电源、时钟和复位要求&#xff0c;这些要求必须得到满足&#xff0c;才能成功执行…

每日OJ题_DFS回溯剪枝⑦_力扣77. 组合

目录 力扣77. 组合 解析代码 力扣77. 组合 77. 组合 难度 中等 给定两个整数 n 和 k&#xff0c;返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 示例 1&#xff1a; 输入&#xff1a;n 4, k 2 输出&#xff1a; [[2,4],[3,4],[2,3],[1,…

Oracle集群-常用查询及操作(工作日常整理)

1.Oracle集群状态 select * from gv$instance; 示例结果&#xff1a; 2.Oracle集群-增大表空间 常见问题&#xff1a; 导入时或使用时&#xff0c;提示无法extend table ,增加表空间即可 常用操作&#xff1a; 1&#xff09;查询表空间 select * from dba_tablespaces; --…

数据结构——二叉树的顺序存储(堆)(C++实现)

数据结构——二叉树的顺序存储&#xff08;堆&#xff09;&#xff08;C实现&#xff09; 二叉树可以顺序存储的前提堆的定义堆的分类大根堆小根堆 整体结构把握两种调整算法向上调整算法递归版本 非递归版本向下调整算法非递归版本 向上调整算法和向下调整算法的比较 我们接着…