Grub install предупреждение метка раздела gpt не имеет bios boot partition встраивание невозможно
Кажется, что по этому поводу довольно много дискуссий, но я не могу найти простой ответ.
Когда я пытаюсь установить grub2, я получаю эту ошибку:
Вот расположение / dev / sda:
Есть ли простой способ обойти эту проблему? Я понимаю, что мне нужно создать крошечный раздел в начале диска как «Загрузочный раздел BIOS». Я полагаю, что одним из вариантов было бы перенести файл подкачки в / dev / sda4 в качестве логического тома и использовать / dev / sda2 в качестве / boot.
В качестве альтернативы я мог бы просто вернуться к grub-legacy и не беспокоиться об этом (есть ли преимущество в обновлении до grub2, если оно вызывает такие большие проблемы?).
Сначала вы должны определить, хотите ли вы использовать загрузку в BIOS / CSM / устаревшем режиме или загрузку в EFI / UEFI-режиме. Первый - это способ загрузки ПК с 1980-х годов, но это уродливая и хакерская система, которая скоро пойдет по пути додо. Windows связывает загрузку в режиме BIOS с таблицей разделов MBR, которую вы не используете (но могли бы; ваш диск далеко не настолько большой, чтобы требовать GPT). Linux, FreeBSD и большинство других современных операционных систем более гибки и поддерживают загрузку в режиме BIOS из GPT; но иногда возникают сложности, связанные с прошивкой, и, конечно, если позже вы решите установить Windows в режиме двойной загрузки, вам придется внести изменения или компромиссы.
Загрузка в EFI / UEFI-режиме - это не хакерство; но реализации EFI сильно различаются по качеству, а общий уровень знаний и поддержки в Интернете для EFI ниже, чем для BIOS. Windows связывает использование GPT с загрузкой в режиме EFI, поэтому, если вы планируете когда-либо устанавливать Windows на свой компьютер, EFI определенно подходит. Старые компьютеры предназначены только для BIOS. EFI начал выходить на рынок в середине 2011 года, поэтому, если ваш компьютер старше этого, вы не сможете использовать EFI.
Если вы используете загрузку в режиме BIOS, вы должны создать загрузочный раздел BIOS на диске. В начале вашего диска достаточно места для этого раздела, но вам нужно установить значение выравнивания вашего сектора равным 1 (из обычного 2048), чтобы это работало. Не знаю, насколько это возможно parted , но вы можете это сделать gdisk . (Обратите внимание, что пространство в начале вашего диска немного меньше рекомендуемого размера 1 МБ для загрузочного раздела BIOS, но только на несколько секторов. Возможно, оно будет работать нормально, но в будущем может произойти сбой.) В качестве альтернативы. Вы можете уменьшить размер любого раздела на 1-2 МБ, чтобы освободить место для загрузочного раздела BIOS. Этот раздел не обязательно должен быть первым разделом на диске, хотя это обычное расположение.
Если вы используете загрузку в режиме EFI / UEFI, вы должны создать системный раздел EFI (ESP). Этот раздел должен быть отформатирован в FAT и должен быть значительно больше, чем загрузочный раздел BIOS, поэтому для его создания потребуется изменить размер. Я рекомендую размер 550 МБ, хотя одна десятая этого может работать в крайнем случае.
Чтобы установить GRUB, сначала убедитесь, что вы установили правильный пакет GRUB. Я не уверен в именовании во всех дистрибутивах, но в Ubuntu это было бы grub-pc для режима BIOS / CSM / legacy и grub-efi-amd64 для режима EFI / UEFI. Установка в режиме EFI также потребует загрузки всего, что вы используете для установки GRUB (предположительно, live CD / USB) в режиме EFI. Для этого может потребоваться использование встроенного менеджера загрузки вашего компьютера, доступ к которому обычно осуществляется с помощью функциональной клавиши, но детали могут различаться для разных компьютеров.
Спасибо за ваш очень полезный ответ. У меня есть вещи, работающие на виртуальной машине с небольшим беспорядком. Когда я пытаюсь сделать это на моей «производственной» машине (у которой есть два жестких диска), у меня возникает ряд проблем: grub2-install grub-setup=/bin/true /dev/sda дает grub2-install: error: More than one install device?. . На моей рабочей ВМ начальный сектор помечен как 32, а на рабочей машине - 2048. Не знаю, насколько это актуально.
Как предлагает Flow в своем ответе, тип раздела загрузочного раздела BIOS должен быть установлен на 0x04, то есть «загрузка BIOS», иначе grub не удастся установить. Это может быть установлено, например, с помощью команды fdisk "t".
Есть ли способ сделать установку grub 2 без загрузочного раздела bios? Я только хочу использовать UEFI.
Если вы хотите использовать GPT-разделы в старом режиме загрузки BIOS, то вам нужно создать BIOS-раздел размером в несколько мегабайт (16 МБ должно быть пригодным для использования в будущем) на устройстве, с которым вы хотите установить grub grub-install .
Используйте, например, fdisk для создания раздела типа «BIOS boot» где-нибудь на вашем диске. Пример вывода:
Grub2 не будет устанавливаться на жесткий диск с меткой раздела GPT (без --force), жалуясь на отсутствие загрузочного раздела BIOS - даже если он есть.
Первый раздел (1 МБ) предполагается использовать в качестве загрузочного раздела BIOS.
Почему установщик Grub не может его найти?
/usr /sbin /grub2-bios-setup: предупреждение: эта метка раздела GPT не содержит загрузочного раздела BIOS; встраивание не будет возможно.
/usr /sbin /grub2-bios-setup: предупреждение: встраивание невозможно. GRUB может быть установлен только в этой настройке с помощью списков блокировок. Тем не менее, списки блоков являются ненадежными, и их использование не рекомендуется ..
/usr /sbin /grub2-bios-setup: ошибка: не будет работать с блочными списками.
Модель: VMware, VMware Virtual S (SCSI)
Диск /dev /sda: 53687091200B
Размер сектора (логический / физический): 512B / 512B
Таблица разделов: gpt
Флаги дисков: pmbr_boot
Номер Начало Конец Размер Имя Файловой системы Флаги
1 1048576B 2097151B 1048576B
2 2097152B 526385151B 524288000B ext2
3 526385152B 27369930751B 26843545600B ext4
4 27369930752B 32738639871B 5368709120B linux-swap (v1)
5 32738639872B 53686042623B 20947402752B ext4
Диск /dev /sda: 104857600 секторов, 50,0 ГБ
Размер логического сектора: 512 байт
Идентификатор диска (GUID): F4679BF9-DC8C-4346-8889-83B84F43BE58
Таблица разделов вмещает до 128 записей
Первый полезный сектор 34, последний полезный сектор 104857566
Разделы будут выровнены по границам 2048 секторов
Всего свободного места 4029 секторов (2,0 МиБ)
Номер Начало (сектор) Конец (сектор) Размер Код Название
1 2048 4095 1024,0 КиБ 0700
2 4096 1028095 500,0 МиБ 0700
3 1028096 53456895 25,0 ГиБ 0700
4 53456896 63942655 5,0 ГиБ 0700
5 63942656 104855551 19,5 ГиБ 0700
Код GUID раздела: EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 (основные данные Microsoft)
Уникальный GUID раздела: 51756103-CDA5-4D09-BFB4-B1DB8A89CE08
Первый сектор: 4096 (при 2,0 МиБ)
Последний сектор: 1028095 (при 502,0 МиБ)
Размер раздела: 1024000 секторов (500,0 МиБ)
Флаги атрибутов: 0000000000000000
Название раздела: ''
Код GUID раздела: EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 (основные данные Microsoft)
Уникальный GUID раздела: 2A6E6859-DCE0-4040-8683-15B51A3F0911
Первый сектор: 1028096 (при 502,0 МиБ)
Последний сектор: 53456895 (при 25,5 ГиБ)
Размер раздела: 52428800 секторов (25,0 ГиБ)
Флаги атрибутов: 0000000000000000
Название раздела: ''
Код GUID раздела: EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 (основные данные Microsoft)
Уникальный GUID раздела: 0CBCDEFE-9467-4534-9EE2-7C142CCD3B09
Первый сектор: 53456896 (при 25,5 ГиБ)
Последний сектор: 63942655 (при 30,5 ГиБ)
Размер раздела: 10485760 секторов (5,0 ГиБ)
Флаги атрибутов: 0000000000000000
Название раздела: ''
Кажется, что по этому поводу довольно много дискуссий, но я не могу найти простой ответ.
Когда я пытаюсь установить grub2, я получаю эту ошибку:
Вот расположение /dev /sda:
Есть ли простой способ обойти эту проблему? Я понимаю, что мне нужно создать крошечный раздел в начале диска как "Загрузочный раздел BIOS". Я полагаю, что одним из вариантов было бы перенести файл подкачки в /dev /sda4 в качестве логического тома и использовать /dev /sda2 в качестве /boot.
В качестве альтернативы я мог бы просто вернуться к grub-legacy и не беспокоиться об этом (действительно ли есть преимущество в переходе на grub2, если это вызывает такие большие проблемы?).
3 ответа 3
Сначала вы должны определить, хотите ли вы использовать загрузку в BIOS/CSM/ устаревшем режиме или загрузку в EFI/ UEFI-режиме. Первый - это способ загрузки ПК с 1980-х годов, но это уродливая и хакерская система, которая скоро пойдет по пути додо. Windows связывает загрузку в режиме BIOS с таблицей разделов MBR, которую вы не используете (но могли бы; ваш диск далеко не настолько большой, чтобы требовать GPT). Linux, FreeBSD и большинство других современных ОС более гибки и поддерживают загрузку в режиме BIOS из GPT; но иногда возникают сложности с микропрограммным обеспечением, и, конечно, если позднее вы решите установить Windows в режиме двойной загрузки, вам потребуется внести изменения или компромиссы.
Загрузка в EFI/UEFI-режиме - это не хакерство; но реализации EFI сильно различаются по качеству, а общий уровень знаний и поддержки в Интернете для EFI ниже, чем для BIOS. Windows связывает использование GPT с загрузкой в режиме EFI, поэтому, если вы планируете когда-либо устанавливать Windows на свой компьютер, EFI определенно подходит. Старые компьютеры предназначены только для BIOS. EFI начал выходить на рынок в середине 2011 года, поэтому, если ваш компьютер старше этого, вы не сможете использовать EFI.
Если вы используете загрузку в режиме BIOS, вы должны создать загрузочный раздел BIOS на диске. В начале вашего диска достаточно места для этого раздела, но вам нужно установить значение выравнивания вашего сектора равным 1 (из обычного 2048), чтобы это работало. Я не знаю , экспромтом , если это может быть сделано с parted но вы можете сделать это с gdisk (Обратите внимание, что пространство в начале вашего диска немного меньше рекомендуемого размера 1 МБ для загрузочного раздела BIOS, но только на несколько секторов. Это, вероятно, будет работать нормально, но, возможно, в будущем произойдет сбой.) Кроме того, вы можете уменьшить размер любого раздела на 1-2 МБ, чтобы освободить место для загрузочного раздела BIOS. Этот раздел не обязательно должен быть первым разделом на диске, хотя это обычное расположение.
Если вы используете загрузку в режиме EFI/UEFI, вы должны создать системный раздел EFI (ESP). Этот раздел должен быть отформатирован в FAT и должен быть значительно больше, чем загрузочный раздел BIOS, поэтому для его создания вам придется изменить размер. Я рекомендую размер 550 МБ, хотя десятая часть может работать в крайнем случае.
Чтобы установить GRUB, сначала убедитесь, что вы установили правильный пакет GRUB. Я не уверен в именовании во всех дистрибутивах, но в Ubuntu это будет grub-pc для BIOS/CSM/legacy-режим и grub-efi-amd64 для EFI/UEFI. Установка в режиме EFI также потребует загрузки всего, что вы используете для установки GRUB (предположительно, live CD/USB) в режиме EFI. Для этого может потребоваться использование встроенного менеджера загрузки вашего компьютера, доступ к которому обычно осуществляется с помощью функциональной клавиши, но детали могут различаться для разных компьютеров.
There seems to be quite a bit of discussion about this but I can't find a simple answer.
When I try to install grub2 I get this error:
Here is the layout of /dev/sda:
Is there a simple way that I can get around this problem? I understand that I need to create a tiny partition at the beginning of the disk as a "BIOS Boot Partition". I suppose one option would be to move the swap to /dev/sda4 as a logical volume, and use /dev/sda2 as /boot.
Alternatively I could just go back to grub-legacy and not worry about that (is there really an advantage to upgrading to grub2 if it causes this much trouble?).
6 Answers 6
You should first determine whether you want to use a BIOS/CSM/legacy-mode boot or an EFI/UEFI-mode boot. The former is the way that PCs have been booting since the 1980s, but it's an ugly and hackish system that will be going the way of the dodo before too long. Windows ties BIOS-mode booting to the MBR partition table, which you're not using (but could; your disk is nowhere near big enough to require GPT). Linux, FreeBSD, and most other modern OSes are more flexible, and support BIOS-mode booting from GPT; but there are sometimes firmware-created complications, and of course if you later decide to install Windows in a dual-boot setup you'll need to make changes or compromises.
EFI/UEFI-mode booting is less of a hack; but EFI implementations vary greatly in quality and the overall level of expertise and support on the Web for EFI is lower than that for BIOS. Windows ties use of GPT to EFI-mode booting, so if you expect to ever install Windows on your computer, EFI is definitely the way to go. Older computers are BIOS-only. EFI began to take off in the marketplace in mid-2011, so if your computer is older than that, you might not be able to use EFI.
If you go with BIOS-mode booting, you should create a BIOS Boot Partition on the disk. There's enough room at the start of your disk for this partition, but you'll need to set your sector alignment value to 1 (from the usual 2048) for this to work. I don't know offhand if this can be done with parted , but you can do it with gdisk . (Note that the space at the start of your disk is slightly under the recommended 1MiB size for a BIOS Boot Partition, but just by a few sectors. It will probably work fine, but might conceivably fail at some point in the future.) Alternatively, you can shrink any of your partitions by 1-2MiB to make room for the BIOS Boot Partition. This partition does not need to be the first partition on the disk, although that's the conventional location.
If you go with EFI/UEFI-mode booting, you must create an EFI System Partition (ESP). This partition must be FAT-formatted and must be significantly larger than a BIOS Boot Partition, so you'll have to resize something to create it. I recommend a size of 550MiB, although a tenth of that might work in a pinch.
To install GRUB, you should first be sure that you've installed the correct GRUB package. I'm not sure of naming in all distributions, but in Ubuntu, it would be grub-pc for BIOS/CSM/legacy mode and grub-efi-amd64 for EFI/UEFI mode. An EFI-mode installation will also require booting whatever you're using to install GRUB (a live CD/USB, presumably) in EFI mode. Doing this may require using your computer's built-in boot manager, which is typically accessed via a function key, but the details vary from one computer to another.
I have an AMI BIOS computer [Asus EB1501P] with a Seagate ST9250315AS 250GB HDD.
Is it possible to boot Linux from a GPT disk on such a BIOS system?
4 Answers 4
The BIOS generally doesn't care anything about your hard drives 1 . It simply loads the MBR and transfer control to the boot loader in MBR. Therefore technically it'll be possible to boot a GPT drive in BIOS mode, because the GPT drive still has a protective MBR at the beginning. You just need a bootloader that supports GPT disks (such as Grub and many other Linux bootloaders)
However, here a small problem arises. On MBR drives the boot loaders often cheat a bit by storing a part of them in the next sectors called "MBR gap", "boot track", or "embedding area" which are often left empty by disk partitioning tools. On a GPT disk the sectors right after the MBR are GPT data structures, hence can't be used for that purpose and you need to create a small BIOS Boot Partition for Grub to store its data
- Before attempting this method keep in mind that not all systems will be able to support this partitioning scheme. Read more on GUID partition tables.
- This additional partition is only needed on a GRUB, BIOS/GPT partitioning scheme. Previously, for a GRUB, BIOS/MBR partitioning scheme, GRUB used the Post-MBR gap for the embedding the core.img). GRUB for GPT, however, does not use the Post-GPT gap to conform to GPT specifications that require 1_megabyte/2048_sector disk boundaries.
- For UEFI systems this extra partition is not required, since no embedding of boot sectors takes place in that case. However, UEFI systems still require an EFI system partition.
- Select partition type BIOS boot for fdisk .
- Select partition type code ef02 for gdisk .
- For parted set/activate the flag bios_grub on the partition.
Grub also supports hard coding the sector that contains the next stage so it can boot without a post-MBR gap or BIOS boot partition, but that's fragile because you need to update Grub after every OS update. Therefore this isn't recommended
For more information you can read
Another way is to convert the GPT drive back to MBR if your HDD is not too big. In fact it's possible to have MBR disks above 2 TB, upto ~2 33 sectors (i.e. 4 TB and 16 TB for disks with 512-byte and 4096-byte sector respectively) with a big partition lasting from just before the half disk margin. There are multiple tools to do the conversion without loss of data like gdisk, MiniTool Partition Wizard, AOMEI Partition Assistant, EaseUS Partition Master. (I'm not affiliated with any of them).
Since your HDD is just 250 GB so it'll work fine in MBR. But using GPT is much safer because it has checksum and a backup table at the end, although it's a lot trickier if you dual boot Windows or some other OSes that are BIOS GPT unfriendly
1 There are some buggy BIOSes that eagerly unnecessarily do things they aren't supposed to do like checking the MBR signature or the active boot flag and refuse to boot on such drives
Читайте также: