Chromebook не загружает версии Ubuntu (Bay Trail) (Acer CB3-531) [закрыто]

У меня есть Chromebook, и я успешно установил Gallium OS. (да, я знаю, тоже на базе Ubuntu) это единственная версия, которая будет загружать ОС правильно из коробки.

Все другие версии Ubuntu, которые я пробовал (Ubuntu, Ubuntu Mate, Ubuntu Budgie), имеют ту же проблему после установки. Все они выдают командную строку GRUB.

Когда я захожу в BIOS, я могу найти файл EFI, и когда я запускаю тот, который находится в EFI/Ubuntu/Grubx64.efi, он запускает ОС. Но я не хочу делать это вручную.

Как я могу заставить эту проблему EFI / Grub работать, а Ubuntu загружаться и работать на моем Chromebook?

  • жесткий диск, где он установлен на MMCBLK0.
  • MMCBLK0p1 - EFI (Fat32) (установлен флаг загрузки).
  • MMCBLK0p2 - ext4.
  • в передней части всех разделов свободно 2048 кб.
0
задан 21 August 2017 в 05:43

1 ответ

К сожалению, вывод Восстановления Начальной загрузки является неполным, потому что та утилита правильно еще не поддерживает eMMC и подобные усовершенствованные типы SSD, которые обнаруживаются в Linux с /dev/mmcblk0 и связанные имена файлов, а не традиционное /dev/sda- разработайте имена файлов. Таким образом я все еще в неведении относительно некоторых значимых факторов, такой как точно что программы EFI (с .efi расширения), хранятся на ESP (/boot/efi в Ubuntu).

Тем не менее существует одна очень важная подсказка о причине проблемы в Вашей сводке Информации о Начальной загрузке:

=================== efibootmgr -v
Timeout: 3 seconds
BootOrder: 0000,0001
Boot0000* EFI eMMC Device   PciRoot(0x0)/Pci(0x17,0x0)/Msg(29,00)/Ctrl(0x0)
Boot0001* EFI Internal Shell MemoryMapped(11,0x830000,0xc0ffff)/FvFile(c57ad6b7-0515-40a8-9d21-551652854e37)

Это показывает нет ubuntu запись. Обычно, установленная Ubuntu будет включать запись, которая указывает на EFI/ubuntu/shimx64.efi; однако, эта запись NVRAM отсутствует в Вашей системе. ( efibootmgr утилита отображает и управляет контентом основанных на NVRAM записей диспетчера начальной загрузки EFI компьютера.) Вместо этого компьютер загружается EFI eMMC Device по умолчанию. Это, вероятно, загружается EFI/BOOT/bootx64.efi файл, который я предполагаю, является неполной или неправильной записью GRUB. Существует по крайней мере три способа решить эту проблему:

  • Создайте надлежащую запись NVRAM - Это должно было быть сделано установщиком Ubuntu, таким образом, возможно, что встроенное микропрограммное обеспечение Вашего компьютера является дефектным и забывает правильно созданные записи. OTOH, также возможно, что была проблема во время установки Ubuntu, которая препятствовала тому, чтобы установщик создал эту запись. Таким образом стоит попытаться сделать это вручную. Для этого введите sudo efibootmgr -c -d /dev/mmcblk0 -p 1 -l \\EFI\\ubuntu\\shimx64.efi -L ubuntu. Если Вы затем вводите sudo efibootmgr -v, необходимо видеть новое ubuntu запись, и когда Вы перезагружаете, это должно загрузиться в GRUB и показать Вам меню. Если Вы получаете то же старое поведение, и если sudo efibootmgr -v после использования обходного решения для начальной загрузки шоу что ubuntu запись исчезла, затем Ваше встроенное микропрограммное обеспечение (или возможно аппаратные средства NVRAM) является определенно дефектным. Могло бы стоить искать микропрограммное обновление от производителя и попробовать еще раз или даже возвратить компьютер в хранилище для возмещения, если Вы в период повторяемости.
  • Используйте fbx64.efi программа - Эта программа установлена в некоторых недавних установках Ubuntu, но она не делает ничего полезного путем, она установлена. Для создания этого полезным выполните эти шаги:

    1. Ввести sudo mv /boot/efi/EFI/BOOT /boot/efi/EFI/BOOT-backup скопировать существующее EFI/BOOT каталог на ESP.
    2. Ввести sudo mkdir /boot/efi/EFI/BOOT создать новый каталог нейтрализации на ESP.
    3. Ввести sudo cp /boot/efi/EFI/ubuntu/shimx64.efi /boot/efi/EFI/BOOT/bootx64.efi скопировать Контейнер с EFI/ubuntu каталог на ESP к EFI/BOOT, использование имени файла нейтрализации (bootx64.efi) в его новом местоположении.
    4. Ввести sudo cp /boot/efi/EFI/ubuntu/fbx64.efi /boot/efi/EFI/BOOT скопировать fbx64.efi к каталогу нейтрализации (EFI/BOOT) на ESP.
    5. Создайте названный текстовый файл boot.txt в Вашем корневом каталоге. Это должна быть одна строка, которая читает grubx64.efi,ubuntu,,This is the boot entry for ubuntu.
    6. Ввести sudo iconv -t UCS-2 < ~/boot.txt > ~/BOOT.CSV. Это преобразовывает файл, который Вы создали в форму что fbx64.efi файл может читать
    7. Ввести sudo cp ~/BOOT.CSV /boot/efi/EFI/ubuntu скопировать BOOT.CSV к EFI/ubuntu каталог на ESP.

    Точка этой процедуры то, что fbx64.efi программа, когда выполнено, сканирует каждый подкаталог EFI на ESP, ища названные файлы BOOT.CSV. Если найдено, это использует те файлы для регенерации записи NVRAM для загрузчика (загрузчиков), описанного в BOOT.CSV файл. Когда это сделано, первая запись в новом порядке загрузки выполняется. Таким образом, если fbx64.efi выполняется как загрузчик нейтрализации (которым это будет при копировании как на шагах № 1-4) и если Вы создаете подходящее BOOT.CSV файл, GRUB Ubuntu должен запуститься от его нормального местоположения, даже если Ваши записи NVRAM обычно теряются. Это не столь хорошо как наличие рабочего диспетчера начальной загрузки EFI, но это лучше, чем использование следующей опции с протестом, что эта процедура более утомительна, чем следующая. Один важный протест - это, если ESP имеет другой BOOT.CSV файлы, один из них мог бы закончить сначала в порядке загрузки, который мог ввести процесс в заблуждение. Таким образом, если у Вас есть проблемы, можно хотеть искать такие файлы и удалить или переименовать их, если Вы думаете, что они могут вызывать проблемы.

  • Используйте имя файла нейтрализации - Если предыдущие подходы не работают, можно скопировать рабочий GRUB, чтобы заставить его работать следующим образом:

    1. Ввести sudo mv /boot/efi/EFI/BOOT /boot/efi/EFI/BOOT-backup скопировать существующее EFI/BOOT каталог на ESP.
    2. Ввести sudo cp -r /boot/efi/EFI/ubuntu /boot/efi/EFI/BOOT вставить рабочий загрузчик Ubuntu EFI/BOOT каталог.
    3. Ввести sudo mv /boot/efi/EFI/BOOT/shimx64.efi /boot/efi/EFI/BOOT/bootx64.efi переименовать Контейнер к имени файла нейтрализации так, чтобы это запустилось по умолчанию.

    В этом третьем подходе существует опасность: Если мой диагноз является неправильным, или если shimx64.efi отсутствует или дефектный в ESP EFI/ubuntu каталог, затем эта процедура оставит компьютер незагрузочным. В этом случае необходимо будет использовать чрезвычайную систему для инвертирования той процедуры для восстановления системы к ее текущему полурабочему состоянию. Кроме того, третий подход оставит Вас выполняющий установленный в настоящее время Контейнер и GRUB навсегда, если Вы не вмешаетесь вручную; Вы не получите обновления, установленные через диспетчер пакетов Ubuntu. По этим причинам приведение в порядок записей NVRAM через первый подход является предпочтительным решением - но, учитывая природу Вашей проблемы, я не надеюсь, что это будет возможно.

Если Вы экспериментируете с различными дистрибутивами, знают, что каждая установка, вероятно, потребует своего собственного grub.cfg файл в том же каталоге как Контейнер и GRUB (EFI/ubuntu или EFI/BOOT на ESP). Таким образом, как минимум, необходимо будет переместиться grub.cfg если Вы устанавливаете новое распределение при использовании третьей фиксации. Вы, возможно, должны полностью восстановить ту третью фиксацию при установке несвязанного распределения.

1
ответ дан 2 November 2019 в 10:27

Другие вопросы по тегам:

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