Как примонтировать efi в linux
TL; DR Как создать системный раздел EFI с нуля? Как я могу поместить прошивку EFI на нее, она создана?
Длинная версия
Я hava Toshiba T430 ноутбук. Я получил его с установленной Windows 7 (но я думаю, что первоначально он поставляется с Windows 8). Я установил Ubuntu на него, но удалил некоторые разделы на диске, чтобы в итоге я уничтожил Windows и имел только Ubuntu. Среди удаленных разделов был раздел системы EFI. Я обнаружил, что Ubuntu теперь загружается в режиме Legacy (а не UEFI). Я пытаюсь выполнить это руководство по конвертации моей установки Ubuntu из Legacy в UEFI . Проблема - поскольку нет раздела EFI, когда я выбираю из BIOS для загрузки с использованием UEFI, я не могу загрузиться. Это важно не только для жесткого диска, но и для usb и DVD. Я думаю, что это логично - он ожидает раздел EFI и, поскольку он не может его найти, он не может продолжать загрузку дальше, будь то с HDD или DVD. Итак, как мне воссоздать раздел EFI?
В приведенном выше руководстве говорится:
Если ваш диск уже содержит раздел EFI (например, если ваш компьютер был предустановлен Windows8), он также может использоваться для Ubuntu. Не отформатируйте его. Настоятельно рекомендуется иметь только один раздел EFI на каждый диск.
Раздел EFI может быть создан с помощью последней версии GParted (версия Gparted, включенная в диск 12.04, в порядке), и она должна иметь следующие атрибуты:
Точка монтирования: /boot /efi (примечание: нет необходимости устанавливать эту точку монтирования, когда используя ручное разделение, установщик Ubuntu обнаружит его автоматически)
Размер: минимум 100Mib. Рекомендуется 200MiB.
Тип: FAT32
Другое: требуется флаг загрузки.
У меня возникли проблемы с созданием этого раздела:
- Я загружаюсь с живого DVD-диска Ubuntu, открываю GParted, создаю раздел 200 МБ и отформатируем его на FAT32.
- В GParted я не могу установить точку монтирования и, следовательно, не могу установить bootflag.
- Я не установил точку монтирования в /etc/fstab , так как это live CD и fstab выглядел совсем иначе, чем ожидалось по сравнению с обычная загрузка. Во всяком случае, я просто не знал, какие значения установить.
Я снова загрузился через живой DVD, а затем решил установить Ubuntu. Затем я создал раздел с указанными критериями - точкой монтирования, 200 МБ, FAT32, флагом загрузки.
Однако у меня все еще есть эта проблема, и я полагаю, что это потому, что на этом разделе нет прошивки EFI, это всего лишь пустой раздел, подходящий для прошивки EFI.
Итак, как мне создать раздел EFI с программным обеспечением EFI, чтобы ноутбук мог снова загрузиться в режиме UEFI?
РЕШЕНИЕ Благодарим вас обоих за ответы. То, что я сделал, это установить Windows 8.1 с нуля, форматируя весь диск, а затем установив (на этот раз правильно) Ubuntu рядом с ним. Это мои разделы:
Во время установки Win 8, как только я удалил все существующие разделы и Windows переформатировал диск, он автоматически создал, помимо основного раздела установки, три дополнительных раздела, а именно 1, 2, 3. Теперь, после того, как я правильный ESP, я мог бы загрузиться с HDD или DVD в режиме UEFI.
Вы говорите, что ESP не сохраняет информацию по умолчанию, но я предполагаю, что когда ОС устанавливается, она помещает некоторую информацию там. Поэтому я предполагаю, что мое дело было следующим: я уничтожил его, и хотя я его воссоздал, он не был заполнен информацией, поскольку создание ESP было выполнено после установки ОС. Я потерял установку Ubuntu (неважно, это была новая установка в любом случае), но я предполагаю, что для ее сохранения я должен был следовать
Мой Жесткий диск имеет загрузчик GRUB на там от оставшейся установки Ubuntu, и я хочу удалить его, но я должен смонтировать системный раздел EFI сначала. Таким образом, как я могу смонтировать его с Живого CD? Help ценил, Bondy.
1 ответ
Для начала обратите внимание, что удаление загрузчика Ubuntu обычно не требуется. Если вы планируете переустановить Ubuntu, новая установка займет прежнее место, поэтому удаление старого загрузчика ничего не даст. Если вы планируете загрузить другую ОС, которая уже установлена, достаточно изменить порядок загрузки (с помощью efibootmgr в Ubuntu или другого Linux, EasyUEFI в Windows или других аналогичных инструментов). Основная причина удаления старого загрузчика - если вы установили (или планируете установить) какую-либо другую операционную систему или менеджер загрузки, и хотите сохранить GRUB в Ubuntu из своего меню. Кроме того, удаление GRUB в Ubuntu может считаться «хорошим ведением домашнего хозяйства», но, скорее всего, в этом нет необходимости.
Тем не менее, самый надежный способ смонтировать ESP с установочного диска Ubuntu / аварийного диска заключается в следующем:
- Открыть окно терминала. (Для этого щелкните значок Ubuntu в верхнем левом углу экрана, введите «терминал» и нажмите клавишу «Ввод» или выберите параметр «Терминал».)
- Введите sudo fdisk -l . Это должно привести к выводу, который идентифицирует ESP (среди прочего), например:
- Определите свой ESP; следует указать EFI System в столбце Type . В этом примере это /dev/sda1 . (Обычно ESP /dev/sda1 или /dev/sda2 , но это именно то, что наиболее распространено.)
- Когда ESP определен, установите его в /mnt , как в sudo mount /dev/sda1 /mnt . Если вы предпочитаете, вы можете создать точку монтирования, отличную от /mnt , и смонтировать ESP там. Это может быть необходимо, если вы хотите смонтировать несколько разделов.
Затем вы можете использовать ls , cp , mv , rm и другие команды текстового режима в окне терминала. Обратите внимание, что если вы не добавите различные опции mount , вам нужно будет использовать sudo для работы с файлами в ESP.
Системный раздел EFI (также называемый ESP или EFISYS) представляет собой физический раздел в формате FAT32 (в основной таблице разделов диска, а не под LVM или программным RAID и т.д.), откуда прошивка UEFI запускает загрузчик и приложение UEFI.
Это независимый от ОС раздел, который служит местом хранения загрузочных устройств EFI и приложений, которые будут запускаться с помощью прошивки EFI. Это необходимо для загрузки UEFI.
Важно: Если вы выполняете двойную загрузку с существующей установкой Windows в системе UEFI/GPT, не форматируйте раздел UEFI, так как это включает в себя файл Windows .efi, необходимый для ее загрузки. Другими словами, используйте существующий раздел как есть и просто монтируйте его.Contents
Создание раздела
В следующих двух разделах показано, как создать системный раздел EFI (ESP).
Примечание: Рекомендуется использовать GPT для загрузки UEFI, потому что некоторые прошивки UEFI не позволяют загружать UEFI-MBR.Рекомендуется сохранять размер ESP на 512 Мбайт, хотя меньшие/большие размеры тоже приветствуются. [1]
Согласно примечанию Microsoft[2], минимальный размер для системного раздела EFI (ESP) будет составлять 100 МБ, хотя это не указано в спецификации UEFI. Обратите внимание, что для дисков расширенный формат 4K Native drives (4 КБ на сектор) размер составляет не менее 256 Мбайт, поскольку это минимальный размер раздела дисков FAT32 (рассчитанный как размер сектора (4 КБ) x 65527 = 256 Мбайт), из-за ограничений файловой системы FAT32.
Разметка дисков GPT
Выберите один из следующих способов создания ESP для диска GPT с разделами:
Разметка дисков MBR
Форматирование раздела
После создания ESP вы должны форматировать его как FAT32:
Если вы использовали GNU Parted выше, тогда раздел уже должен быть отформатирован.
Монтирование раздела
This article or section needs expansion.
В случае EFISTUB файлы ядра и initramfs должны храниться в системном разделе EFI. Для простоты вы также можете использовать ESP в качестве самого раздела /boot вместо отдельного раздела /boot для загрузки EFISTUB. Другими словами, после создания и форматирования системного раздела EFI, как указано выше, просто смонтируйте на /boot .
Известные вопросы
ESP на RAID
Можно сделать часть ESP массива RAID1, но при этом возникает риск повреждения данных, и при создании ESP необходимо учитывать дополнительные соображения. Для получения допольнительной информации смотрите [3] и [4].
Советы и хитрости
Использование bind монтирования
Вместо того, чтобы устанавливать ESP на /boot , вы можете подключить каталог ESP к /boot с помощью bind монтирования (смотрите mount(8) ). Это позволяет pacman обновлять ядро напрямую, сохраняя при этом организацию ESP по своему вкусу.
После проверки успеха отредактируйте свой Fstab, чтобы изменения были постоянными:
The EFI system partition (also called ESP) is an OS independent partition that acts as the storage place for the EFI bootloaders, applications and drivers to be launched by the UEFI firmware. It is mandatory for UEFI boot.
Contents
Check for an existing partition
If you are installing Arch Linux on an UEFI-capable computer with an installed operating system, like Windows 10 for example, it is very likely that you already have an EFI system partition.
To find out the disk partition scheme and the system partition, use fdisk as root on the disk you want to boot from:
The command returns:
- The disk's partition table: it indicates Disklabel type: gpt if the partition table is GPT or Disklabel type: dos if it is MBR.
- The list of partitions on the disk: Look for the EFI system partition in the list, it is usually at least 100 MiB in size and has the type EFI System or EFI (FAT-12/16/32) . To confirm this is the ESP, mount it and check whether it contains a directory named EFI , if it does this is definitely the ESP.
Create the partition
The following two sections show how to create an EFI system partition (ESP).
Warning: The EFI system partition must be a physical partition in the main partition table of the disk, not under LVM or software RAID etc.The partition size should provide adequate space for storing boot loaders and other files required for booting.
This article or section needs expansion.
To prevent interoperability issues with other operating systems[1][2] it is recommend to make it at least 260 MiB. For early and/or buggy UEFI implementations the size of at least 512 MiB might be needed.[3] If none of these are relevant issues, the partition size can be as small as 2 MiB, in which case in could house nothing more than a boot loader.
GPT partitioned disks
Choose one of the following methods to create an ESP for a GPT partitioned disk:
-
: Create a partition with partition type EFI System . : Create a partition with partition type EF00 . : Create a partition with fat32 as the file system type and set the esp flag on it.
MBR partitioned disks
- It is recommended to use GPT since some firmwares might not support UEFI/MBR booting due to it not being supported by Windows Setup.
- bootctl does not support installing systemd-boot to an MBR partitioned disk; see systemd issue 1125.
EFI system partition on a Master Boot Record partition table is identified by the partition type ID EF .
Choose one of the following methods to create an ESP for a MBR partitioned disk:
-
: Create a primary partition with partition type EFI (FAT-12/16/32) . : Create a primary partition with fat32 as the file system type and set the esp flag on it.
Format the partition
The UEFI specification mandates support for the FAT12, FAT16, and FAT32 file systems (see UEFI specification version 2.9, section 13.3.1.1), but any conformant vendor can optionally add support for additional file systems; for example, the firmware in Apple Macs supports the HFS+ file system.
To prevent potential issues with other operating systems and since the UEFI specification says that UEFI "encompasses the use of FAT32 for a system partition, and FAT12 or FAT16 for removable media"[4], it is recommended to use FAT32. Use the mkfs.fat(8) utility from dosfstools :
If you get the message WARNING: Not enough clusters for a 32 bit FAT! , reduce cluster size with mkfs.fat -s2 -F32 . or -s1 ; otherwise the partition may be unreadable by UEFI. See mkfs.fat(8) for supported cluster sizes.
For partitions smaller than 32 MiB using FAT32 may not be possible. In which case, format it to FAT16 or even FAT12. For example, a 2 MiB ESP will only be able to support FAT12:
Mount the partition
The kernels, initramfs files, and, in most cases, the processor's microcode, need to be accessible by the boot loader or UEFI itself to successfully boot the system. Thus if you want to keep the setup simple, your boot loader choice limits the available mount points for EFI system partition.
Typical mount points
- /efi is a replacement[5] for the previously popular (and possibly still used by other Linux distributions) ESP mountpoint /boot/efi .
- The /efi directory is not available by default, you will need to first create it with mkdir(1) before mounting the ESP to it.
Alternative mount points
Note: You may also need to copy the Microcode to the boot-entry location.Furthermore, you will need to keep the files on the ESP up-to-date with later kernel updates. Failure to do so could result in an unbootable system. The following sections discuss several mechanisms for automating it.
Note: If ESP is not mounted to /boot , make sure to not rely on the systemd automount mechanism (including that of systemd-gpt-auto-generator(8) ). Always have it mounted manually prior to any system or kernel update, otherwise you may not be able to mount it after the update, locking you in the currently running kernel with no ability to update the copy of kernel on ESP.Using bind mount
Instead of mounting the ESP itself to /boot , you can mount a directory of the ESP to /boot using a bind mount (see mount(8) ). This allows pacman to update the kernel directly while keeping the ESP organized to your liking.
Note: This requires a kernel and bootloader compatible with FAT32. This is not an issue for a regular Arch install, but could be problematic for other distributions (namely those that require symlinks in /boot/ ). See the forum post [6].After verifying success, edit your Fstab to make the changes persistent:
Using systemd
Then enable and start efistub-update.path .
Tip: For Secure Boot with your own keys, you can set up the service to also sign the image using sbsigntools :Using filesystem events
Filesystem events can be used to run a script syncing the EFISTUB Kernel after kernel updates. An example with incron follows.
Note: The first parameter /boot/initramfs-linux-fallback.img is the file to watch. The second parameter IN_CLOSE_WRITE is the action to watch for. The third parameter /usr/local/bin/efistub-update is the script to execute.In order to use this method, enable the incrond.service .
Using mkinitcpio hook
Mkinitcpio can generate a hook that does not need a system level daemon to function. It spawns a background process which waits for the generation of vmlinuz , initramfs-linux.img , and initramfs-linux-fallback.img before copying the files.
Add efistub-update to the list of hooks in /etc/mkinitcpio.conf .
Using mkinitcpio preset
As the presets in /etc/mkinitcpio.d/ support shell scripting, the kernel and initramfs can be copied by just editing the presets.
Replacing the above mkinitcpio hook
Edit the file /etc/mkinitcpio.d/linux.preset :
To test that, just run:
Another example
Using pacman hook
A last option relies on the pacman hooks that are run at the end of the transaction.
The first file is a hook that monitors the relevant files, and it is run if they were modified in the former transaction.
The second file is the script itself. Create the file and make it executable:
Troubleshooting
ESP on software RAID1
It is possible to make the ESP part of a RAID1 array, but doing so brings the risk of data corruption, and further considerations need to be taken when creating the ESP. See [7] and [8] for details and UEFI booting and RAID1 for an in-depth guide with a solution.
The key part is to use --metadata 1.0 in order to keep the RAID metadata at the end of the partition, otherwise the firmware will not be able to access it:
Читайте также: