Форум по операционной системе GNU/Linux и свободному программному обеспечению
Текущее время: 20 сен 2019, 08:19

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: GPT диски & UEFI загрузка
Непрочитанное сообщениеДобавлено: 17 сен 2012, 11:57 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 12403
Откуда: Харьков
Вопрос такой:

- всякая система управления виртуальными машинами (QEMU, VirtualBox, Bochs, Virtual PC, VMware, Xen, ... ) использует некоторый образ системного диска VM (исключая экзотические случаи, такие как "прямая загрузка" Linux в QEMU, когда указываются прямо файлы ядра и initrd); этот образ может быть файлом образа (чаще всего), но может быть и реальным устройством: диском, partition реального диска, USB флешкой и др. - но это раздичие совершенно не важно для дальнейшего вопроса...

- для загрузки VM используется некоторый эмулятор BIOS (многими заимствованный из проекта Bochs, где он поставляется в виде отдельного файла и может быть подменен)...

- но сейчас на смену MBR таблице разделов диска (реального или виртуального) идёт структура GPT дисков + вместо программного кода BIOS - UEFI (стандарт этот весьма давний, представленный Intel, известный тогда ещё под именем EFI)

- диски GPT (вместо MBR) имеют свою таблицу размещения partition (до 128 шт. вместо 4-х в MBR), свои ID типов разделов (разделы для Linux файловых систем = 8300 вместо 83 в MBR, для большинства Windows разделов - 0700 вместо множественных 0b, 0c, 0e, 0f и мн. других ранее), другие программы обслуживания разделов - gdisk вместо fdisk...

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

- кроме одного: UEFI загрузка!

- для обеспечения UEFI загрузки для диска GPT (помимо соблюдения прочих соглашений в структуре самого GPT диска), требуется программный код UEFI вместо кода BIOS ...

- в железках (особенно массово в последних моделях ноутбуков) этот программный код UEFI зашит в ROM (флеш) железки ... но для виртуальных машин его может обеспечить только менеджер виртуальных машин (конкретно вот те: QEMU, VirtualBox, Bochs, Virtual PC, VMware, Xen, ... );

- но ни в одном из них я не нахожу следов (опций, конфигураций) кода UEFI загрузчика ... может не там и не то ищу?

- ведь при начавшемся массовом переходе производителей железок на UEFI, тот менеджер виртуальных машин, который не предоставит UEFI загрузчика ... "ещё вчера" - просто сойдёт со сцены средств виртуализации, а это на сегодня рынок жесточайшей конкуренции, как мало какой другой в IT...

Что происходит?


Вернуться к началу
 Профиль Отправить личное сообщение Отправить email  
 
 Заголовок сообщения: Re: GPT диски & UEFI загрузка
Непрочитанное сообщениеДобавлено: 17 сен 2012, 12:16 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 12403
Откуда: Харьков
Olej писал(а):
- но ни в одном из них я не нахожу следов (опций, конфигураций) кода UEFI загрузчика ... может не там и не то ищу?


Одна из лучших работ относительно UEFI загрузки, мне известных, это то, что делает Roderick W. Smith:

1. The rEFInd Boot Manager
Цитата:
Originally written: 3/14/2012; last Web page update: 8/12/2012, referencing rEFInd 0.4.5
...
In theory, EFI implementations should provide boot managers. Unfortunately, in practice these boot managers are often so poor as to be useless.


2. Gigabyte's Hybrid EFI

3. присутствующая уже практически во всех дистрибутивах, наиболее "дееспособная" утилита работы с GPT - gdisk - это его же работа.

Вот и появилось такое соображение: нельзя ли использовать эти наработки для загрузки VM из образов виртуальных GPT дисков?


Вернуться к началу
 Профиль Отправить личное сообщение Отправить email  
 
 Заголовок сообщения: Re: GPT диски & UEFI загрузка
Непрочитанное сообщениеДобавлено: 17 сен 2012, 12:26 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 12403
Откуда: Харьков
Olej писал(а):


