AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1256686
Accepted
darth_epoxy
darth_epoxy
Asked: 2020-07-06 20:38:49 +0800 CST2020-07-06 20:38:49 +0800 CST 2020-07-06 20:38:49 +0800 CST

无法在 Mac mini 2020 上安装 Ubuntu 20.04

  • 772

我有一个全新的 2020 Mac mini(Intel i3 四核芯片)。我的安装(专用 Ubuntu NO 双启动)因著名而失败;

执行“grub-install /dev/nvme0n1”失败。这是一个致命错误。

我通过启动进入恢复模式并选择“无安全性”和“允许从外部驱动器启动”绕过了 T2 芯片。因此,当我打开 Mac mini 并按下 Alt 键时,它会显示两个图标来选择启动、硬盘驱动器和闪存驱动器。我的闪存驱动器有ubuntu-20.04-desktop-amd64.iso,它已由我工作的 Ubuntu 14.04 LTS 笔记本电脑上的启动磁盘创建者制作成可启动的 USB。

无论我做什么,安装都会失败,Mac mini 随后会启动到功能有限的旧 Grub 2.04。

我无法遵循这个好建议在 mac mini 2018 上安装 ubuntu 18.04,因为我无法以这种方式安装 rEFInd。

我已经尝试了几个 Matt Gadient(传奇)可启动 iso 版本。

我已经使用 gparted 将整个驱动器重新格式化为 gpt 并且基本上从头开始但找不到任何可以让安装程序完成的分区组合(除了在没有 EFI 分区时强制它安装,在这种情况下安装程序不会失败但显然Mac mini 无法启动任何东西)。

我已经从这些页面尝试了几个手动 grub-install 选项,但最常见的错误是 /cow is busy and it cannot be unmounted。

当我使用 boot-repair 启动时,程序运行但它没有检测到任何东西。如果我终端和 lsblk 从该程序中它甚至不显示 nvme0n1 驱动器。

那么,有什么想法可以让安装程序工作或如何手动安装 grub?

bootloader mac-mini uefi grub-efi 20.04
  • 3 3 个回答
  • 9682 Views

3 个回答

  • Voted
  1. Best Answer
    darth_epoxy
    2020-08-09T02:52:19+08:002020-08-09T02:52:19+08:00

    好的,这对我有用。
    从 USB 上的 20.04 iso 让安装程序完成它。
    它将使用 /boot/efi 创建一个小分区,并使用 / 占用驱动器的其余部分,
    因为您知道不需要交换分区,因为 Ubuntu 现在使用交换文件。
    根据我上面的问题,安装程序似乎会失败。
    执行“grub-install /dev/nvme0n1”失败。这是一个致命错误。
    当您重新启动时,您将获得一个有限的 grub 终端。
    完整的注释在这里,但以下是 rohiths 答案的基础知识;
    在 grub 控制台上;

    grub> ls
    
    (memdisk) (hd0) (hd0,msdos) (hd1) (hd2) (hd2,gpt3) (hd2,gpt2) (hd2,gpt1)
    

    您可能不会得到与此完全相同的结果,但您会有一些类似的选项。

    现在,找到包含用户主目录的分区。

    grub> ls (hd2,gpt2)/home
    
    rohith/
    

    继续尝试,直到找到为止。

    最后一步的结果有两部分:(hdX,gptY)。您需要保留 hdX 部分,但通过所有 gptY 选项查找 /boot/grub 目录。

    grub> ls (hd2,gpt2)/boot/grub
    
    unicode.pf2 [...] grub.cfg
    

    现在您想将其设置为您的根以执行更多命令。

    grub> set root=(hd2,gpt2)
    

    正确启动的唯一方法是使用驱动器的 UUID。为拿到它,为实现它 -

    grub> ls -l (hd2,gpt2)
    

    记下 UUID。您必须在下一步中手动输入。

    grub> linux /boot/vmlinuz〈...tab here!...〉.efi.signed root=UUID=〈the UUID from above〉
    

    GRUB 控制台可以完成制表符,因此如果您只需输入 vmlinuz 部分并点击制表符,然后点击 . 并再次制表符,您不必输入整个文件名。确保 efi.signed 部分存在。

    现在,设置初始 RAM 磁盘

    grub> initrd /boot/initrd〈...tab here!...〉
    

    您应该能够使用命令启动

    grub> boot
    

    这将重新启动并让您进入登录屏幕,就像您已完美安装并重新启动一样。如果您有互联网连接,此时您可以让系统保持最新,但在修复 grub 之前不要重新启动。注意引导分区不正确,引导加载程序实际上需要重新格式化为 FAT32,带有挂载点 /boot/efi 和标志 (boot,esp),这只需使用 gparted 即可完成。
    根据 rohiths 的回答,系统最初无法启动,因为 Mac 引导加载程序期望 EFI 分区被格式化为 HFS+,典型的 Mac 文件系统,而 Ubuntu 安装程序实际上将其格式化为 VFAT。但这在我的机器上是不正确的。
    所以现在你可以用 boot/efi 挂载新分区并重新安装 grub,检查你的配置和 update-grub 然后你可以重新启动。

    • 4
  2. Ismail Moukafih
    2021-01-15T08:29:22+08:002021-01-15T08:29:22+08:00

    当我在我的 Mac min 上安装 Ubuntu 20.04/10 时,我遇到了同样的问题。为了解决这个问题,我从我的 USB 和终端启动到 Ubuntu,我使用这个命令来修复 grub。首先弹出任何外部驱动器。

    sudo mkdir -p /mnt/drive
    
    sudo mount /dev/nvme0n1p2 /mnt/drive
    sudo mount /dev/nvme0n1p1 /mnt/drive/boot/efi
    
    sudo mount --bind /dev /mnt/drive/dev
    sudo mount --bind /dev/pts /mnt/drive/dev/pts
    sudo mount --bind /proc /mnt/drive/proc
    sudo mount --bind /sys /mnt/drive/sys
    
    sudo cp /etc/resolv.conf /mnt/drive/etc/resolv.conf
    sudo chroot /mnt/drive
    su - <your username>
    sudo update-grub
    
    • 1
  3. michikite
    2022-05-29T09:26:27+08:002022-05-29T09:26:27+08:00

    对我来说,这个错误有一个更简单的解决方案。使用风险自负。小心分区!备份所有数据。

    我使用加密的 luks ext4安装。 双启动

    • 为 ubuntu 创建一个分区(例如使用 macos)
    • 从 USB 启动到 ubuntu live 22.04
    • “试试 ubuntu”
    • 在没有引导加载程序的情况下安装 Ubuntu使用ubiquity -b
    • 点击“其他”
    • 删除您在 macOS 中创建的分区,使其显示“可用空间”
    • 创建一个 1GB 的 ext4 分区并将其映射到 /boot
    • 为剩余的可用空间创建一个加密分区并映射到 /
    • 点击安装
    • 再次从 USB 重启进入实时模式
    • 手动安装 GRUB

    这是我手动安装的方法(当然要确保分区名称与您的匹配!):

    sudo cryptsetup luksOpen /dev/nvme0n1p4 my_encrypted_volume
    sudo mount /dev/mapper/my_encrypted_volume /mnt
    
    sudo mount --bind /dev /mnt/dev &&
    sudo mount --bind /dev/pts /mnt/dev/pts &&
    sudo mount --bind /proc /mnt/proc &&
    sudo mount --bind /sys /mnt/sys
    
    sudo mount /dev/nvme0n1p3 /mnt/boot 
    sudo mount /dev/nvme0n1p1 /mnt/boot/efi
    
    sudo cp /etc/resolv.conf /mnt/etc/resolv.conf
    
    sudo chroot /mnt
    
    apt-get install grub-efi
    
    grub-install --uefi-secure-boot --target=x86_64-efi --efi-directory=/boot/efi boot-directory=/boot --bootloader-id=GRUB --no-nvram  --removable
    
    sudo update-grub
    
    • 0

相关问题

  • 如何从双引导 Windows/Ubuntu 更改为单引导 Ubuntu?

  • 如何启用启动启动画面?

  • 我可以从外部 USB CD 驱动器中的 CD 启动 grub2 吗?

  • 如何在启动时获取 grub 菜单?

  • 如何更改 BURG 的菜单顺序

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve