Как создать системный раздел EFI?

34

TL; DR Как мне создать системный раздел EFI с нуля? Как поставить прошивку EFI на то, что он создан?

Длинная версия

У меня хава ноут Toshiba T430. Я получил его с установленной Windows 7 (но я думаю, что изначально он поставлялся с Windows 8). Я установил на него Ubuntu, но удалил некоторые разделы на диске, так что я закончил с того, что уничтожил Windows и имел только Ubuntu. Среди удаленных разделов был системный раздел EFI. Я обнаружил, что Ubuntu теперь загружается в режиме Legacy (а не UEFI). Я пытаюсь следовать этому руководству по преобразованию моей установки Ubuntu из Legacy в UEFI, Проблема в том, что, когда я выбираю из BIOS загрузку с использованием UEFI, раздел EFI отсутствует, я не могу загрузиться. Это относится не только к жесткому диску, но и к USB и DVD. Я думаю, что это логично - он ожидает раздел EFI и, поскольку он не может его найти, он не может продолжать загрузку дальше, будь то с жесткого диска или DVD. Итак, как мне восстановить раздел EFI?

Руководство выше говорит:

Создание раздела EFI

Если вы вручную разбиваете диск в установщике Ubuntu, вам необходимо убедиться, что у вас настроен раздел EFI.

  1. Если на вашем диске уже есть раздел EFI (например, если на вашем компьютере предустановлена ​​Windows8), он также может быть использован для Ubuntu. Не форматируйте это. Настоятельно рекомендуется иметь только 1 раздел EFI на диск.

  2. Раздел EFI может быть создан с помощью последней версии GParted (версия Gparted, включенная в диск 12.04, в порядке) и должна иметь следующие атрибуты:

    1. Точка монтирования: / boot / efi (примечание: нет необходимости устанавливать эту точку монтирования при использовании ручного разбиения, установщик Ubuntu обнаружит ее автоматически)

    2. Размер: минимум 100Mib. Рекомендуется 200MiB

    3. Тип: FAT32

    4. Другое: нужен флаг загрузки.

У меня были некоторые проблемы при создании этого раздела:

  • Я загружаюсь с живого Ubuntu DVD, открываю GParted, создаю раздел размером 200 МБ и форматирую его в FAT32.
  • В GParted я не могу установить точку монтирования и, следовательно, не могу установить флаг загрузки.
  • Я не установил точку монтирования, /etc/fstabтак как это live CD, и fstab выглядел совсем не так, как я ожидал, по сравнению с обычной загрузкой. Во всяком случае, я просто не знал, какие значения установить.

Я снова загрузился через live DVD и затем решил установить Ubuntu. Затем я создал раздел с указанными критериями - точка монтирования, 200 МБ, FAT32, флаг загрузки.

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

Итак, еще раз, как мне создать раздел EFI с программным обеспечением EFI, чтобы ноутбук снова мог загружаться в режиме UEFI?

РЕШЕНИЕ Спасибо вам обоим за ответы. Что я сделал, так это установил Windows 8.1 с нуля, отформатировав весь диск, а затем установив (на этот раз правильно) Ubuntu рядом с ним. Это мои разделы сейчас:

Дисковые разделы

Во время установки Win 8, как только я удалил все существующие разделы и позволил Windows переформатировать диск, он автоматически создал, помимо основного раздела установки, три дополнительных раздела, а именно 1, 2, 3. Теперь, после того, как у меня был соответствующий ESP Я мог бы загружаться как с жесткого диска, так и с DVD в режиме UEFI.

Вы говорите, что ESP не хранит никакой информации по умолчанию, но я предполагаю, что при установке ОС она помещает туда некоторую информацию. Поэтому я думаю, что мой случай был следующим: я стер его, и, хотя я воссоздал его, он не был заполнен какой-либо информацией, поскольку создание ESP было сделано после установки ОС. Я потерял установку Ubuntu (ничего страшного, в любом случае это была новая установка), но я думаю, что для ее сохранения я должен был последовать совету grawity . Хотя времени не было, но, к счастью, сейчас все в порядке.

Алекс Попов
источник
1
ESP хранит загрузчики. Таким образом, если у вас есть существующая установка и вы удалите ESP, вы потеряете возможность загружать компьютер. Этот тип проблемы на самом деле довольно легко исправить - если вы знаете, как!
Род Смит
Хорошо было все, о чем был мой вопрос :)
Алексей Попов

Ответы:

37

