User-Profile-Image
hankin
  • 5
  • 联想/Lenovo
    • ThinkPad
  • 华硕/ASUS
  • 戴尔/DELL
  • 惠普/HP
  • 宏碁/Acer
  • 神舟/Hasee
  • 微星/msi
  • 华为/HUAWEI
  • 小米/xiaomi
  • DIY组装机
  • 其它品牌
  • 分类
    • 黑苹果资讯
    • 驱动下载
    • 软件工具
    • 联想/Lenovo
    • 神舟/Hasee
    • 没有人要
    • 戴尔/DELL
    • 惠普/HP
    • 微星/msi
    • 小米/xiaomi
    • 宏碁/Acer
    • 安装教程
    • 华硕/ASUS
    • 华为/HUAWEI
    • ThinkPad
    • Mac教程
    • DIY组装机
  • 页面
    • 关键字
  • 友链
    • 云东方
    • Edge插件网
    • 统信UOS之家
    • 表盘吧
    • 云东方内衣网
Help?

Please contact us on our email for need any support

Support
  • 首页
  • 黑苹果资讯
  • Mac教程
  • 软件工具
  • 驱动下载
  • 系统下载
  • 安装教程
  • 黑苹果特惠
    首页   ›   Mac教程   ›   正文
Mac教程

OpenCore如何配置Linux双启动

2021-02-15 08:41:15
2184  0 1

方法A:链式加载EFI引导程序(GRUB2,系统引导)

方法1:使用BlessOverride

如果未自动选择Linux,则将以下内容添加到您的config.plist中:

Misc -> BlessOverride -> \EFI\arch\grubx64.efi

一些常见的Linux Bootloader路径:

  • \EFI\arch\grubx64.efi
  • \EFI\ubuntu\grubx64.efi
  • \EFI\systemd\systemd\systemd-bootx64.efi
  • 检查您的分布¯\ _(ツ)_ /¯

blessoverride.4c95ffdb

方法2:使用efibootmgr(推荐)

efibootmgr是用于在UEFI固件(ex-BIOS)中操纵EFI Boot Manager的程序。使用它,您可以创建新条目并添加Linux引导管理器(GRUB2,systemd-boot等),以使其出现在OpenCore上,并可以由OC选择和设置为默认(使用Ctrl +突出显示时输入)。要做到这一点:

  1. 知道您正在使用哪个引导程序/管理器(GRUB2或systemd-boot或其他任何东西)
  2. 通过OpenCore引导到linux,您可能希望使用UEFI Shell为您的引导程序/管理器执行EFI应用程序
  3. 找出您的引导加载程序/管理器的路径,通常在EFI中(如果已正确设置)
    1. 在Linux安装的终端窗口中,运行lsblk(在大多数发行版中可用)
      $ lsblk
      NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
      ... 
      sda            8:0    0 223.6G  0 disk 
      ├─sda1         8:1    0   200M  0 part /boot/efi
      ├─sda2         8:2    0 116.3G  0 part 
      └─sda3         8:3    0   107G  0 part /
      ...
      
      • 检查安装点部分以获取系统根/分区(在此处sda3)
      • /boot/efi 我的EFI分区已安装在其中(如果您在fstab中正确添加了它,则应该这样做)
      • 引导加载程序/管理器在 /boot/efi
      • /boot/efi1在这种情况下,分区号是(可能是sda1或nvme0nXp1或其他),如果您的efi在另一个分区中,请记住它是哪个号码
    2. 通过运行将目录更改为安装EFI分区的目录cd /path/to/efi(例如cd /boot/efi)
    3. 进入后,通常会找到一个名为的文件夹,EFI其中包含BOOT和其他文件夹,其中一个文件夹可能包含您的bootloader / manager EFI Application二进制文件,通常在
      • EFI/arch/grubx64.efi -用于带有grub2的Arch
      • EFI/ubuntu/grubx64.efi -对于具有grub2的Ubuntu
      • EFI/systemd/systemd-bootx64.efi -用于systemd-boot(与Arch配合使用的路径)
      • EFI/fedora/grubx64.efi -适用于带grub2的Fedora
      • 或运行find . -iname "grubx64.efi"或find . -iname "systemd-bootx64.efi"在您的EFI文件夹中(您可以将文件名更改为正在使用的名称)
    4. 注意:
      • 二进制路径
      • 二进制文件的分区号
      • 二进制文件的磁盘路径(/dev/sda或/dev/nvme0nX)
  4. efibootmgr在您的linux系统中安装(通常它是ubuntu中内置的,但是例如需要在arch上安装)
  5. 安装后,以sudoer / superuser身份运行(或使用sudo)
    efibootmgr -c -L "Linux" -l "\EFI\pathto\filex64.efi" -d "/dev/sda" -p 1
    
    • -c: 创建
    • -L "Linux":标记启动项(您可以将其更改为所需的任何名称)
    • -l "\EFI\pathto\filex64.efi":加载程序文件路径,必须采用UEFI固件可以使用的格式,这意味着\要进行路径设置,而不是/在Unix中找到
    • -d "/dev/sda":磁盘路径,以便efibootmgr知道UEFI固件应从哪个磁盘读取文件,/dev/nvme0nX如果您使用的是nvme ,则可以为(以X表示)
    • -p 1:指向我们之前找到的分区号,如果您的EFI分区是第一个分区,则可以省略
  6. 重新启动并检查OpenCore,您会发现一个名为的新条目EFI,因为它也可以指向其他启动条目,这是OpenCore设计的,而不是bug。

