Как создать мультизагрузочную среду с использованием LVM для ваших операционных систем * buntu на системном диске, отформатированном в GPT, в системе на основе UEFI?


9

Моя причина использования LVM заключается в том, что я переустанавливаю, модернизирую и, как правило, возиться с установками моей ОС настолько, что я обнаружил, что LVM дает мне фантастическую гибкость в перемещении, расширении, клонировании и резервном копировании разделов моей ОС на свой страх и риск без связанных с этим рисков с другими методами разделения. Это, однако, делает мультизагрузку ваших ОС иногда немного сложной и непредсказуемой, особенно на более новом оборудовании, где процесс приобретает другой уровень сложности.

Я говорю о новых материнских платах UEFI (в отличие от BIOS), которые позволяют использовать весь потенциал жестких дисков объемом 3 ТБ и загружаться с них (при форматировании в GPT, а не в MBR). Вещи могут быть невероятно сложными и запутанными, потому что каждый раз, когда вы устанавливаете новую ОС на свой компьютер, она перезаписывает файлы загрузчика EFI (.efi) предыдущей установки, и в результате вы получите ряд неработающих записей в вашей EFI. «BIOS» загрузочный список и множество довольно избыточных загрузчиков grub, разбросанных по вашим разделам. Это оскорбляет меня на многих уровнях, не в последнюю очередь на эстетическом.

Ответы:


6

ПРИМЕЧАНИЕ: это был ответ ОП. Я перенес его сюда как CW, чтобы он не закрывался. Если мод видит это, пожалуйста, передайте право собственности на OP в качестве самоответа.

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

Часть первая: установка.

Обратите внимание, что если на вашем компьютере будет установлена ​​Windows 7 (или 8?), Вам, вероятно, придется сначала установить ее , желательно на собственный жесткий диск, и вы не сможете установить ее на свой компьютер. группа логических томов. Это потому, что установщик Windows 7 GPT / EFI очень прост и не позволит вам делать то, что вы будете здесь делать. После установки Windows вы можете изменить размер и перераспределить разделы, добавив разделы, необходимые для установки с несколькими загрузками. Системный раздел EFI, который создает Windows, всегда можно повторно использовать для установки Linux, используя вариант, описанный ниже.

Во-первых , это помогает стереть намеченный системный диск с помощью gparted (или подобного) и инициализировать его как диск GPT, прежде чем делать что-либо еще. Если вы немного нервничаете по поводу использования неграфического разделителя для настройки вашего диска с нуля, то это определенно стоит, и это легко сделать с помощью стандартного установщика USB или CD для рабочего стола. Не делай этого в Windows. Я не уверен, что это абсолютно необходимо, но это то, что я сделал. На этом этапе вы также можете выполнить базовое разбиение для разделов не-LVM, так как это не повредит и даст вам основу для правильной установки.

Теперь запишите ваши установочные CD / USB. Если вы используете Ubuntu Alternate Desktop ISO (рекомендуется), вы должны записать его на CD, так как он просто не будет работать с USB-накопителя. При использовании для установки LVM он останавливается с критической ошибкой при попытке начать загрузку и установку программного обеспечения с помощью aptitude / tasksel, поэтому используйте CD, если вы знаете, что хорошо для вас!

  • Во всех случаях Ubuntu Server устанавливается абсолютно нормально с USB (AFAIK), но я обнаружил, что если я хочу построить настольную систему Ubuntu / Mythbuntu поверх сервера, он вводит все виды непреднамеренных извращений, которые затем требуют времени, затрачиваемого на сортировку. Так что придерживайтесь Desktop, если это то, что вам нужно.

  • Quantal (12.10) имеет LVM в качестве опции в графическом установщике (что здорово!), Поэтому с альтернативным ISO покончено. Тем не менее, я обнаружил, что интерфейс ручного разбиения негибкий, в нем отсутствуют опции LVM, и он просто не работает для мультизагрузки. Возможно, это произошло из-за проблемы с USB, упомянутой ранее, но, честно говоря, у меня было так много проблем с квантовой системой, которую я попробовал, что я довольно быстро сдался и вернулся к Precise (12.04.1).

  • Другим основным вариантом является использование установщика Net-boot, с которым у меня нет реального опыта (кроме моего Raspberry Pi), но я считаю, что есть мини ISO с текстовыми установками и GUI (GTK), который можно сжечь и загрузить с. Они извлекают большинство установочных файлов непосредственно из репозитория и имеют широкие возможности настройки.

Затем вы должны загрузить свою систему с CD или USB, используя ее загрузочную запись UEFI из «BIOS» или из меню загрузки (обычно это одно из [F8] - [F12] на клавиатуре).

Я оставлю на ваше усмотрение прохождение предварительных этапов процесса установки, но как только вы перейдете к разделу с разделами, выберите Разделение вручную, а затем создайте (или измените, если вы уже создали некоторые из них) следующие разделы:

  1. Один раздел размером 200 МБ, FAT32, системный раздел EFI, с именем / пометкой «EFI», с возможностью загрузки, формат.

  2. Несколько разделов: размер 256 МБ, EXT2, загрузочный, формат;

    • Вы должны назвать / пометить их для каждой ОС, которую они будут представлять, то есть "OS_01_Boot" ... "OS_03_Boot" ... и т. Д.

    • Начните с монтирования первого из них как «/ boot», а всех остальных как «не использовать».

    • Создайте один раздел для каждой ОС, которую вы собираетесь установить.

  3. Один раздел, занимающий оставшееся место на диске, как том для LVM.

    • Сконфигурируйте LVM на томе, который вы только что разделили, создав группу томов для всех ваших ОС, присвоив ей подходящее имя и достаточно места для всех. Я бы рекомендовал использовать как минимум 40 ГБ для каждого, в зависимости от типа установки, которую вы планируете для каждого.
  4. Создайте один логический том того же размера, что и физическая память в вашей системе, т. Е. 8 ГБ, назовите его «Swap», используйте как swap, format.

  5. Создайте по одному логическому тому для каждой из ОС в группе томов, изменив их размер, как указано выше, и присвоив каждому имя, например, «Ubuntu_12.04» и т. Д.

    • Отформатируйте каждый в EXT4, называя / маркируя разделы, как вы идете.

    • Начните с монтирования первого из них как «/» (root), а всех остальных как «не использовать».

Это оно! Теперь у вас есть раздел подкачки, "/ boot" и "/" (root) для вашей системы и запасные для последующих установок. Теперь вы можете зафиксировать изменения в таблице разделов и продолжить установку.

Когда дело доходит до установки вашей следующей ОС, просто убедитесь, что вы монтируете следующий раздел "/ boot" и "/" (root) соответственно. Пожалуйста, убедитесь, что вы отметили все остальные как "не использовать", в том числе те, которые вы использовали в прошлый раз.

Часть вторая: Резервное копирование загрузочных файлов UEFI.

Как только вы загрузитесь в новую ОС, вы должны сделать резервную копию вашего загрузчика UEFI для дальнейшего использования и убедиться, что он не будет перезаписан при следующей установке. Это можно найти в "/ boot / efi / EFI", в его собственной папке, обычно называемой "ubuntu". Файл, о котором идет речь, будет иметь имя, похожее на «grubx64.efi», в зависимости от архитектуры вашего ПК; поэтому "/boot/efi/EFI/ubuntu/grubx64.efi" для моей машины.

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

sudo cp -r /boot/efi/EFI/ubuntu /boot/efi/EFI/Ubuntu_12.04.1

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

cp -r /boot/efi/EFI/ubuntu /home/user/Ubuntu_12.04.1

После этого вы можете безопасно установить следующую операционную систему (следуя приведенным выше советам), которая, скорее всего, перезапишет исходный файл и папку, а также сделает себя загрузочной записью UEFI по умолчанию в «BIOS». Повторите процесс снова и столько раз, сколько необходимо, присваивая каждой папке другое, но представительное имя:

sudo cp -r /boot/efi/EFI/ubuntu /boot/efi/EFI/Server_12.04.1
cp -r /boot/efi/EFI/ubuntu /home/user/Server_12.04.1

Часть третья: изменение записей UEFI в вашем "BIOS" UEFI.

С терминала введите:

sudo efibootmgr

Вы должны получить некоторый вывод, как это:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0000,0006,0007,0005
Boot0000* ubuntu
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive

Это довольно очевидно, правда. Он должен отражать то, что вы видите в вашем списке загрузки BIOS.

Прочитайте:

man efibootmgr

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

Сначала удалите строку «Boot0000 * ubuntu» с помощью:

sudo efibootmgr -b 0000 -B

Вывод:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0006,0007,0005
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive

Затем мы добавим несколько записей для трех операционных систем.

ОС № 1:

sudo efibootmgr -c -g -d /dev/sda -p 1 -w -L "Ubuntu 12.04.1" -l \\EFI\\Ubuntu_12.04.1\\grubx64.efi

