Меню Рубрики

Установка grub на gpt диск

Установка загрузчика Grub

Для инициализации ядра и запуска операционной системы Linux используется загрузчик. Это программа, которая запускается после завершения проверки оборудования BIOS, подготавливает оборудование к работе, задает нужные параметры ядра и позволяет выбрать операционную систему. Основная задача загрузчика дать пользователю выбрать операционную систему для загрузки.

Раньше для загрузки Linux использовалось несколько загрузчиков, это isolinux, lilo, grub. Но сейчас чаще всего применяется Grub или полное его название GRand Unified Bootloader. В этой статье будет рассмотрена установка загрузчика Grub через терминал. Также мы поговорим как установить grub на компьютер с UEFI, тоже вручную.

Немного теории

Как я уже сказал, основная задача загрузчика — предоставить возможность выбора операционной системы перед загрузкой. Не думайте, что в Windows загрузчик не используется, там он тоже есть и работает, подобно тому, как работает Grub.

Загрузчик может быть установлен в различные таблицы разделов диска. Сейчас самые используемые это GPT и MBR. Установка загрузчика Grub немного отличается для каждой из этих таблиц, учитывая их особенности. Подробнее об отличиях MBR vs GPT можно почитать в отдельной статье. Тут же я скажу, что GPT — более новая и функциональная таблица разделов, MBR — уже устаревшая, но до сих пор часто используемая.

В MBR вариантов немного, Grub записывается в область MBR на диске. Размер сектора MBR занимает первых 512 байт и этого вполне достаточно для того, чтобы установить туда загрузчик.

GPT предоставляет более широкие возможности. Во-первых, для совместимости в GPT эмулируется сектор MBR, и мы можем установить GRUB туда, но такой вариант очень ненадежный и не рекомендуемый. Во-вторых, теперь появилась возможность устанавливать Grub на раздел диска. Мы просто создаем раздел на диске размером 1 Мб и записываем туда то, что раньше записывалось в MBR, это делает установку загрузчика более надежной и защищенной от сбоев.

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

Для установки Grub будет использоваться команда grub-install, во всех случаях. Давайте кратко рассмотрим ее синтаксис и параметры. Синтаксис:

$ grub-install опции диск

Параметров здесь достаточно много, но нам будут нужны только некоторые:

  • —compress — сжать файлы загрузчика;
  • —install-modules=модули — установить только эти модули;
  • —modules — записать эти модули в MBR;
  • —boot-directory — использовать другой каталог для файлов Grub;
  • —bootloader-id — имя загрузчика в меню EFI;
  • —core-compress — сжимать образ, загружаемый в MBR;
  • —efi-directory — использовать системный раздел EFI;
  • —force — установить несмотря на ошибки;
  • —recheck — удалить существующую карту устройств, помогает если возникают ошибки;
  • —removable — установка grub на флешку (только EFI);

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

Установка загрузчика Grub в MBR для BIOS

Начнем с самого просто и привычного. Данная инструкция как установить загрузчик Grub подойдет для любого дистрибутива, поскольку команды везде почти одинаковые. Здесь не нужно устанавливать никаких дополнительных пакетов или создавать разделов. Установка Grub на жесткий диск выполняется командой:

Утилиты grub в разных дистрибутивах могут включать двойку, а могут и не включать. Здесь /dev/sda — ваш жесткий диск. Теперь генерируем конфигурационный файл, чтобы автоматически определились установленные операционные системы:

sudo grub-mkconfig -o /boot/grub/grub.cfg

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

Готово. По поводу двойки здесь такое же замечание. Если вы хотите установить Grub на флешку в MBR, то тут тоже нет проблем просто примонтируйте флешку и выполните такую команду:

sudo grub-install —root-directory=/mnt/USB/ /dev/sdb

Здесь /mnt/USB — папка, куда была смотирована ваша флешка, а /seb/sdb — сама флешка. Только здесь есть одна проблема, конфигурационный файл придется делать вручную.

Установка загрузчика Grub в GPT для BIOS

Во-первых, мы можем ничего не менять и установить Grub так, как описано в предыдущем способе. Но тогда он будет установлен в область совместимости с MBR, а это не надежно. Поэтому рекомендуется установить grub так, как описано ниже, на отдельный раздел.

Нужный нам раздел можно создать в установщике любого дистрибутива, если вы выполняете установку в графическом интерфейсе или с помощью gparted. Нам нужен раздел размером 1 Мегабайт без файловой системы и с меткой grub_bios:

Дальше примените изменения, нажмите на разделе правой кнопкой, выберите manage flags и добавьте флаг grub_bios:

Готово. Если у вас нет под рукой доступа к графическому интерфейсу, вы можете создать такой раздел через терминал. Утилита fdisk не поддерживает работу с gpt, поэтому будем использовать gfdisk. Сначала запустите утилиту:

Читайте также:  Установка кулисы на сенсе

Чтобы создать новый раздел нажмите n и выберите номер раздела:

Соглашаемся с начальным сектором, будет использован первый же свободный:

Выбираем конечный сектор раздела. По умолчанию будет использоваться максимальный. Нам нужен раздел размером 1 Мб. Размер одного сектора GPT — 512 байт, поэтому нам нужен раздел размеров 2048 секторов. Таким образом, конечный сектор будет 24000 с чем-то.

HEX Code — это тот код, который скажет системе, что этот раздел нужно использовать для Grub, нужно установить ef02:

Готово, осталось нажать w для записи изменений на диск:

Установка grub на жесткий диск дальше выполняется точно так же, как и в предыдущем способе:

Осталось создать конфигурационный файл grub:

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

Теперь переходим к самому сложному, как установить grub efi.

Установка GRUB UEFI GPT

Установка Grub UEFI чем-то похожа на установку в GPT, тут у нас тоже будет отдельный раздел, только на этот раз не для загрузчика, а раздел EFI. Если у вас уже установлена Windows, то, скорее всего, он уже существует. Этот раздел обычно занимает 100 Мб, имеет файловую систему fat32 и флаг ESP. Вот так он будет выглядеть:

Если же такого раздела нет, мы можем его создать с помощью gparted. Для этого создаем раздел с такими параметрами:

Размер 100 Мегабайт, имя раздела ESP, файловая система fat32. Дальше примените изменения и установите для раздела флаг ESP:

То же самое вы можете сделать в Gdisk, только на этот раз нужно устанавливать HEX Code раздела ef00. После того как раздел был создан, подключаем его к нашей файловой системе:

sudo mkdir /boot/efi
$ sudo mount /dev/sda2 /boot/efi

Здесь /dev/sda2 — это наш EFI раздел. Далее необходимо установить нужные пакеты, если они еще не установлены. В Ubuntu это будет выглядеть вот так:

sudo apt install grub-efi efibootmgr

Дальше останется только установка grub efi. Система сама определит нужный раздел и скопирует туда все файлы:

Установка Grub efi на MBR все выглядит точно так же, только тут есть несколько ограничений. Раздел ESP нужно создавать только в начале диска. В режиме EFI тоже можно установить GRUB на флешку, и это не очень сложно. Для этого используется команда:

grub-install —boot-directory=/mnt/sdb2/boot —efi-directory=/mnt/sdb1 —target=x86_64-efi —removable

Рассмотрим опции: —boot-directory — задает папку с файлами загрузчика на флешке, —efi-directory — папка куда смонтирован раздел efi, —target — архитектура целевой системы и —removable говорит, что это установка на съемный носитель. С UEFI все. После перезагрузки и выбора в меню EFI пункта связанного с Grub, вы получите доступ к привычному меню grub и сможете выбрать нужный параметр.

Выводы

Теперь установка Grub не вызовет у вас проблем. Мы разобрали не только как установить Grub2 в MBR но и в EFI. Кроме того, всю приведенную здесь информацию вы можете использовать для восстановления Grub. Так вы будете лучше понимать что происходит во время восстановления. А настройку параметров и ручное создание конфигурационного файла мы рассмотрим в одной из следующих статей.

источник

Разбираемся с UEFI и GPT: установка Windows и Kubuntu на один диск

Помните те времена, когда BIOS был 16-битным с адресным пространством в 1 Мб, а вся информация о загрузчиках писалась в MBR? На смену уже давно пришли более гибкие технологии: UEFI (замена BIOS), и GPT (замена MBR).

Предыстория: Понадобилось мне недавно на свой домашний десктоп поставить 2 системы, чтобы разграничить окружение. Kubuntu для разработки на Ruby on Rails (ибо работаю удаленно), и Windows для всяких игрушек в свободное время. Хочу заметить, что несколько лет назад это было достаточно просто: один раздел для винды и один раздел для линукса, загрузчик записывался в MBR. Однако, технологии не стоят на месте, и оказалось, что настройка dual boot’а теперь несколько изменилась.

Итак, начнем.

Терминология

GPT (GUID Partition Table, Таблица разделов GUID) — часть спецификации UEFI. UEFI использует GPT так же как BIOS использует MBR.
Главным отличием GPT от MBR, на мой взгляд, являются:

  • Количество разделов: MBR поддерживает только 4 раздела. Можно и больше, но только через extended partition, что является просто хаком ограничений. GPT поддерживает до 128 разделов.
  • Размер диска: MBR поддерживает диски до 2Тб, в то время как GPT — до 9.4 Зеттабайт (=9.4 × 10^21 байт, или условно 1000 Тб)
  • Порядок загрузки: раньше BIOS загружал MBR, и в нем содержались адреса загрузчиков для каждого раздела диска. Теперь UEFI считывает GPT, находит в таблице все разделы типа efi (на них содержатся загрузчики), и подгружает их в память. Разберем это на примере немного позже.
Читайте также:  Установка заглушек коленвала камаз

Что делаем:

Устанавливаем следующие ОС на пустой HDD размером в 1 Тб.

  • Windows 8.1 x64. Windows поддерживает загрузку с GPT начиная с Windows 8 для 32 битной архитектуры и с Windows Server 2003 и Windows Vista для 64 бит (Источник).
  • Kubuntu 15.04. По идее подойдет любой дистрибутив, который поддерживает Grub2, лично я предпочитаю Kubuntu.

NB: Материнская плата поддерживает UEFI

Разбивка диска

Сначала устанавливаем Windows 8, т.к. она автоматически будет использовать GPT.
Разбивка будет выглядеть так (пардон за кривой снимок):

Винда по умолчанию создает 4 раздела:

  1. Recovery (300Мб). Очевидно, что он используется для восстановления системы. Оставим как есть.
  2. EFI partition (100Мб). Помечается как system type (не любят в Майкрософте называть вещи своими техническими именами). Собственно сюда и пишутся загрузчики.
  3. MSR (128Мб, Microsoft Reserved Partition). Для меня остается загадкой, зачем он нужен. Данных там никаких нет, просто пустое место, зарезервированное для каких-то непонятных целей в будущем.
  4. Основной раздел. Мы его поделим на 3: 200 гигов под винду, 500 гигов для раздела под данные и остальное пространство пока оставим неразмеченным (отформатируем потом при установке Kubuntu).

Пропустим саму установку Windows, т.к. в ней все стандартно и понятно.

Теперь загрузимся с USB в Kubuntu Live.

Boot0000 — виндовый загрузчик
Boot0001 — дефолтный загрузчик
Boot0003 — флешка с Kubuntu Live
Обратите внимание, что список загрузчиков не привязан к одному физическому диску как в MBR. Он хранится в NVRAM.

Можем также сразу посмотреть, что же в этом разделе, подмонтировав его:

Там окажутся следующие файлы:

Убедились, что все хорошо. Теперь продолжаем разбивку диска (через KDE Partition Manager).

Первые пять разделов остались прежними. Обратите внимание, как Kubuntu определила разделы:

  • sda2 определился как FAT32. Это практически верно, т.к. файловая система типа EFI основана на FAT, только с жесткими спецификациями.
  • sda3 (MSR) не определился, т.к. файловой системы там так таковой нет.

Нам осталось только отформатировать раздел для Kubuntu в ext4, и выделить раздел под swap.

Несколько слов про swap. Рекомендуют на swap выделять от SQRT(RAM) до 2xRAM. Т.к. у меня 16 Гб RAM, то по минимуму мне надо 4 Гб свопа. Хотя я с трудом могу представить ситуации, при которых он будет использоваться: десктоп в hibernate я не перевожу, и сильно тяжелых программ, которые жрут больше 16 гигов, не использую.

P.S. При форматировании раздела в swap Partition Manager может выдать ошибки, которые связаны с тем, что Kubuntu автоматически монтирует в себя любой swap раздел, однако на результат эти ошибки не влияют.

Теперь самое главное для правильного dual boot’а. При установке Kubuntu важно выбрать, куда установить загрузчик:

Указываем, конечно же на раздел EFI.

После завершения установки Kubuntu, заходим в систему и проверяем, какие файлы появились на efi разделе (монтировать уже не нужно):

Смотрим, как теперь выглядит список загрузчиков:

Вот как это выглядит при загрузке:

А еще эти загрузчики доступны сразу из UEFI (в старом BIOS’е такое было бы невозможно — там был выбор только диска, он просто не знал, что такое загрузчики):

Ну и напоследок: чтобы dual boot правильно работал, в Windows надо обязательно отключить fast boot. Это такая нехорошая фича, которая может привести к потере данных.

При выключении компьютера Windows сохраняет файловую структуру NTFS разделов в файл (видимо, потому что один файл прочитать быстрее, чем сканировать много разных файлов). Если записать файл на NTFS раздел через линукс, и потом загрузиться в Windows, то Windows просто не увидит файл. Источник

Если выключить комп через Windows, и потом попытаться загрузить Linux, то он просто не запустится из-за «ошибки» NTFS. Источник

источник

Работа с дисками при установке BlackArch (Arch): общая информация, конвертация и разметка MBR и GPT; общая информация и установка GRUB и EFI

Большинству пользователям, даже пользователям Linux со стажем, не приходилось разбираться сталкиваться MBR и GPT, разбираться в их различиях. Но при установке BlackArch (Arch) желательно понимать эту теорию. Можно установить BlackArch (Arch) по мануалу и без этих знаний, но особо сложного здесь ничего нет, при этом эта информация может здорово вас выручить на практике.

MBR и GPT

MBR — Главная загрузочная запись

Главная загрузочная запись (англ. master boot record, MBR) — код и данные, необходимые для последующей загрузки операционной системы и расположенные в первых физических секторах (чаще всего в самом первом) на жёстком диске или другом устройстве хранения информации.

Читайте также:  Установка газового счетчика на последнем этаже

MBR содержит небольшой фрагмент исполняемого кода, таблицу разделов (partition table) и специальную сигнатуру.

Функция MBR — «переход» в тот раздел жёсткого диска, с которого следует исполнять «дальнейший код» (обычно — загружать ОС). На «стадии MBR» происходит выбор раздела диска, загрузка кода ОС происходит на более поздних этапах алгоритма.

В процессе запуска компьютера, после окончания начального теста (Power-on self-test — POST), Базовая система ввода-вывода (BIOS) загружает «код MBR» в оперативную память (в IBM PC обычно с адреса 0000:7c00) и передаёт управление находящемуся в MBR загрузочному коду.

cfdisk показывает MBR как dos.

GPT — Таблица разделов GUID

GUID Partition Table, аббр. GPT — стандарт формата размещения таблиц разделов на физическом жестком диске. Он является частью Расширяемого микропрограммного интерфейса (англ. Extensible Firmware Interface, EFI) — стандарта, предложенного Intel на смену BIOS. EFI использует GPT там, где BIOS использует Главную загрузочную запись (англ. Master Boot Record, MBR).

cfdisk показывает GUID как GPT.

Создание и удаление GPT (превращение диска из MBR в GPT и превращение диска из GPT в MBR)

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

Если вы хотите создать новую GUID таблицу раздела (GPT), то можете это сделать с помощью программы gdisk:

Далее для создания таблицы наберите:

Для удаления GPT с диска, если она там есть:

Для перехода в экспертный режим там введите

Затем д ля удаления GPT введите

Дважды согласитесь, чтобы полностью очистить диск.

Разметка диска для MBR

Раздел загрузки и рута должны быть primary.

Размер загрузочного раздела должен быть 200 мегабайт или больше.

Для загрузочного раздела нужно поставить флаг Bootable.

Изменение типов разделов не требуется (тип Linux).

В результате должно получиться примерно так:

Раздел загрузчика должен быть отформатирован на выбор в ext2, ext3, ext4. Я выбираю ext2, поскольку он быстрее, а журналирование для раздела загрузки не требуется:

Рут и пользовательские разделы на выбор в ext2, ext3, ext4 (рекомендуется ext4):

Форматирование и инициализация раздела SWAP (если вы его сделали):

Разметка диска для GPT

Тип загрузочного раздела должен быть EFI System, размер 200-500 мегабайт.

Тип раздела подкачки Linux swap.

Тип раздела рута и других пользовательских дисков: Linux root (x86-64) (либо в соответствии с вашей системой).

В результате должно получиться примерно так:

Раздел загрузчика должен быть отформатирован в FAT32:

Рут и пользовательские разделы на выбор в ext2, ext3, ext4 (рекомендуется ext4):

Форматирование и инициализация раздела SWAP (если вы его сделали):

GRUB и EFI

GRUB (англ. GRand Unified Bootloader) — загрузчик операционной системы от проекта GNU. GRUB позволяет пользователю иметь несколько установленных операционных систем и при включении компьютера выбирать одну из них для загрузки.

Extensible Firmware Interface (EFI) (англ. Интерфейс расширяемой прошивки) — интерфейс между операционной системой и микропрограммами, управляющими низкоуровневыми функциями оборудования, его основное предназначение: корректно инициализировать оборудование при включении системы и передать управление загрузчику операционной системы. EFI предназначен для замены BIOS — интерфейса, который традиционно используется всеми IBM PC-совместимыми персональными компьютерами. Первая спецификация EFI была разработана Intel, позднее от первого названия отказались и последняя версия стандарта носит название Unified Extensible Firmware Interface (UEFI). В настоящее время разработкой UEFI занимается Unified EFI Forum.

Если верить документации и разным вики, то GRUB можно установить и на MBR, и на GPT. Точно также EFI можно установить и на MBR, и на GPT. Но на практике EFI не ставиться в MBR (при установке в Arch). И при попытке установить GRUB в GPT на виртуальной машине при перезагрузке я неизменно получаю:

Общее правило (которое всегда работает) такое:

  • GRUB ставить в MBR
  • EFI ставить в GPT

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

Если среди опцией есть EFI, значит пододержка имеется. VirtualBox также поддерживает EFI если эту поддержку указать явно для конкретной виртуальной машины:

Процесс установки GRUB

Обратите внимание, что /dev/sda — это не загрузочный или какой-то другой раздел — это весь диск.

Процесс установки EFI

Редактируем содержимое файла:

Удалите то, что там есть и впишите туда:

Создайте конфигурационный файл для добавления пункта Arch Linux в менеджер gummiboot:

Содержимое файла должно быть примерно следующим:

Помните, что /dev/sda3 это НЕ загрузочный диск, а диск рут раздела.

источник

Добавить комментарий

Adblock
detector