Во-первых, вы не устанавливаете точку монтирования в GParted; это делается вручную (и временно) с помощью mountкоманды или навсегда путем редактирования /etc/fstab. Таким образом, ваша озабоченность по поводу этой проблемы неуместна.

Во-вторых, системный раздел EFI (ESP) - это просто раздел FAT с определенным кодом типа (а именно, C12A7328-F81F-11D2-BA4B-00A0C93EC93B на GPT-дисках). Обратите внимание, что точка монтирования в /etc/fstabне является частью определения ESP; Просто в Linux (но не обязательно) доступ к ESP осуществляется путем монтирования /boot/efi, как правило, через /etc/fstabзапись. То, как вы устанавливаете код типа, варьируется от одной программы к другой:

  • В gdisk, вы устанавливаете код типа на EF00. ( gdiskиспользуются двухбайтовые коды типов, которые расширяются до реальных кодов типов на диске; «EF00» является просто мнемоникой для «C12A7328-F81F-11D2-BA4B-00A0C93EC93B».)
  • В GParted или partedвы устанавливаете «флаг загрузки». Обратите внимание, что это работает только на GPT-дисках; Вы не можете установить код типа ESP на MBR-дисках с этими программами. (Обычно это не имеет большого значения, поскольку компьютеры на основе EFI обычно загружаются с GPT-дисков.)
  • В установщике Ubuntu вы определяете раздел как «загрузочный раздел EFI». Затем он устанавливает код типа и будет настроен /etc/fstabсоответствующим образом.
  • В последних версиях Linux fdiskтип раздела устанавливается по его номеру (1 для «EFI System» на дисках GPT или 0xEF на дисках MBR) или путем ввода полного кода типа на дисках GPT.

В-третьих, ESP не держит прошивку - прошивка по определению хранится в микросхемах на материнской плате. Таким образом, ваши попытки установить прошивку EFI на ESP - погоня. (Есть два исключения из этого правила. Во-первых, вы можете сохранить файл прошивки на ESP, чтобы обновить прошивку на вашем компьютере. Однако это всего лишь область временного хранения. Во-вторых, загрузчик DUET или Clover , EFI загружается как обычная программа, как правило , от ESP Эти инструменты BIOS загрузчики, однако, что позволит BIOS-только компьютеры для загрузки , как если бы они были машины EFI;. они необычно используется на компьютерах с прошивкой EFI, которая, как вы утверждаете, установлена ​​на вашем компьютере. Технически, ни DUET, ни Clover не являются прошивками; это загрузчики BIOS, которые выполняют ту же работу, что и EFI.)

Наконец, я могу вспомнить ряд возможных причин вашей проблемы, но без дополнительной информации мне нужно написать половину книги, чтобы охватить их все. Я рекомендую вам запустить Boot Info Script на компьютере. Это создаст файл с именем RESULTS.txt. Опубликуйте его на сайте pastebin и отправьте обратно с URL вашего документа. Это даст достоверные данные о вашей конфигурации, что значительно сократит диапазон возможных причин вашей проблемы.

Род Смит
источник
Как использовать, gdiskчтобы "установить код типа на EF00"?
B Семь
@BSeven t, 1, ef00.
Хоббс
11

Раздел EFI не сохраняет прошивку (которая хранится в микросхеме на материнской плате); он сохраняет загрузчики для установленных операционных систем. По сути, это альтернатива EFI - поместить загрузчик в 0-й сектор вашего диска, как это было в случае с ПК с BIOS.

Это означает, что если у вас есть такой раздел, он должен заполняться автоматически при установке операционной системы. (Вполне вероятно, что сам установочный диск должен быть загружен также в режиме EFI, иначе это не будет беспокоить настройку загрузки UEFI ... на самом деле, некоторые части установки даже не могут быть выполнены из режима BIOS.)

Если у вас уже установлена ​​Ubuntu, вам необходимо:

  1. Установите UEFI-версию GRUB; Я думаю, что это в grub-efi-amd64-signedпакете.

    grub-install --target=x86_64-efi-signed
    

    (Для неподписанной grub-efi-amd64версии это x86_64-efi.)

  2. Убедитесь, что GRUB установился как \EFI\Boot\bootx64.efiв системном разделе EFI. (Я использую синтаксис пути EFI здесь; если вы смонтируете раздел в /bootLinux, это будет /boot/EFI/Boot/bootx64.efi.)

    Если это не так, скопируйте grubx64.efiвручную в это место.

    Это необходимо, потому что grub-installнельзя добавить себя в меню загрузки EFI, если система уже не загружена в режиме EFI. (Доступ к «переменным EFI» невозможен в BIOS.) Поэтому единственный способ загрузить GRUB - это поместить его в «резервный загрузчик».

  3. Перезагружать. Попробуйте выбрать какой-либо режим EFI в меню загрузки вашей прошивки (прошивки EFI имеют собственное меню загрузки, даже до GRUB).

  4. Проверьте, dmesg | grep "efi:"показывает ли что-нибудь, чтобы подтвердить, что вы находитесь в режиме EFI.

