在已经安装了 macOS 和 Windows 的 Mac 上安装 Ubuntu

snr*_*snr 8 mac dual-boot windows bootcamp system-installation

我有一台 2013 年末的双启动 MacBook Pro,已经安装了 macOS Sierra 和 Windows 10 (BOOTCAMP)。我想安装 Ubuntu 作为第三个操作系统。有什么(简单的)方法可以做到吗?

> Disk Partitions:
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

> Gpt dev disk0
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

> Fdisk disk0
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

磁盘工具

Dav*_*son 7

此答案会在您的计算机上安装 Ubuntu,而无需使用第三方工具来安装 Ubuntu 的引导。我下载的 Ubuntu 文件名为ubuntu-16.10-desktop-amd64.iso. 我假设您已经创建了一个可启动的 Ubuntu USB 闪存驱动器安装程序并验证了内容。我还假设您已经通过成功启动 Ubuntu 的实时版本来验证硬件兼容性。这些说明分为下面列出的三个主要部分。

  • 在驱动器上为 Ubuntu 创建空间:这是通过使用 MacOS 终端应用程序输入命令来完成的。
  • 安装 Ubuntu:这使用 Ubuntu 闪存驱动器安装程序。
  • 将 Ubuntu 添加到启动管理器- 在这里您基本上使用 MacOS 将必要的文件移动到适当的位置。这将允许从启动管理器中选择 Ubuntu。你不需要 rEFInd 来启动 Ubuntu。

注意:如果另一个用户的分区方案与本示例中显示的不同,请向我发表评论,我将尝试更新我的答案。

在驱动器上为 Ubuntu 创建空间

为了说明所需的步骤,我创建了一个比实际驱动器稍大的驱动器。

diskutil list disk0下面给出了的输出。

/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *256.0 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS Macintosh HD            180.7 GB   disk0s2
   3:         Microsoft Reserved                         16.8 MB    disk0s3
   4:       Microsoft Basic Data BOOTCAMP                70.1 GB    disk0s4
Run Code Online (Sandbox Code Playgroud)

sudo gpt -r show /dev/disk0下面给出了的输出。

      start       size  index  contents
          0          1         PMBR
          1          1         Pri GPT header
          2         32         Pri GPT table
         34          6         
         40     409600      1  GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
     409640  352968704      2  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
  353378344       4056         
  353382400      32768      3  GPT part - E3C9E316-0B5C-4DB8-817D-F92DF00215AE
  353415168  136818688      4  GPT part - EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
  490233856    9766151         
  500000007         32         Sec GPT table
  500000039          1         Sec GPT header
Run Code Online (Sandbox Code Playgroud)

sudo fdisk /dev/disk0下面给出了的输出。

Disk: /dev/disk0    geometry: 31123/255/63 [500000040 sectors]
Signature: 0xAA55
         Starting       Ending
 #: id  cyl  hd sec -  cyl  hd sec [     start -       size]
------------------------------------------------------------------------
 1: EE 1023 254  63 - 1023 254  63 [         1 -  500000039] <Unknown ID>
 2: 00    0   0   0 -    0   0   0 [         0 -          0] unused      
 3: 00    0   0   0 -    0   0   0 [         0 -          0] unused      
 4: 00    0   0   0 -    0   0   0 [         0 -          0] unused      
Run Code Online (Sandbox Code Playgroud)

我决定为 Ubuntu 提供大约 40 GB 的空间。如果您需要不同的尺寸,请进行适当的调整。我将为 Ubuntu 创建 3 个新分区。下面给出了每个的描述。

  • 交换分区。此分区的大小应为 Mac 计算机中安装的内存大小的 1 到 2 倍。我将使用 800 MB 的大小。显然,您将使用的尺寸会大得多。
  • 一个 Ext4 日志文件系统分区来保存 Ubuntu。这个分区将消耗我为 Ubuntu 分配的大约 40 GB 的大部分空间。
  • EFI 系统分区。这是 Ubuntu 出现在 Mac 启动管理器上所必需的。当您打开或重新启动 Mac 并按住该option键时,会出现此管理器。启动管理器可用于更改默认启动盘(即操作系统)或可用于临时从启动盘启动。我为此分区选择了 500 MB 的大小。