Автор описывает установки для Debian (Ubuntu?) - http://www.rodsbooks.com/gb-hybrid-efi/:
Цитата:
A variant on this procedure is to store rEFInd as EFI/Microsoft/Boot/bootmgfw.efi rather than EFI/Boot/bootx64.efi. If you do this, the firmware will probably detect it and add an entry to its boot manager list, but you can do this manually with the Linux efibootmgr utility if it doesn't. You must boot using EFI—I find that an Ubuntu installer booted in its "live CD" mode works well for this purpose, since you can install efibootmgr by typing sudo apt-get install efibootmgr. Thereafter, typing sudo efibootmgr -c -l \\EFI\\Microsoft\\Boot\\bootmgfw.efi -L rEFInd as root tells the firmware about the boot manager. (Note the use of double backslashes to separate directory elements with efibootmgr.) Using the default name of EFI/Boot/bootx64.efi is simpler and probably more reliable, but you can try this alternative if you can't get EFI/Boot/bootx64.efi to work.

... но, как оказывается, его проекты включены (и даже установлены по дефаулту) в последние дистрибутивы:
Код:
bash-4.2$ yum list all efi*
...
Установленные пакеты
efibootmgr.i686                                      0.5.4-12.fc17                                       @russianfedora/$releasever


Вернуться к началу
 Профиль Отправить личное сообщение Отправить email  
 
 Заголовок сообщения: Re: GPT диски & UEFI загрузка
Непрочитанное сообщениеДобавлено: 17 сен 2012, 20:08 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 12403
Откуда: Харьков
Olej писал(а):
- для обеспечения UEFI загрузки для диска GPT (помимо соблюдения прочих соглашений в структуре самого GPT диска), требуется программный код UEFI вместо кода BIOS ...
...
- но ни в одном из них я не нахожу следов (опций, конфигураций) кода UEFI загрузчика ... может не там и не то ищу?


VirtualBox:
Вложение:
-fedora.17 - Свойства.png
-fedora.17 - Свойства.png [ 62.79 КБ | Просмотров: 6070 ]


Оно? ;-)

P.S. Не знаю, с какой версии появилось, это 4.1.22, ... сегодня обновлял, а релиз:
Цитата:
07-Sep-2012

Но в предыдущем 4.1.20 эта "галка" тоже была ... просто не обращал на неё внимания из-за ненадобности ;-)

P.P.S. см. комментарий, который пишет VirtualBox внизу скриншота.


Вернуться к началу
 Профиль Отправить личное сообщение Отправить email  
 
 Заголовок сообщения: Re: GPT диски & UEFI загрузка
Непрочитанное сообщениеДобавлено: 18 сен 2012, 11:02 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 12403
Откуда: Харьков
Olej писал(а):
Оно? ;-)


VM Fedora 17 с установленным флагом EFI слетает "на дух" ... не успеваешь в терминале увидеть ...
Только в логах VirtualBox и удаётся увидеть:
Цитата:
Unexpected trap during early EFI bootstrap!!


Olej писал(а):
P.S. Не знаю, с какой версии появилось, это 4.1.22, ... сегодня обновлял, а релиз:
Цитата:
07-Sep-2012

Но в предыдущем 4.1.20 эта "галка" тоже была ... просто не обращал на неё внимания из-за ненадобности ;-)


В переводе документации VirtualBox - Alternative firmware (EFI):
Цитата:
Начиная с версии 3.1, VirtualBox имеет экспериментальную поддержку Extensible Firmware Interface (EFI), являющийся новым промышленным стандартом, предназначенный для замены BIOS - первому интерфейсу, обеспечивающим загрузку компьютера и некоторых системных служб.

По умолчанию, VirtualBox использует BIOS. Для использования EFI в виртуальной машине, вы должны включить EFI в окне "Свойства" (см. раздел “вкладка "Материнская плата" ”). Вы можете также использовать VBoxManage:

VBoxManage modifyvm "VM name" --firmware efi
Для возврата к использованию BIOS, выполните команду:

VBoxManage modifyvm "VM name" --firmware bios

...
Цитата:
Видео режимы EFI

EFI поддерживает два видео интерфейсв: GOP (Graphics Output Protocol) и UGA (Universal Graphics Adapter). Mac OS X использует GOP, а Linux более склонен к UGA. VirtualBox позволяет управлять размером framebuffer обоих интерфейсов.