grawity
источник
1
Я не хочу поднимать старую ветку, но пытаюсь найти решение своей проблемы и наткнулся на эту ветку. Я пытаюсь обновить прошивку BIOS на моем компьютере Dell, и Dell предоставляет ее в виде EXE в формате Windows или в виде файла, который следует поместить в раздел в формате EFI. то есть меня просят «загрузить файл в раздел EFI на съемном носителе». Я не знаю, имел ли это в виду ОП, но просто хотел указать на то, что вы сказали в первом абзаце.
Ray
@Ray: Вы загружаете будущую прошивку в этот раздел. Он по-прежнему не используется в качестве реальной прошивки при включении компьютера; он просто используется как файл данных для программы «Обновление прошивки», которая будет записывать / мигать на материнскую плату. (Помните, когда в таких инструкциях говорилось «загрузить файл на загрузочную дискету MS-DOS» или что-то в этом роде? Ну, этот диск тоже не содержал ваш основной BIOS. Он просто содержал программу перепрошивки и данные, которые она должна перепрограммировать) . То же самое и здесь.)
grawity
1
Да, я знаю. Полагаю, я просто говорю, что ОП, возможно, не обязательно была ошибочной, но просто неточной. Точно так же вы правы, что прошивка хранится на чипе, и теперь меня просят сохранить будущую прошивку в разделе EFI. Но кто-то может сказать, что прошивка хранится в EFI, если он небрежно относится к своему описанию. (то есть не совсем неправильно, но наполовину неправильно)
Рэй
2

Создайте два файла с помощью блокнота и сохраните их на USB-диске Windows.
SaveAs: CreatePartitions-UEFI.txt

select disk 0  
clean  
convert gpt  
rem == 1. System Partition  =====================  
create partition efi size=210  
format fs=fat32 quick label=”SYSTEM”  
active  
rem == 2. Microsoft Reserved (MSR) partition  ======  
create partition msr size=16  
rem == 3.  Windows partition  ===================  
create partition primary size=xxxxxx   
format fs=ntfs quick label=”Windows”   
assign letter=”W”  
rem == 4. Recovery tools partition  ================  
create partition primary size=460  
format fs=ntfs quick label=”Recovery”  
assign letter=:R”  
list volume

Создайте еще один текстовый файл с помощью Блокнота:
SaveAs: diskpart-UEFI.txt

diskpart /s D:\CreatePartitions-UEFI.txt   

REM where D:/ is the usb drive. This command runs the text file to install the partitions.

Если вы используете MBR, команда будет, конвертировать mbr.

Чтобы получить размер раздела Windows, умножьте ваш размер HD на 1024, 100 гигабайт на жестком диске 1024 равняется 102400 минус 210 (размер efi) минус 16 (размер msr), минус 460 (зарезервированный размер) равен размеру, который вы поместите в размер раздела Windows. (XXXXXX)

Вы можете изменить размер раздела из терминала (командная строка) cd / d D:> блокнот CreatePartitions-UEFI.txt

Пока вы находитесь на USB-накопителе, откройте блокнотом diskpart-UEFI.txt и оставьте открытым или запишите команду, чтобы не ошибиться. Как только вы измените размер разделов по своему вкусу, закройте его, затем cd / dx: / Sources, а затем запустите diskpart / s D: \ CreatePartitions-URFI.txt.
список томов в последней команде показывает вам разделы, если все в порядке, выход> выключить компьютер> перезагрузить> установить

Дейв Виан
источник
-2

используйте gnome-disk, пакет "gnome-disk-utility", это очень удобно.

dotbit
источник
2
Добро пожаловать в Супер пользователя! Я не DV-er, но иногда ответы в одну строку могут работать, но если вы отредактируете свой ответ, добавив пояснение, это будет работать лучше :) Как бы они создали системный раздел EFI в gnome-disk-utility.
Бертиб