苹果系统 macOS Mojave 10.14.4上安装 Ubuntu 18.04 双系统

2023-11-18


2019.07.18 补充

注意!!!在按该教程安装Ubuntu双系统之后请勿使用bootcamp尝试安装Windows系统,笔者如是尝试的结果是macOS系统与Ubuntu系统分配的磁盘区域均被隐藏,无法切换macOS和Ubuntu系统,可能与GRUB设置有关,笔者尚未解决,特此补充。

===========================================================
个人笔记_2019.06.22

===============================================================

0. 准备工作 & 系统情况

  1. macOS 版本:macOS Mojave 10.14.4
  2. Ubuntu 版本:ubuntu 18.04.2 desktop amd64
  3. 一个大于4G的U盘作为Ubuntu安装盘
  4. 一份好心情

1. 制作Ubuntu安装盘(U盘)

首先,你需要下载一个Ubuntu系统,可以从Ubuntu官方网站下载,也可以从国内各大镜像站,比如清华大学镜像站等地方下载。

然后,制作安装盘,制作过程网上有很多教程,我参考的是这篇文章:How to Create and Boot From a Linux USB Drive on Mac,简单易懂,分分钟就弄好了。

2. 硬盘分区

这一步,其实挺困扰我的。我刚开始为了避免走弯路,在网上寻找教程的时候主要参考的是某记上的一篇文章:如何在MacBook Pro Retina上安装Linux

上文对我的帮助很大,但是他/她用的系统似乎是老版本的系统,新版本(我也不知道从哪个版本开始的,有兴趣或者了解的同学可告诉我,我记得我大一的时候用的那款2012 MID 的机器好像就是这个样子…)的磁盘工具已经和之前的不同了,加入了容器什么什么的,感觉比以前复杂了。

由于我用bootcamp安装了win10,所以我的电脑已经分成了两个卷,我的硬盘是512G的,实际分配大概是macOS占350G,win10占150G,于是我希望能在macOS中分出50G给Ubuntu,然而我在macOS中分割出50G给Ubuntu后,在后续安装时还是无法找到分割出的50G空间,只有一个350G的分区,也就是原来的macOS分区…

搏一搏,单车变摩托! 我想了一下,好像Windows除了打游戏也暂时没什么用了?一狠心,我把win10删了…还原了一个完整500G的macOS系统分区

然后,我的macOS系统是在容器“disk1”里面的,选中最上面的APPLE SSD SM0512G Media(我的硬盘是512的所以是SM0512G)将其进行分区,获得一个新的容器“disko3”,容器里面有一个分区,我命名为“Ubuntu”(现在已经看不到了,可能跟我安装Ubuntu系统时对其进行了格式化有关,不能被识别了),大小为50G,用来安装Ubuntu。下图现在只能看到在整个硬盘里面存在了50G的一个分区:
磁盘工具

3. 安装Ubuntu

后面的部分与如何在MacBook Pro Retina上安装Linux基本一致,为了保证文章完整性,还是把这一部分写下来。由于我已经安装完成,安装时没有把图弄下来,故部分图片摘自上述文章。再次感谢慕容3218556的贡献!

完成Ubuntu安装盘系统分区之后,就可以重新启动电脑了。和bootcamp双系统一样,启动时按住option(alt)键,直到出现下图:
图片摘自“如何在MacBook Pro Retina上安装Linux”
选择EFI启动,有两个选左边那个,这时候会提示你:
Try Ubuntu without installing
Install Ubuntu
balabala…

请选择Try Ubuntu without installing然后会加载Ubuntu桌面,我们在加载出来的Ubuntu桌面,点击图标Install什么什么的那个进行安装。

一路安装自己的情况选择,一般默认就好,但是为了避免麻烦和出问题?我把update新版本什么的那一项取消了勾选。到选择安装位置的时候,请选择Something else,于是来到Installation Type选择页面,如下图所示:
图片摘自“如何在MacBook Pro Retina上安装Linux”
确保那块大约128MB左右的分区已经被识别为EFI启动分区,分区名应该是 /dev/sda1。

然后,在新建的空间,也就是那个50G分卷里创建一个 ext4分区,在其上挂载“/”路径

在你开始下一步之前,请确保你的安装引导程序(boot loader)是选择了 /dev/sda1,GRUB也是装到该分区的。

然后,正常安装就可以了… 安装完成后请勿直接重新启动,还需要做点事儿。

以下内容均摘自如何在MacBook Pro Retina上安装Linux

4. 正常使用GRUB

当你的安装器装完Ubuntu之后,不要按重启!!! 我们还需要弄这么点东西才能使用GRUB。 请运行下列的指令:

sudo apt-get install efibootmgr

这个将会暂时地安装一个EFI boot的配置工具,然后 运行:

sudo efibootmgr

这个将会显示出当前的启动设置, 你应该看到的是 “ubuntu” 和 “Boot0000”,当前的EFI设置是把系统指向 Boot0080,这样的话就会跳过GRUB然后直接跳入OS X,所以我们要用以下指令来修复它:

sudo efibootmgr -o 0,80

现在就可以重启了!

5. 调整Ubuntu设置

首先你需要改一下GRUB的设置,这样你的SSD盘才不会偶尔死机, 在Terminal输入:

sudo nano /etc/default/grub

找到 GRUB_CMDLINE_LINUX那一行 , 把它改成 GRUB_CMDLINE_LINUX=“libata.force=noncq” 。 按下CTRL + X保存,然后按Y来确定保存。 接下来你要在Terminal输入:

sudo nano /etc/grub.d/40_custom

打开一个新的文件,请使用真丶精准手指准确地一字一字输入:

menuentry "Mac OS X" {
exit
}

这将会让你boot到你安装好的Mac OS X(GRUB的32-bit和64-bit项不能用)。然后CTRL+X 和 Y 保存退出,然后输入:

sudo update-grub

最后必须要重启才能生效。

在极其高清的Retina显示屏上神马都这么小,坑爹啊啊? 去Setting -> Display 里把 Scaling Factor弄大一点吧,不然妈妈又要担心你的近视眼了。

你也可能觉得在边边上改变窗口大小是一件极其困难的事情,坑爹啊啊? 去Terminal输入:

sudo nano /usr/share/themes/Ambiance/metacity-1/metacity-theme-1.xml

然后在里面修改成下面的参数:

<distance name="left_width" value="4"/>
<distance name="right_width" value="4"/>
<distance name="bottom_height" value="4"/>

如果还是太小,把上面的东西改成6吧!

最后,如果你觉得你的Linux把你那Retina鲜艳的颜色洗掉了,请到你的OS X盘,找到以下的文件:

/Library/ColorSync/Profiles/Displays/Color LCD-xxxxxx.icc

xxxxxx只是一串随机的字符,不过这路径应该只有一个文件。把他搬到你Ubuntu的Home folder, 然后到 System Settings –> Color 选择 Add New Profile 并选择你那刚弄过来的icc文件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

