Ubuntu на Mac :Не удалось выполнить «grub -install /dev/nvme0n1»

apt -ежедневно делает только одну вещь по умолчанию :загружает список устанавливаемых/обновляемых пакетов. Если вы его отключите, вам нужно будет чаще запускатьapt update(или аналогичный )перед обновлением или установкой пакетов.

Ничто не зависит от apt -daily (вы можете проверить, что systemctl list-dependencies --reverse apt-dailyне мешает запуску чего-либо еще ), поэтому это не замедляет процесс загрузки, за исключением использования ресурсов, которые могут быть использованы другими задачами хочу. Единственный ресурс, который ежедневно потребляет apt -, — пропускная способность сети. Это может занять некоторое время, если в список пакетов были внесены значительные обновления, но это проблема только в том случае, если ваша пропускная способность очень ограничена, и более важно иметь большую пропускную способность в течение первых нескольких секунд после загрузки, чем в какое-либо другое время..

systemd-analyze blameпоказывает, что занимает много времени, но не показывает, каково воздействие. Поскольку apt -daily больше ничего не блокирует, тот факт, что это занимает много времени, влияет только на сам apt -daily, а не на остальные функции.systemd-analyze critical-chainболее полезен, если вас беспокоит время загрузки, например, сколько времени потребуется, чтобы ваш компьютер стал полезным.

Таким образом, безопасно выключать apt -ежедневно, если вы не забываете запускать apt updateперед проверкой обновлений, и вы делаете это регулярно, не полагаясь на какие-либо автоматические уведомления о доступных обновлениях. Но это не особенно полезно.

1
27.02.2021, 17:05
2 ответа

У меня возникла точно такая же проблема при установке Ubuntu 20.04.2.0 LTS на MacBook Pro 2020 года с четырехъядерным -процессором Intel Core i5 с тактовой частотой 2 ГГц и macOS Big Sur версии 11.1. Проведя два дня, пытаясь заставить его работать, я наконец нашел решение. Предупреждаем, что это долгий процесс.

Из моего исследования я обнаружил, что проблема связана с тем, что загрузчик Mac ожидает, что раздел EFI будет отформатирован как HFS+, тогда как установщик Ubuntu форматирует его как VFAT (, как заявил Рохит Мадхаван здесь).

Чтобы обойти эту проблему, я нашел три возможных решения:

  1. Используйте метод Рохита Мадхавана .
  2. Смените загрузчик с GRUB на rEFInd .
  3. Установите Ubuntu на внешний SSD, используя метод Флориса ван Брейгеля .

Первый вариант был опубликован семь лет назад и требовал добавления неподписанного репозитория к моей установке Ubuntu (, чего я не хотел делать из соображений безопасности ). Я не понимал всех последствий перехода с GRUB на rEFInd, поэтому мне было неудобно использовать второй вариант, и, наконец, я не хотел медленного доступа к памяти с помощью внешнего SSD, поэтому я не хотел использовать третий вариант..

Мое окончательное решение состояло в том, чтобы использовать части вариантов один и три, чтобы создать собственный файл конфигурации GRUB, отформатированный в HFS+, чтобы я мог загрузить Ubuntu с раздела на моем внутреннем SSD.

Резервное копирование

Хотя этот процесс не должен вызвать у вас никаких проблем, если произойдет ошибка, она может стереть ваш диск. В результате всегда безопаснее сделать резервную копию всего, прежде чем продолжить.

Установка Ubuntu

  1. Откройте Дисковую утилиту на Mac.
  2. Выберите свой диск Apple SSD(. Обязательно выберите родительский диск, а не контейнер ).
  3. Выберите «Раздел».
  4. Нажмите кнопку «плюс» и создайте новый раздел с именем Ubuntu Boot Loaderв формате Mac OS Extended (Journaled)и размером 128 МБ. Это будет служить местом для вашего загрузчика Ubuntu позже.
  5. Нажмите кнопку «плюс» еще раз и создайте еще один новый раздел с именем Ubuntuв формате MS-DOS (FAT)и выделите для него объем памяти, который вы хотите иметь для установки Ubuntu (Я бы рекомендовал не менее 50 ГБ ).
  6. Загрузите Ubuntu из здесь .
  7. Подключите USB-накопитель и перейдите к Дисковой утилите. Отсюда найдите USB, нажмите Erase, выберите формат MS-DOS (FAT)и выберите схему GUID Partition Map, затем нажмите Erase.
  8. Используйте Etcher , чтобы записать этот файл ISO на USB-накопитель. Имейте в виду, что это приведет к очистке всего USB (см. это для более подробной информации ).
  9. Перезагрузите компьютер, нажав Cmd+Rпри перезагрузке. Это переведет вас в режим восстановления.
  10. Войдите в свою учетную запись, перейдите в пункт меню Utilities, выберите первое в раскрывающемся меню и измените настройки на No Securityи Allow booting from external drive.
  11. Выключите компьютер.
  12. Подключите загрузочный USB-накопитель и включите компьютер, удерживая нажатой клавишу Option.
  13. Выберите загрузочный диск EFI (должен быть желтым ). Это может показать вам предупреждение Update Required. Нажмите Update. Это перезагрузит ваш компьютер. Убедитесь, что вы держите Option, когда он снова включится. Затем снова нажмите на загрузку EFI.
  14. Выполните шаги с первого по пятый из здесь .
  15. На странице Installation Typeвыберите Something Else.
  16. Найдите созданный вами раздел MS-DOS (FAT)и нажмите минус.
  17. Выберите Free Spaceи нажмите плюс.
  18. Создайте пространство памяти Linux, выбрав необходимое количество ГБ, выберите Ext4 Journaling File System, отметьте Format the partitionи установите точку монтирования как /.
  19. Выберите Free Spaceи нажмите плюс.
  20. Создайте пространство подкачки Linux, используйте оставшуюся память и выберите формат swap.
  21. В разделе Device for boot loader installationвыберите раздел, в котором находится отформатированная ext4память.
  22. Нажмите Install Now.
  23. Продолжить процесс установки. Вы снова увидите сообщение об ошибке grub-install /dev/nvme****, но не беспокойтесь. Просто нажмите перезапустить. Вам будет предложено удалить USB, а затем нажмите Enter.

Теперь на вашем компьютере установлена ​​Ubuntu, но ваш загрузчик GRUB не сможет открыть ее без посторонней помощи.

Вход в Ubuntu

  1. Перезагрузите компьютер и нажмите клавишу Optionпри загрузке.
  2. Выберите загрузочный диск EFI (, это ваша установка Ubuntu ).
  3. Должен отображаться терминал GRUB.
  4. Выполните следующие шаги, описанные Рохит Мадхаван :

В консоли grub введите ls

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.efi.signed root=UUID=〈the UUID from above〉

Консоль GRUB может выполнять автодополнение с помощью табуляции,поэтому, если вы просто наберете часть vmlinuz и нажмете Tab, затем нажмите. и снова табуляция, вам не нужно будет вводить полное имя файла. убедитесь, что часть efi.signed присутствует.

Теперь установите начальный RAM-диск

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

Вы должны загрузиться с помощью команды

grub> boot

Теперь вы окажетесь в своей установке Ubuntu, как если бы все было установлено правильно. Но каждый раз, когда вы перезагружаетесь, вы должны повторять этот процесс. Чтобы обойти это, вы можете сделать следующее.

Постоянное исправление проблемы с GRUB

Здесь вы хотите переформатировать загрузчик VFAT, который установка Ubuntu сделала по умолчанию, в HFS+. Это можно сделать, создав собственную конфигурацию загрузчика с помощью GRUB. Я использовал тот же метод, что и Флорис ван Брейгель (, но на моем внутреннем SSD, а не на внешнем SSD ).

  1. Следуя инструкциям, начиная с заголовка Making Ubuntu bootable part 1с этого до конца Turn SIP back on (for security). Единственные изменения заключаются в том, что диск, на который вы должны ссылаться, — это ваш внутренний Ubuntu Boot Loaderраздел (, вам не нужен внешний диск с этим разделом.
  2. Перезагрузите компьютер, удерживая клавишу Optionво время загрузки -. Теперь у вас будет два загрузочных диска EFI. Заходим в крайний левый. В нем должно быть сказано, что вам нужно установить обновление, чтобы это работало. Нажмите Update.
  3. Во время перезагрузки снова нажмите и удерживайте клавишу Option, а затем выберите средний загрузочный диск EFI. Это снова вернет вас на экран GRUB. Подождите минуту или две, и вы должны перейти к экрану загрузки Ubuntu.

ВЫ ВСЕ СДЕЛАЛИ. Теперь вы сможете загрузить Ubuntu и MacOS.

Надеюсь, вам это поможет.

1
18.03.2021, 22:28

Похоже, что ваш установочный носитель не загрузился в режиме efi. Вы можете запустить эту команду, чтобы убедиться, что он загружается в режиме efi.

[ -d /sys/firmware/efi ] && echo "UEFI mode" || echo "Legacy mode

Если вы используете устаревший режим, попробуйте создать USB-носитель с помощью другого инструмента. Существует несколько руководств по созданию установочного носителя с включенной поддержкой uefi, а затем перед установкой снова проверьте режим загрузки.

Вы можете использовать следующие команды для проверки, которые также немного легче читать, чем приведенную выше.

test -d /sys/firmware/efi && echo efi || echo legacy

или длиннее, но проще для понимания

if test -d /sys/firmware/efi;then echo efi;else echo legacy;fi

1
18.03.2021, 22:28

Теги

Похожие вопросы