笔记:

它可以用于要添加到UEFI Boot Manager中的任何EFI应用程序。

方法B:链加载内核(必须支持EFISTUB)

一些linux内核在配置中启用了EFISTUB,这使得它们可以由UEFI固件加载,就像常规的UEFI应用程序一样(整洁,对吗?),我们可以将此功能与OpenCore一起使用,并允许它作为EFI应用程序加载内核。还传递引导参数和其他信息。

1.确定您的根分区

我们首先需要确定您的根分区及其UUID / PARTUUID,此信息将帮助我们指向内核/系统根的正确分区。

1.您的内核和系统根目录位于同一分区中:(在此示例中使用Arch)

  • 在Linux安装的终端窗口中,运行lsblk(在大多数发行版中可用)
    $ lsblk
    NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    ... 
    sda            8:0    0 223.6G  0 disk 
    ├─sda1         8:1    0   200M  0 part /boot/efi
    ├─sda2         8:2    0 116.3G  0 part 
    └─sda3         8:3    0   107G  0 part /
    ...
    
    • 检查安装点部分以获取系统根/分区(在此处sda3)
    • /boot/efi 我的EFI分区已安装在其中(如果您在fstab中正确添加了它,则应该这样做)
    • 内核和initramfs存储在/boot主系统根分区的一部分中
  • 现在我们需要知道运行哪个UUID / PARTUUID blkid | grep -i <system_root_partition>,例如:(blkid | grep -i sda3必须是root用户)
    # blkid | grep -i sda3
    /dev/sda3: UUID="3d4768d7-d33e-4f9f-a821-e80eba22ca62" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="a1073e53-c768-4ce5-89ad-b558669bdb89"
    
    • 您将同时获得UUID / PARTUUID,并将它们保存在某处。
  • 浏览/boot并列出文件,您应该找到您的内核和initramfs
    $ cd /boot
    $ ls -l
    total 51698
    drwxr-xr-x 7 root root    34304 Jan  1  1970 efi
    drwxr-xr-x 6 root root     4096 Sep 18 19:42 grub
    -rw-r--r-- 1 root root 10144696 Sep 22 23:31 initramfs-linux.img
    -rw-r--r-- 1 root root 32047033 Sep 22 23:32 initramfs-linux-fallback.img
    -rw-r--r-- 1 root root  3161088 Jun 16 17:50 intel-ucode.img
    -rw-r--r-- 1 root root  7541344 Sep 22 23:31 vmlinuz-linux
    
    • 你看我的内核命名vmlinuz-linux与initramfs-linux.img它的initramfs的,具有后备IMG,也intel-ucode.img为垃圾英特尔缓解
      • 如果您使用的是AMD,则可能还会发现 amd-ucode.img
      • 其他一些发行版可能会将这些映像存储在其他位置,请检查您的发行版以及它如何处理CPU ucode固件
  • 重新启动到OpenCore,然后按Space,它应该显示更多选项,其中之一应该是OpenShell.efi。如果您没有它,请下载OpenCore zip,并从OC / Tools中获取它,并将其添加到您的config.plist中,ProperTree可以使用OC Snapshot实现。

2.您的内核在您的EFI分区中

如果您使用的是systemd-boot,请确保将内核安装在EFI分区中,以便systemd UEFI引导加载程序可以检测并加载内核:基本上确保它位于FAT32分区中,而EFI分区应该已经在该分区中。

2.识别您的UEFI路径和设备

  • 在壳
    • 运行map -r -b以列出所有设备(使用-b断开滚动条)
      • BLKX: 是否扫描了所有分区/磁盘
      • FSX:是所有可探索的文件系统
      • PciRoot(0x0)/Pci(AxB,CxD)/Sata还是Nvme您的驱动器类型(nvme或ahci)
      • HD(X,GPT,<PARTUUID>,...)还是HD(X,MBR)您的驱动器分区X是数字,GPT / MBR是磁盘分区方案,然后是PARTUUID
      • 例子:
        Mapping table
              FS0: Alias(s):HD0a0a1:;BLK1:
                  PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0x0,0x0)/HD(1,GPT,4C86153F-3A91-4328-878A-807A8FA944A1,0x28,0x64000)
              FS1: Alias(s):HD0a0a2:;BLK3:
                  PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0x0,0x0)/HD(2,GPT,B186A074-AE41-495C-BAF3-04AD655A73FB,0x64028,0xE8B0C90)/VenMedia(BE74FCF7-0B7C-49F3-9147-01F4042E6842,1D89CBABD1BB094B87762CDCDC3168F6)
              FS2: Alias(s):HD0a0a2:;BLK4:
                  PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0x0,0x0)/HD(2,GPT,B186A074-AE41-495C-BAF3-04AD655A73FB,0x64028,0xE8B0C90)/VenMedia(BE74FCF7-0B7C-49F3-9147-01F4042E6842,43B537EA89133A48A9640D5A373D2982)
              FS4: Alias(s):HD0a0a2:;BLK6:
                  PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0x0,0x0)/HD(2,GPT,B186A074-AE41-495C-BAF3-04AD655A73FB,0x64028,0xE8B0C90)/VenMedia(BE74FCF7-0B7C-49F3-9147-01F4042E6842,9FEEB42E4604B44BB4CB39A9D6F41DB8)
              FS5: Alias(s):HD0a0a2:;BLK7:
                  PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0x0,0x0)/HD(2,GPT,B186A074-AE41-495C-BAF3-04AD655A73FB,0x64028,0xE8B0C90)/VenMedia(BE74FCF7-0B7C-49F3-9147-01F4042E6842,EDB22B3A8A95AC4B9A66E4E287559689)
              FS6: Alias(s):HD0a0a2:;BLK8:
                  PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0x0,0x0)/HD(2,GPT,B186A074-AE41-495C-BAF3-04AD655A73FB,0x64028,0xE8B0C90)/VenMedia(BE74FCF7-0B7C-49F3-9147-01F4042E6842,FA8B4C241BA35347B093F2E560B563EA)
              FS3: Alias(s):HD0a0a2:;BLK5:
                  PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0x0,0x0)/HD(2,GPT,B186A074-AE41-495C-BAF3-04AD655A73FB,0x64028,0xE8B0C90)/VenMedia(BE74FCF7-0B7C-49F3-9147-01F4042E6842,93DFEA9BE3D44D4CBE5A8A4F978348D2)
             BLK0: Alias(s):
                  PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0x0,0x0)
             BLK2: Alias(s):
                  PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0x0,0x0)/HD(2,GPT,B186A074-AE41-495C-BAF3-04AD655A73FB,0x64028,0xE8B0C90)
             BLK9: Alias(s):
                  PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0x0,0x0)/HD(3,GPT,A1073E53-C768-4CE5-89AD-B558669BDB89,0xE914CB8,0xE8B0C90)
        
        • BLK0 似乎是磁盘BLK,因为其路径未显示任何分区编号或UUID
          • 这是合乎逻辑的,因为固件首先要查找的是磁盘,而不是分区
        • 我有BLK1 / BLK2 / BLK9,这是我的3个主要分区
          • 由于我从OpenCore加载了APFS驱动程序,因此显示了新的BLK设备,因此添加了更多分区,而这些分区实际上只是APFS容器分区,可以忽略这些分区
          • 之所以可以忽略它们,是因为您可以看到它们具有相同的PARTUUID,对于这些分区,我们不在这里
        • FS0似乎是BLK1,这是我的EFI分区,它也是FAT32格式的,OC位于其中
          • 在多磁盘设置中,FS0:可以是UEFI固件首先检测到的内容,并不意味着OC始终位于FS0中,在这种情况下,FS0:可以指向USB设备或SATA设备。通常,大多数固件将遵循此设置来读取/查找分区:USB> SATA> NVME,这不是规范,因为其他一些固件可以做其他事情(它也取决于引导顺序设置)。
          • 检查您的Linux内核是否存在(如果使用systemdboot)
            • cd FSX:
            • ls
            • 用你的眼睛和脑细胞
          • 只需确保在执行任何操作之前已正确读取分区位置
        • FS0 / BLK2 / BLK9全部驻留在Sata驱动器中(这是此示例设备的主启动驱动器)
          • 这匹配Linux读取设备sdX而不是nvmeXnX
          • 如果是nvme驱动器,您将看到Nvme而不是Sata
        • BLK9的PARTUUID与我的根文件系统匹配 a1073e53-c768-4ce5-89ad-b558669bdb89
          • 但是请记住,它用大写字母表示!
        • BLK1和BLK2具有FSX可探索性,这意味着UEFI固件可以浏览并读取文件,而BLK9(不是ext4分区)则不能,这意味着UEFI需要合适的驱动程序来加载其内容。
    • 标识您的EFI分区(在此示例中为FS0 :)
      • 跑 map -r > FSX:\drives_map.txt
        • 这将运行map并将输出保存到FSX:在一个名为的文件中drives_map.txt
        • 需要注意的是UEFI固件使用的Windows风格的路径斜杠\不/
  • 重新启动到其中带有ProperTree的macOS / Linux发行版