我选择允许 Ubuntu 安装程序实际创建 3 个新分区。所以此时我只需要将 MacOS 分区缩小大约 40 GB 并创建 3 个新的占位符分区。占位符稍后将被 Ubuntu 安装程序替换为上述实际分区。

下面给出了更改为分区的命令。由于 MacOS 分区大约为 180 GB,因此我使用了 140 GB ( 140G)的期望值。此外,我使用了 800 MB ( 800M)的值作为新 Swap 分区的大小。由于您需要更大的尺寸,因此您需要进行适当的替换。注意:200 MB ( 200M)这两个值是任意选择的,这些值稍后会更改。

diskutil resizevolume disk0s2 140G 3 jhfs+ part1 800M jhfs+ part2 200M jhfs+ part3 200M
Run Code Online (Sandbox Code Playgroud)

此命令的输出如下所示。

Started partitioning on disk0s2 Macintosh HD
Verifying the disk
Verifying file system
Checking Journaled HFS Plus volume
Checking extents overflow file
Checking catalog file
Checking multi-linked files
Checking catalog hierarchy
Checking extended attributes file
Checking volume bitmap
Checking volume information
The volume Macintosh HD appears to be OK
File system check exit code is 0
Resizing
Waiting for the disks to reappear
Formatting disk0s3 as Mac OS Extended (Journaled) with name part1
Initialized /dev/rdisk0s3 as a 763 MB case-insensitive HFS Plus volume with a 8192k journal
Mounting disk
Formatting disk0s4 as Mac OS Extended (Journaled) with name part2
Initialized /dev/rdisk0s4 as a 191 MB case-insensitive HFS Plus volume with a 8192k journal
Mounting disk
Formatting disk0s5 as Mac OS Extended (Journaled) with name part3
Initialized /dev/rdisk0s5 as a 37 GB case-insensitive HFS Plus volume with a 8192k journal
Mounting disk
Finished partitioning on disk0s2 Macintosh HD
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *256.0 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS Macintosh HD            140.0 GB   disk0s2
   3:                  Apple_HFS part1                   800.0 MB   disk0s3
   4:                  Apple_HFS part2                   200.0 MB   disk0s4
   5:                  Apple_HFS part3                   39.5 GB    disk0s5
   6:         Microsoft Reserved                         16.8 MB    disk0s6
   7:       Microsoft Basic Data BOOTCAMP                70.1 GB    disk0s7
Run Code Online (Sandbox Code Playgroud)

注意:最后一个200Mdiskutil命令忽略。相反,大部分剩余的可用空间都分配给了disk0s5切片。

sudo gpt -r show /dev/disk0下面给出了的输出。

      start       size  index  contents
          0          1         PMBR
          1          1         Pri GPT header
          2         32         Pri GPT table
         34          6         
         40     409600      1  GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
     409640  273437496      2  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
  273847136     262144         
  274109280    1562496      3  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
  275671776     390616      4  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
  276062392   77057864      5  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
  353120256     262144         
  353382400      32768      6  GPT part - E3C9E316-0B5C-4DB8-817D-F92DF00215AE
  353415168  136818688      7  GPT part - EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
  490233856    9766151         
  500000007         32         Sec GPT table
  500000039          1         Sec GPT header
Run Code Online (Sandbox Code Playgroud)

命令的输出与sudo fdisk /dev/disk0上面给出的内容相同。

安装 Ubuntu

  1. 插入 Ubuntu 闪存驱动器并重新启动 Mac。按住 option键调用启动管理器。选择从 USB 闪存驱动器进行 EFI 引导。出现提示时,选择如下所示的选项。

    注意:要获得更好的视图,请单击图像或在新窗口中打开图像。

    21

  2. 选择语言。

    22

  3. 我选择选择下面的两个选项。

    23

  4. 选择如下所示的选项。

    24

  5. 选择下图所示的分区。此分区的大小应与之前diskutil resize volume输入命令时为交换分区指定的大小相同 。

    61

  6. 单击“更改...”并在弹出窗口中选择“交换区域”,如下所示。不要更改分区大小。接下来,单击“确定”。

    62

  7. 选择下图所示的分区。接下来,单击“-”删除该分区。

    63

  8. 选择可用空间,如下所示。

    64

  9. 单击“+”以打开“创建分区”弹出窗口。选择“EFI 系统分区”。此外,将大小更改为 500 MB,然后单击“此空间结束”按钮。接下来,单击“确定”。

    65

  10. 选择下图所示的分区。接下来,单击“-”删除该分区。

    66

  11. 选择可用空间,如下所示。

    67

  12. 单击“+”以打开“创建分区”弹出窗口。选择“Ext4 日志文件系统”。另外,选择“/”作为“安装点”。不要更改分区大小。接下来,单击“确定”。

    68

  13. 单击下面显示的“立即安装”按钮。

    69

  14. 单击下图所示的“继续”按钮。

    70

  15. 选择您想要的位置。

    71

  16. 选择您的键盘。

    72

  17. 继续并安装 Ubuntu Linux。完成后,重新启动并按住option键以调用启动管理器。选择从 MacOS 卷启动。