苹果系统 macOS Mojave 10.14.4上安装 Ubuntu 18.04 双系统 的相关文章

  • 如何以编程方式添加 NSMenu?

    我没有使用storyboard和xib 只使用了代码 我想以编程方式添加 编辑 菜单 我的问题是 1 如何显示 编辑 菜单 评论问题1 需要输入什么代码 2 Swift 提供了复制和粘贴等操作吗 class TestManager NSOb
  • 在 Mac 上更新 Make 版本

    我正在尝试更新 mac 上的 make 版本 但遇到了问题 最小项目依赖项是 4 1 但我的版本似乎是 3 81 我已将 Xcode 更新到最新版本并安装了命令行工具 但它似乎仍然是旧版本 有谁遇到过这个问题或知道解决方法吗 这是我所做的
  • Python 应用程序需要 init.d 脚本

    我有一个基于 python 的应用程序 它的工作方式类似于 feed 聚合器 并且需要成为 init d 脚本的一部分 以便我可以使用启动 停止 重新启动选项来控制执行 另外 我希望将 init d 脚本设置为 cron 作业 我在这里有示
  • Maven:无法在 OS X 上找到 java.lang 问题

    当我尝试时遇到以下问题mvn clean install显然它无法找到运行时 jar 但我需要做什么 错误日志 ERROR COMPILATION ERROR INFO ERROR Failure executing javac but c
  • Mysql启动问题|错误!服务器退出而不更新PID文件

    有任何想法吗 Joshs MacBook Pro cdwhp joshc mysql server start Starting MySQL ERROR The server quit without updating PID file u
  • 更新 OSX 命令行工具 6.3 后缺少 C++ 标头 <__debug>

    从 App Store 更新到 Command Line Tools 6 3 后 程序包括
  • SMCopyAllJobDictionaries 和 SMJobCopyDictionary 已弃用,那么它们的替代品是什么?

    I use SMCopyAllJobDictionaries and SMJobCopyDictionary检查应用程序是否是 Mac 中的登录项 但在 10 10 中 它们已被弃用 那么他们官方推荐的替代品是什么 还没有 引用Servic
  • 如何重命名 .tar.gz 文件而不提取内容并在 UBUNTU 中创建新的 .tar.gz 文件?

    我有一个命令将创建一个新的 tar gz现有文件中的文件 sudo tar zcvf Existing tar gz New tar gz 该命令将创建一个新的New tar gz从现有的文件Existing tar gz file 谁能告
  • 如何从远程 ssh 连接上运行的 tmux(复制模式)复制到本地剪贴板

    我通过 OS X 上的 VirtualBox 运行 Linux 我通过在无头状态下运行虚拟机 然后使用端口转发 sshing 到 Linux 机器来实现这一点 现在 无论复制到我的虚拟机上的剪贴板 我都可以粘贴到我的远程 ssh 会话上 但
  • Rstudio 更有意义的窗口标题

    我在 Ubuntu 16 04 下使用 R studio 版本 1 0 143 窗口标题仅显示一个非常无信息的 RStudio 我希望至少有当前选项卡的名称 或者最好是与此选项卡对应的文件的完整路径 在 Windows 下 完整路径似乎出现
  • Core Data 与 SQLite 3 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Xcode 调试器显示错误的变量值

    我之前问过类似的问题here https stackoverflow com q 53092448 1187415 这个版本有更简单的例子 更新摘要 Xcode 在调试器变量部分中为每个字符串显示 FAIL Swift print 语句显示
  • 从命令行减少 PNG 文件的位深度

    我可以从 CLI 执行什么命令或一系列命令来递归遍历目录树并将该树中所有 PNG 文件的位深度从 24bpp 减少到 16bpp 命令应该保留 alpha 层并且不应该增加 PNG 文件的大小 事实上减少会更好 我有一个基于 OSX 的系统
  • 静态 OpenCV 库中未定义的引用

    我有一个使用 OpenCV 3 1 的 C 项目 并且使用共享库可以正常工作 但现在我想使用静态库 位于项目目录中的文件夹中 来编译它 因为我希望能够在未安装 OpenCV 的情况下导出它 如果需要还可以编辑和重新编译 这次我重新编译了 O
  • Homebrew 将二进制文件放在哪里?

    Homebrew 是否安装软件包 usr local bin默认情况下 即它把二进制文件放在那里 我们可以告诉 Homebrew 将二进制文件放在其他地方吗 Apple Silicon Mac ARM 二进制文件位于 opt homebre
  • 如何在 osx 终端中返回应用程序版本

    我需要在 Mac osX 10 10 上的 sh 脚本中使用应用程序版本 以便我可以与另一个数字进行比较 以便我可以强制更新或不更新 到目前为止我已经有了这个 我使用 Firefox app 作为示例 FirefoxmdlsVersion
  • Eclipse Kepler 在 64 位 ubuntu 上冻结

    几天前我刚刚将 Ubuntu 升级到 14 04 并在此过程中从 32 位切换到 64 位 从那时起 Eclipse 就变得非常不稳定 运行几分钟后 它将开始随机冻结越来越长的时间 特别是在代码完成时 已经必须禁用它 而且在剪切 粘贴时 偶
  • Eclipse 在 Android SDK 内容加载器处挂起

    我已经在 OS X 10 8 2 上使用 Eclipse 4 2 Juno 版本 20120920 0800 几个星期了 为 Android 3 0 及更高版本构建应用程序 我有一台带 SSD 的四核 i7 MacBook Pro 因此性能
  • Python 声音(“铃声”)

    我想让一个 python 程序在完成任务时通过发出嘟嘟声来提醒我 目前 我使用import os然后使用命令行语音程序说 进程完成 我更愿意它是一个简单的 铃 我知道有一个函数可以用于Cocoa apps NSBeep 但我认为这与此没有太
  • FileProviderExtension 将不会在 macOS 12.2 中加载

    我是 macOS 开发新手 我正在尝试开发 macOS FileProvider 扩展 一切都很好 直到我将 macOS 从 11 更新到 12 2 更新操作系统后 NSFileProviderManager add domain 不会加载