3.将启动项添加到OpenCore的配置文件中

  • 以防万一:
    • 您的内核在系统分区中:
      • 为您正在使用的文件系统下载合适的UEFI驱动程序:
        • 下载rEFInd(在新窗口中打开)
          • 解压缩
          • 浏览提取的zip> refind> drivers_x64
          • 您会找到以下驱动程序:
            • ext4
            • ext2
            • btrfs
          • 选择所需的UEFI驱动程序并将其复制到OC>驱动程序
          • 将其添加到您的config.plist中(可以使用ProperTree> File> OC Snapshot)
    • 您的内核位于EFI分区(systemdboot)中,无需设置任何fs驱动程序
  • (可选)如果使用的是GRUB2,请确保获取的副本grub.cfg以获取内核参数
  • 在plist编辑器中打开config.plist(推荐ProperTree),在Misc> Entries下,创建一个新的子项,其类型为Dictionary:
    钥匙 类型 价值 笔记
    评论 细绳 无论您想在这里写什么,我都只是评论而已 —
    已启用 布尔型 True/ ON/1 —
    姓名 细绳 您想要的操作系统名称 可以是你想要的任何东西
    小路 细绳 模板:
    PciRoot(your_ids)/ Pci(your_ids)/…/ Type(your_ids)/ HD(X,SCH,PARTUUID,stuff,from_map)/ \到\内核的路径\示例: PciRoot(0x0)/ Pci(0x1D ,为0x0)/ PCI(0x0,0x0)/ NVMe(0x1,9B-64-50-F1-5C-38-25-00)/ HD(6,GPT,608DA4F8-DA9E-4792-829F-A4CF4E5B8B82,0x2C431800,0x3B10800)/

    \ boot \ vmlinuz-linux

    检查下面
    争论 细绳 模板:
    initrd = \ path \ to \ rd.img \ if \使用过other_kernel_arguments
    示例:
    initrd = \ boot \ intel_ucode.img initrd = \ boot \ initramfs-linux.img root = PARTUUID = 608da4f8-da9e-4792-829f-a4cf4e5b8b82 ro quiet intel_iommu =在iommu = pt上
    检查下面
    辅助的 布尔型 False/ NO/0 -False :始终显示-True
    :在按下空格之前一直隐藏
    -如果将Misc \ Boot \ HideAuxiliary = True设置为True,则需要True
    • 路径说明:
      • your_ids:来自地图文本文件
      • 类型:NVMe / SATA
      • X:分区号
      • SCH:磁盘方案(GPT / MBR)
      • 产妇
      • stuff,from_map:从地图上获取它们
      • \ path \ to \ kernel:这是内核二进制文件的路径
      • TL; DR:从地图文本文件复制分区的路径。
        • 注意1:\对内核路径使用反斜杠,这就是UEFI固件处理文件路径的方式
        • 注意2:/对PciRoot路径使用常规斜杠,如示例和模板中所示
    • 参数注释:
      • 您可以根据需要添加任意数量initrd=(如果您使用的是Linux,则应该知道原因和方式)
      • 您的其他参数与其他任何引导程序相同,您可以直接在配置中添加/删除/修改
  • 笔记
    • 您可以使用与上述相同的方案来添加其他efi文件或可加载uefi的文件(例如systemdboot efi,Windows bootmgfw.efi …)
    • 您将无法使用Ctrl + Enter将其设置为默认启动选项,因此每次启动时都必须选择它。