将 Ubuntu 添加到启动管理器

安装 Ubuntu 后,该命令diskutil list disk0产生以下输出。

/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *256.0 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS Macintosh HD            140.0 GB   disk0s2
   3:                 Linux Swap                         800.0 MB   disk0s3
   4:           Linux Filesystem                          39.3 GB    disk0s4
   5:                        EFI NO NAME                 500.2 MB   disk0s5
   6:         Microsoft Reserved                         16.8 MB    disk0s6
   7:       Microsoft Basic Data BOOTCAMP                70.1 GB    disk0s7
Run Code Online (Sandbox Code Playgroud)

该命令sudo gpt -r show /dev/disk0产生了以下输出。

      start       size  index  contents
          0          1         PMBR
          1          1         Pri GPT header
          2         32         Pri GPT table
         34          6         
         40     409600      1  GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
     409640  273437496      2  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
  273847136     262144         
  274109280    1562496      3  GPT part - 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F
  275671776       1312         
  275673088   76732416      4  GPT part - 0FC63DAF-8483-4772-8E79-3D69D8477DE4
  352405504     976896      5  GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
  353382400      32768      6  GPT part - E3C9E316-0B5C-4DB8-817D-F92DF00215AE
  353415168  136818688      7  GPT part - EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
  490233856    9766151         
  500000007         32         Sec GPT table
  500000039          1         Sec GPT header
Run Code Online (Sandbox Code Playgroud)

注意:3 个占位符分区已替换为安装 Ubuntu 时指定的分区。

要使 Ubuntu 出现在启动管理器中,请执行以下步骤。

  1. 通过输入下面给出的命令挂载 EFI 系统分区。

    diskutil mount disk0s1
    diskutil mount disk0s5
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用 Finder 应用程序将EFI文件夹从卷 复制EFI到卷NO NAME

  3. 删除EFI在 Ubuntu 安装过程中添加到卷中的文件夹和文件。为此,请将卷EFI/Ubuntu上的文件夹移至 EFI废纸篓。

  4. NO NAME卷中删除 Microsoft 相关文件。要做到这一点,移动文件夹EFI/Microsoft和文件 EFI/Boot/bootx64.efi的上NO NAME卷到垃圾箱。

  5. 清空垃圾。

  6. 复制该文件grubx64.efiNO NAME从文件夹卷/EFI/ubuntu到文件夹/EFI/Boot

  7. 重命名该文件grubx64.efi中的/EFI/Boot文件夹上NO NAME卷的名称bootx64.efi

  8. (可选)从 sourceforge 网站Mac icns 下载图标集合。使用 Finder 应用程序打开下载的文件mac-ices.dmg,然后输入以下命令将 Ubuntu 图标文件复制os_ubuntu.icnsNO NAME卷中。

    cp /Volumes/mac-icns/OSX10.11.6/os_ubuntu.icns "/Volumes/NO NAME/.VolumeIcon.icns"
    
    Run Code Online (Sandbox Code Playgroud)

    这会将以下 Ubuntu 图标添加到启动菜单。

    os_ubuntu.png

    注意:完成后,您可以使用 Finder 应用程序弹出mac-icns卷。

  9. 使用 Finder 应用程序或输入以下命令卸载标有EFI和的 EFI 系统分区NO NAME

    diskutil unmount disk0s1
    diskutil unmount disk0s5
    
    Run Code Online (Sandbox Code Playgroud)