Вывод:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0000,0006,0007,0005
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive 
Boot0000* Ubuntu 12.04.1

ОС № 2:

sudo efibootmgr -c -g -d /dev/sda -p 1 -w -L "Ubuntu Server 12.04.1" -l \\EFI\\Server_12.04.1\\grubx64.efi

Вывод:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0001,0000,0006,0007,0005
Boot0000* Ubuntu 12.04.1
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive 
Boot0001* Ubuntu Server 12.04.1

ОС № 3:

sudo efibootmgr -c -g -d /dev/sda -p 1 -w -L "Mythbuntu 12.04.1" -l \\EFI\\Mythbuntu_12.04.1\\grubx64.efi

Вывод:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0002,0001,0000,0006,0007,0005
Boot0000* Ubuntu 12.04.1
Boot0001* Ubuntu Server 12.04.1
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive 
Boot0002* Mythbuntu 12.04.1

Чтобы изменить порядок загрузки:

sudo efibootmgr -o 0000,0001,0002,0006,0007,0005

Вывод:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0000,0001,0002,0006,0007,0005
Boot0000* Ubuntu 12.04.1
Boot0001* Ubuntu Server 12.04.1
Boot0002* Mythbuntu 12.04.1
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive

Выполнено!

Здесь используется довольно странный синтаксис, особенно в отношении путей к файлам, но он довольно прост, если у вас есть хорошее руководство (и я надеюсь, что это так).

Спасибо за чтение. :)

https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface#efibootmgr


Спасибо, AbrahamVanHelpsing. Я пытался ответить самому себе, но я думаю, что здесь слишком много нубов. Я постараюсь привести это в порядок позже; форматирование ужасно! Сейчас 1:30 утра, так что я сейчас сдаюсь!
Rich.T.

2

Любой установщик ОС, который удаляет файлы загрузчика EFI предыдущих или других ОС, сильно поврежден. У Ubuntu была эта проблема в прошлом, но она была предположительно исправлена ​​в версии 12.04. (Я говорю «предположительно», потому что я видел пару сообщений о проблемах такого рода, которые заставляют меня думать, что ошибка может существовать для меньшинства систем.) Тем не менее, резервное копирование системного раздела EFI (ESP) перед Установка новой ОС - полезный страховой полис. Резервной копии на уровне файлов должно быть достаточно, так как EFI не полагается на код, сжатый в загрузочных секторах. ( Тем не менее, он полагается на GUID раздела, поэтому, если что-то удаляет ESP и создает новый, записи загрузчика EFI могут перестать работать.)

Вообще говоря, для вашего типа конфигурации я рекомендую создать ESP с таким количеством /bootразделов, которое, по вашему мнению, может понадобиться, и большим разделом LVM. Если вы планируете устанавливать дистрибутивы Linux вместе с другими ОС, создайте три или четыре раздела LVM различного размера, которые затем объедините в одну группу томов; таким образом, вы можете извлечь один раздел (логический том) из своей группы томов и выделить его для ОС, отличной от Linux. /bootРазделы не-LVM дают вам возможность использовать загрузчики, которые не понимают LVM (то есть загрузчики не-GRUB2).

Когда вы устанавливаете новую ОС, она, вероятно, установит собственный загрузчик по умолчанию. В такой сложной обстановке, как ваша, большую часть времени это, вероятно, неправильно. Чтобы исправить, полезно иметь флэш-накопитель USB или CD-R с установленным на нем предпочтительным загрузчиком. То, что может автоматически определять другие загрузчики, такие как rEFIt или его производный rEFInd, вероятно, будет хорошо работать в этом контексте. (Обратите внимание, что двоичные файлы на веб-сайте rEFIt работают только на Mac; rEFInd является более безопасным выбором для ПК на основе UEFI.) В качестве альтернативы или дополнения может быть полезен способ запуска оболочки EFI, поскольку вы можете перемещать файлы, настройте параметры загрузки и исправьте ряд проблем из оболочки EFI. Многие загрузчики EFI и менеджеры загрузки могут запускать оболочки EFI. (Видетьэта вики Arch Linux для загрузки ссылок на некоторые оболочки EFI.) Образы CD rEFIt и rEFInd включают оболочки EFI.


2

Вам не нужно использовать EFI для загрузки диска объемом 2 ТБ; вам просто нужно использовать GPT и создать раздел bios_grub размером 1 МБ ниже отметки 2 ТБ. Если вы считаете, что EFI проблематичен, это может помочь вам.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.