如本文“对您有用”,欢迎随意打赏作者,让我们坚持创作!

1 打赏
评论 (0)

点击这里取消回复。

欢迎您 游客  

赞助商
随机文章
修复macOS Big Sur问题和疑难解答
2年前
Mibook-air EFI引导文件下载
2年前
如何在Mac上管理订阅
2年前
如何使用Finder(Big Sur和Catalina)在MacOS中还原iOS备份
2年前
Hackintosh-Dell-OptiPlex-7080-Series EFI引导文件下载
2年前
Hackintosh黑苹果为什么要USB映射
2年前
以下是预订 Apple 强大的新 Mac Studio 的方法
1年前
如何使用Radio Garden将全球广播电台带到您的iPhone或Mac
2年前
iMac喜欢什么?
ACER-A315-53G AppleALC.kext V1.5.5 Apple Glasses ASUS S4000VA Catalina 10.15.7 Clevo-NH50-NH70-Hackintosh Clover Clover EFI Clover_v2.5k_r5070 EFI引导文件 EFI引导文件下载 EFI文件 Face ID Hackintosh Homebrew iMac KEXT修补程序 Lenovo 天逸 510S Lilu.kext Lilu.kext驱动 macOS Big Sur OC下载 OC学习基本教程 Oc引导文件 OpenCore OPENCORE 0.6.1 EFI OpenCore入门 Opencore引导文件 S5300FN Safari自动填充 XiaoXinAir14IML XPS13-9300-hackintosh Y7000P-I7-9750H Yoga13 Z10-CU7PF 三叶草EFI引导 下载地址 修复macOS Big Sur 安装程序 引导文件下载 神舟战神 高价VR 产品 黑苹果 黑苹果OC 黑苹果声卡
赞助商
Copyright © 2023 Copyright © 2020-2020 关于本站-隐私申明-版权申明-广告合作-Sitemap-XML-支持我们
smarty_hankin 主题. Designed by hankin
主页
页面
  • 关键字
博主
imac
imac 管理员
专注于黑苹果系统教程驱动软件分享
174 文章 6 评论 193685 浏览
测试
测试
赞赏作者

请通过微信、支付宝 APP 扫一扫

感谢您对作者的支持!

 支付宝 微信支付