Для управления GOP, используется команда VBoxManage :

VBoxManage setextradata "VM name" VBoxInternal2/EfiGopMode N
Где N может одно значение из 0,1,2,3,4, что соответствует разрешениям 640x480, 800x600, 1024x768, 1280x1024, 1440x900.

Для изменения разрешений UGA используйте:

VBoxManage setextradata "VM name" VBoxInternal2/UgaHorizontalResolution 1440
VBoxManage setextradata "VM name" VBoxInternal2/UgaVerticalResolution 900
Видео режимы GOP и UGA можно изменять только для выключенных ВМ и остаются неизменными до следующего изменения.


Вернуться к началу
 Профиль Отправить личное сообщение Отправить email  
 
 Заголовок сообщения: Re: GPT диски & UEFI загрузка
Непрочитанное сообщениеДобавлено: 18 сен 2012, 20:44 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 12403
Откуда: Харьков
Olej писал(а):
Цитата:
Вы можете также использовать VBoxManage:

VBoxManage modifyvm "VM name" --firmware efi
Для возврата к использованию BIOS, выполните команду:

VBoxManage modifyvm "VM name" --firmware bios

Цитата:
Видео режимы EFI
EFI поддерживает два видео интерфейсв: GOP (Graphics Output Protocol) и UGA (Universal Graphics Adapter). Mac OS X использует GOP, а Linux более склонен к UGA. VirtualBox позволяет управлять размером framebuffer обоих интерфейсов.

Для управления GOP, используется команда VBoxManage :

VBoxManage setextradata "VM name" VBoxInternal2/EfiGopMode N
Где N может одно значение из 0,1,2,3,4, что соответствует разрешениям 640x480, 800x600, 1024x768, 1280x1024, 1440x900.

Для изменения разрешений UGA используйте:

VBoxManage setextradata "VM name" VBoxInternal2/UgaHorizontalResolution 1440
VBoxManage setextradata "VM name" VBoxInternal2/UgaVerticalResolution 900
Видео режимы GOP и UGA можно изменять только для выключенных ВМ и остаются неизменными до следующего изменения.


Теперь с этим придётся изрядно влезать в командный режим VirtualBox!

Но для этого нужна техдокументация по VBoxManage ...

1.
Код:
[olej@nvidia ~]$ man VBoxManage
Нет справочной страницы для VBoxManage


2.
Код:
[olej@nvidia ~]$ VBoxManage --help
Oracle VM VirtualBox Command Line Management Interface Version 4.1.22
...
VBoxManage modifyvm         <uuid|name>
...
                            [--firmware bios|efi|efi32|efi64]
...
VBoxManage setextradata     global|<uuid>|<name>
                            <key>
                            [<value>] (no value deletes key)


3.
Код:
[olej@nvidia ~]$ VBoxManage getextradata     global enumerate
Key: GUI/DetailsPageBoxes, Value: general,system,preview,display,storage,audio,network,usb,sharedFolders,description
Key: GUI/HostScreenSaverDisabled, Value: false
Key: GUI/Input/AutoCapture, Value: false
Key: GUI/Input/HostKeyCombination, Value: 65300
Key: GUI/LastVMSelected, Value: 40ea310b-e42f-4d83-8c90-392acb76393c
Key: GUI/LastWindowPosition, Value: 82,130,803,548
Key: GUI/MaxGuestResolution, Value: auto
...

Код:
[olej@nvidia ~]$ VBoxManage getextradata "fedora.17-UEFI" enumerate
Key: GUI/LastCloseAction, Value: powerOff
Key: GUI/LastGuestSizeHint, Value: 640,480
Key: GUI/LastNormalWindowPosition, Value: 41,47,640,524


4. UserManual.pdf:
Цитата:
8 VBoxManage
8.1 Introduction

As briefly mentioned in chapter 1.14, Alternative front-ends, page 30, VBoxManage is the
command-line interface to VirtualBox. With it, you can completely control VirtualBox from the
command line of your host operating system.
...


Вернуться к началу
 Профиль Отправить личное сообщение Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB
[ Time : 0.267s | 19 Queries | GZIP : On ]