随机推荐

  • CSS 动画实战:创建一个漂亮的加载动画

    这篇文章 用一个实例来讲下用伪元素和CSS Animation来创建一个漂亮的加载动画 首先来看下 要实现的动画效果 先来分析下 这个动画效果是由哪几个动画组成 1 线段依次出现 2 然后红色 橙色和白色矩形依次出现 3 这些矩形出现之后
  • 微信小程序nodejs+vue高校食堂餐厅点餐订餐系统ja221

    本文以实际运用为开发背景 运用软件工程原理和开发方法 它主要是采用 语言 node js 框架 Express 前端 Vue js 数据库 mysql 数据库工具 Navicat 开发软件 VScode 前端vue elementui 1
  • 12000字解读白小T:成立1年创收1亿,单品类策略如何引爆流行?

    主笔 西兰卡普 研究员 白婷丹 Leo 西兰卡普 陆压 出品 增长黑盒研究组 研究支持 久谦中台 飞瓜数据 App Growing 前言 最近两年 当我们与新消费品牌创业者及操盘手探讨服饰赛道最新风向时 大家高频提及的不外乎是Bosie A
  • kubernetes Ingress资源管理

    k8s 对外服务之 Ingress Ingress 简介 service的作用体现在两个方面 对集群内部 它不断跟踪pod的变化 更新endpoint中对应pod的对象 提供了ip不断变化的pod的服务发现机制 对集群外部 他类似负载均衡器
  • 关于STM32的IAP与APP互相跳转

    关于STM32的IAP与APP互相跳转 之前做了一个不带系统的IAP与APP互相跳转 在网上找了资料后 很顺畅就完成了 后来在IAR集成开发环境下 IAP无系统 APP用UCOS系统做互相跳转出现了很多问题 现将IAP学习过程和实际遇到问题
  • 柏林噪声(Perlin Noise) 介绍及应用

    什么是噪声 信号处理中一般指原信号中不存在的无规则的额外信号 在处理过程中一般是我们不需要的 需要被处理掉的 噪声和信号本身无关 其频率和强弱变化无规律 噪声有什么用处 就如上面提到的那样 噪声是干扰原信号的存在 在信号处理中 我们一般都希
  • Spring基础总结

    Spring基础总结篇 1 获取 Spring 的 IOC 容器 并根据 bean 的 id 获取注入对象 1 通过 BeanFactory 获取 Bean 2 通过 ApplicationContext 应用上下文获取 Bean 2 Be
  • 玩转Mysql系列 - 第8篇:详解排序和分页(order by & limit),及存在的坑

    这是Mysql系列第7篇 环境 mysql5 7 25 cmd命令中进行演示 代码中被 包含的表示可选 符号分开的表示可选其一 本章内容 详解排序查询 详解limit limit存在的坑 分页查询中的坑 排序查询 order by 电商中
  • RedditVideoMakerBot 视频制作机器人自动生成视频搭建教程

    https github com elebumm RedditVideoMakerBot搭建教程 RedditVideoMakerBot视频制作机器人 有些在抖音 快手上的视频获得了数百万的观看次数 你仔细分析他们的视频 他们唯一做的原创事
  • 修改pip国内源

    修改pip国内源 修改源方法 临时使用 可以在使用pip的时候在后面加上 i参数 指定pip源 例如 pip install scrapy i https pypi tuna tsinghua edu cn simple 永久修改 linu
  • 【计算机视觉】直接线性变换(DLT)求解P矩阵(3 加入坐标的归一化)(附MATLAB代码)

    引言 本来上一篇帖子就已经达到了精度要求 不过经过同学提醒才发现老师的作业要求中有要求考虑归一化 emmmmm 坐标归一化 进行归一化的必要性和方法参考 计算机视觉中的多视几何 中的描述 上面的是从 2D到2D的结论 不过与从3D到2D的结
  • el-table添加行/单元格样式

    文章目录 一 官方文档释义 1 row style cell style 2 row class name cell class name 二 row style cell style的使用 1 row style 使用Object 使用F
  • 前端基础第一天:HTML常用标签知识点

    学习目标 理解 相对路径三种形式 应用 排版标签 文本格式化标签 图像标签 链接 相对路径 绝对路径的使用 1 HTML常用标签 首先 HTML和CSS是两种完全不同的语言 我们学的是结构 就只写HTML标签 认识标签就可以了 不会再给结构
  • antdv表格的rowSelection设置单选禁用选中等

    这个问题在项目中已经遇到过两次了 一次为表格想实现单选 禁用等 另一次则是今天 遇上需求需要在初始化表格的时候默认选中项目 鉴于自己的记性太差 记录记录 万一哪天又遇到这个问题心血来潮来翻了一翻博客 那问题就解决了 犹记得实现表格项单选和禁
  • 决策树(信息熵、增益率、基尼指数)

    目录 前言 一 决策树是什么 二 实验过程 1 选择数据集中各个决策属性的优先级 1 1信息熵 1 2增益率 1 3基尼指数 2 决策树的构造 2 1创建决策树 2 2准备数据 2 3 读取和保存决策树 2 4绘制决策树 3运行结果 3 1
  • 升级Linux中的默认JDK的版本

    我用的Linux是 红帽企业级Linux AS版 TLF SOFT Redhat Enterprise Linux AS V4 0 UPDATE 7 DVD 因工作需要 将Linux中默认安装的Jdk 版本为1 4 进行升级 将升级的经验和
  • BigDecimal的常用方法

    一 BigDecimal概述 Java在java math包中提供的API类BigDecimal 用来对超过16位有效位的数进行精确的运算 双精度浮点型变量double可以处理16位有效数 但在实际应用中 可能需要对更大或者更小的数进行运算
  • Python学习笔记(基础篇)

    目录 一 Python编程基础 1 1print 1 2 input 1 3 ASC 码 1 4注释 二 数据类型与基本运算符 2 1变量 2 2数值类型 整数 浮点数 复数 2 3字符串 2 4布尔类型 2 5数据类型转换 2 6算数运算
  • 【mysql】mysql group by分组后取每组的最小值

    方法一 非严格模式下 group by后 会取分组后多个create time 的其中一个 由于我们的 create time 时间是有序的 会取第一条 如果是无序字段 很可能取的顺序会有问题 可以在create time 前面加上grou
  • 苹果系统 macOS Mojave 10.14.4上安装 Ubuntu 18.04 双系统

    macOS Mojave 10 14 4 安装Ubuntu 18 04 双系统 0 准备工作 系统情况 1 制作Ubuntu安装盘 U盘 2 硬盘分区 3 安装Ubuntu 4 正常使用GRUB 5 调整Ubuntu设置 2019 07 1