BIOS & UEFI

Обмен опытом по установке Линукс на разные аппаратные конфигурации

Модераторы: Olej, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

BIOS & UEFI

Непрочитанное сообщение Olej » 13 янв 2013, 18:57

Пока ещё загрузка большинства компьютеров (кроме самых новых) идёт через BIOS. Но уже готовится давно переход к UEFI. Сам стандарт под названием ещё EFI существует порядка 10-ти лет.

И вот в предверие перехода к EFI загрузке наблюдаются ряд любопытных и неожиданных вещей.
Самым выраженным случаем является установка и загрузка Windows 7. Уже несколько раз от своих коллег (достаточной квалификации) я слышу такую историю:
- приходят соседи-знакомые просят починить компьютер, довольно старенькие модели, образцы 4-5 лет давности, типовые...
- "поломка" - после попытки (или аварийно закончившейся ... или даже нормально закончившейся) установки Windows 7 ...
- состоит в том, что при установленном в SETUP BIOS первичном устройстве загрузки на CD-ROM ...
- ... загрузка с инсталляционного диска Windows 7 - не идёт! Загрузка идёт всё равно с HDD с битой системой!

Как это может быть?
Подсказки ;-) :
1. инсталляционный CD - совершенно свежий, нормальный, с которого не раз делалась инсталляция;
2. Windows 7 устанавливает загрузку через небольшой "скрытый системный раздел" - это /EFI раздел;
3. после снятия HDD загрузочный CD нормально грузится!
4. после low-lewel format начальной области HDD (например 2000 секторов) и установки HDD на место - загрузка с DVD происходит + дальше происходит нормальная инсталляция WIndows 7 на этот HDD!
Как это происходит?

Это не мистика...
И у меня есть соображения (догадки) как это происходит. И всё это имеет касательство к начинающемуся повсеместно переходу на UEFI вместо BIOS, и для разбирательств будущих с UEFI разобраться бы в этих деталях любопытно.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: BIOS & UEFI

Непрочитанное сообщение Olej » 13 янв 2013, 22:55

Olej писал(а):Это не мистика...
И у меня есть соображения (догадки) как это происходит.
Вот это (в разных местах) всё та же история, это всё о том же:
Проблема с загрузчиком GRUB
Установка Linux
Здравствуй UEFI!

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: BIOS & UEFI

Непрочитанное сообщение Olej » 14 янв 2013, 17:24

Olej писал(а): Это не мистика...
И у меня есть соображения (догадки) как это происходит.
А поскольку чудес в природе не должно быть (или они, по крайней мере, должны происходить исключительно редко), то я так предполагаю:
- не с CD-привода перестали грузится CD...
- а изменился (или меняется повсеместно) формат записи CD/DVD носителей;
- и теперь они в большинстве пишутся по требованиям EFI, с каталогом /EFI на корневом уровне и с загрузчиком EFI в этом каталоге...
- и именно этот EFI-загрузчик (на каких-то из Windows инсталляций) анализирует наличие HDD по стандартам EFI (т.е. с отдельным скрытым загрузочным разделом), и если находит такой HDD, то дальше грузится уже с него.
- а EFI-загрузчики в этих каталогах /EFI могут быть самые разнообразные.

Вот как-то так.

Отсюда следствия ... (или вопросы для изучения?):

1. CD/DVD инсталляционные диски, записанные до какого-то времени ранее, с предыдущими дистрибутивами (в том числе и Linux, Solaris, MINIX etc.) с переходом на загрузку EFI в новых материнских платах и ноутбуках - не могут быть загружены, не могут быть инсталлированы. Они предназначаются только для загрузки средствами BIOS.

2. А как ещё бороться с отказом загрузки с CD/DVD при прерванной, поломанной предыдущей инсталляции (как описывалось выше)? ... кроме физического снятия HDD.

3. Та же история, полагаю, с загрузкой будет не только с CD/DVD, но и с загрузкой образов с USB-флешек!
Ничего страшного ... но переполоху это в публичных обсуждениях наведёт... :lol:

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: BIOS & UEFI

Непрочитанное сообщение Olej » 14 янв 2013, 17:44

Olej писал(а): - а изменился (или меняется повсеместно) формат записи CD/DVD носителей;
По поводу старого формата вот старая (в данном случае это хорошо, что она старая) заметка: Создание загрузочных CD-ROM.
По стандарту El Torito, посредством BIOS, CDROM выглядит как обычный дисковод. Таким образом, вам достаточно где-либо в вашей файловой системе ISO поместить образ дискеты (а именно 1440k для 1.44 дисковода). В заголовках ISO вы помещаете указатель на этот образ. Тогда BIOS считывает этот образ с CD и создает видимость загрузки с дискеты. Например, это позволяет использовать загрузочную дискету с LILO без изменений.

Грубо говоря, первые 1.44 (или 2.88, если поддерживаются) мегабайт CD-ROM содержат образ поставляемой Вами дискеты. BIOS обходится с ним как с дискетой и загружается с него. (Вследствие этого, при загрузке с этого виртуального дисковода, Ваше настоящее устройство A: (/dev/fd0) не может быть доступно, но Вы можете попробовать /dev/fd1).
... ну и так далее - это любопытно почитать.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: BIOS & UEFI

Непрочитанное сообщение Olej » 14 янв 2013, 17:53

А теперь я беру стандартный (один из) образ Fedora 17 (почему Fedora? потому, что этот дистрибутив внедряет новшества опережая события - в остальных оно всё появится, но позже). Смотрим:

Код: Выделить всё

[olej@nvidia ISO-OS]$ sudo mount -o loop,iocharset=utf8 -t iso9660 ./RFRemix-17-i686-Live-GNOME.iso /mnt/iso1
mount: warning: /mnt/iso1 seems to be mounted read-only.
[olej@nvidia mnt]$ tree iso1
iso1
|-- EFI
|   `-- BOOT
|       |-- BOOT.conf
|       |-- BOOT.efi
|       |-- BOOTIA32.conf
|       |-- BOOTIA32.efi
|       |-- grub.conf
|       `-- splash.xpm.gz
|-- GPL
|-- isolinux
|   |-- boot.cat
|   |-- efiboot.img
|   |-- initrd0.img
|   |-- isolinux.bin
|   |-- isolinux.cfg
|   |-- macboot.img
|   |-- memtest
|   |-- vesamenu.c32
|   `-- vmlinuz0
`-- LiveOS
    |-- livecd-iso-to-disk
    |-- osmin.img
    `-- squashfs.img

4 directories, 19 files
Но ещё интереснее:

Код: Выделить всё

[olej@nvidia ISO-OS]$ sudo fdisk -l ./RFRemix-17-i686-Live-GNOME.iso 

WARNING: GPT (GUID Partition Table) detected on './RFRemix-17-i686-Live-GNOME.iso'! The util fdisk doesn't support GPT. Use GNU Parted.

Диск ./RFRemix-17-i686-Live-GNOME.iso: 811 МБ, 811597824 байт
255 heads, 63 sectors/track, 98 cylinders, всего 1585152 секторов
Units = секторы of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0acb7725

                    Устр-во Загр     Начало       Конец       Блоки   Id  Система
./RFRemix-17-i686-Live-GNOME.iso1   *           0     1585151      792576    0  Пустой
./RFRemix-17-i686-Live-GNOME.iso2             164        1755         796   ef  EFI (FAT-12/16/32)
./RFRemix-17-i686-Live-GNOME.iso3            1804        4507        1352    0  Пустой
fdisk запутался, но он видит там заголовки как MBR (резервной) так и GPT разметки диска!

Код: Выделить всё

[olej@nvidia ISO-OS]$ gdisk -l ./RFRemix-17-i686-Live-GNOME.iso 
GPT fdisk (gdisk) version 0.8.4
...
Warning! Main partition table overlaps the first partition by 48 blocks!
You will need to delete this partition or resize it in another utility.
Disk ./RFRemix-17-i686-Live-GNOME.iso: 1585152 sectors, 774.0 MiB
Logical sector size: 512 bytes
Disk identifier (GUID): 32D5E295-B53C-4EC8-AC08-8E565EC930E9
Partition table holds up to 128 entries
First usable sector is 48, last usable sector is 1585118
Partitions will be aligned on 4-sector boundaries
Total free space is 890 sectors (445.0 KiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   2             164            1755   796.0 KiB   0700  IOyrdApeAp
   3            1804            4507   1.3 MiB     AF00  IOyrdApeAp
gdisk тоже в полной растерянности ... но он и не предназначался для CD/DVD.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: BIOS & UEFI

Непрочитанное сообщение Olej » 14 янв 2013, 18:02

Olej писал(а):А теперь я беру стандартный (один из) образ Fedora 17 (почему Fedora? потому, что этот дистрибутив внедряет новшества опережая события - в остальных оно всё появится, но позже).
А теперь смотрю образ LiveCD тоже совсем не такого старого (это ~2010-2011г.) дистрибутива Ubuntu:

Код: Выделить всё

[olej@nvidia ISO-OS]$ sudo mount -o loop,iocharset=utf8 -t iso9660 ./ubuntu-10.04.3-desktop-i386.iso  /mnt/iso1
mount: warning: /mnt/iso1 seems to be mounted read-only.
[olej@nvidia iso1]$ ls -l /mnt/iso1
итого 1466
-r--r--r--. 1 root root     143 июля  20  2011 autorun.inf
dr-xr-xr-x. 2 root root    2048 июля  20  2011 casper
dr-xr-xr-x. 3 root root    2048 июля  20  2011 dists
dr-xr-xr-x. 2 root root    2048 июля  20  2011 install
dr-xr-xr-x. 2 root root   16384 июля  20  2011 isolinux
-r--r--r--. 1 root root    4533 июля  20  2011 md5sum.txt
dr-xr-xr-x. 2 root root    2048 июля  20  2011 pics
dr-xr-xr-x. 4 root root    2048 июля  20  2011 pool
dr-xr-xr-x. 2 root root    2048 июля  20  2011 preseed
-r--r--r--. 1 root root     227 июля  20  2011 README.diskdefines
lr-xr-xr-x. 1 root root       1 июля  20  2011 ubuntu -> .
-r--r--r--. 1 root root 1466815 июля  20  2011 wubi.exe
И картина здесь совершенно другая!
Нет здесь и в помине никаких /EFI.
И если CD Fedora 17 будет грузиться и BIOS и UEFI, то этот дистрибутив Ubuntu 10.4 будет грузиться только BIOS, и не загрузится (?) UEFI.

И такой образ по-старинке куда понятнее для fdisk:

Код: Выделить всё

[olej@nvidia ISO-OS]$ sudo fdisk -l ./ubuntu-10.04.3-desktop-i386.iso

Диск ./ubuntu-10.04.3-desktop-i386.iso: 721 МБ, 721127424 байт
255 heads, 63 sectors/track, 87 cylinders, всего 1408452 секторов
Units = секторы of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

На диске ./ubuntu-10.04.3-desktop-i386.iso отсутствует верная таблица разделов
Для него это такая здоровенная дискета! :lol:

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: BIOS & UEFI

Непрочитанное сообщение Olej » 14 янв 2013, 18:18

Olej писал(а):3. Та же история, полагаю, с загрузкой будет не только с CD/DVD, но и с загрузкой образов с USB-флешек!
Ничего страшного ... но переполоху это в публичных обсуждениях наведёт... :lol:
Теперь понятна разница в создании загрузочной USB-флешки разными способами:

- копированием .iso образа с помощью dd - при этом будут создаваться носители, загружаемые только BIOS, ... и этот способ должен кануть в историю...

- специальными построителями (UNetbootin, Live USB Creator etc.), см. загрузочный Linux на USB флешке - они то как-раз строят каталог /EFI с загрузчиками в нём. И это будет грузиться и с BIOS и с UEFI.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: BIOS & UEFI

Непрочитанное сообщение Olej » 15 янв 2013, 10:15

Интересно замечание в Раскройте весь потенциал дисков большой емкости с помощью GPT и Linux:
Поддержка на уровне загрузчика
Поддержка GPT реализована не во всех загрузчиках и зависит от типа микрокода компьютера. На компьютерах с BIOS таблица разделов GPT официально поддерживается только в загрузчике GRUB 2. Большинство современных дистрибутивов Linux используют Grand Unified Bootloader (GRUB) 2 в качестве загрузчика по умолчанию, тем не менее, некоторые дистрибутивы продолжают использовать старую версию GRUB – GRUB Legacy. Официально загрузчик GRUB Legacy не поддерживает GPT, однако доступны его исправленные версии, обладающие такой поддержкой. Еще более ранний загрузчик LILO не поддерживает GPT явно, но его методы дисковой адресации основаны на расположении секторов, поэтому на практике зачастую LILO работает с GPT.
Если вы используете GRUB 2 на компьютере под управлением BIOS, то не забудьте создать загрузочный раздел BIOS, содержащий код второй стадии загрузчика GRUB (этот раздел определяется установкой флага bios_grub в программе GNU Parted или указанием типа EF02 в программе gdisk). В некоторых конфигурациях загрузочный раздел BIOS может иметь небольшой размер в 32 КиБ, но иногда он должен быть немного больше. В соответствии с современными политиками создания разделов принято устанавливать размер в 1 МиБ.
Если ваш компьютер работает под управлением EFI, то любой загрузчик, поддерживающий EFI, будет работать с GPT; тем не менее, выбор загрузчика EFI в Linux – дело тонкое. К середине 2012 года работа некоторых загрузчиков оставалась ненадежной, либо зависела от специфики конфигурации компьютера. Мой личный опыт показал, что из всех загрузчиков самым надежным оказался загрузчик ядра Linux EFI stub loader (включен в ядро, начиная с версии 3.3.0), за ним следует загрузчик EFI LILO (ELILO), далее – сильно исправленная версия GRUB Legacy, используемая в Fedora, и, наконец, GRUB 2. Помимо загрузчика вам может потребоваться отдельный менеджер загрузки, обеспечивающий выбор операционной системы, в особенности, если вы настраиваете систему с двойной загрузкой и загружаете Linux с помощью EFI stub loader или ELILO. Обычно в качестве менеджера загрузки выбирают либо rEFIt, либо rEFInd (последний из них является более современной версией предыдущего, и я поддерживаю именно его). Ссылки на эти менеджеры загрузки вы найдете в разделе Ресурсы.
Для загрузки компьютера с интерфейсом EFI требуется наличие системного раздела EFI (EFI System Partition, ESP). Частным исключением являются компьютеры Mac, хотя они и поставляются с разделами ESP. Раздел ESP должен содержать файловую систему FAT32. Стандарт EFI не регламентирует размер этого раздела, и обычно все хорошо работает при его размере в 100-500 МиБ. Если вы используете загрузчик ядра EFI stub loader или загрузчик ELILO, то может потребоваться хранить ядро в разделе ESP, так что предпочтительнее создавать раздел ESP размером ближе к 500 МиБ.
Откуда понятно, что по состоянию на 2012г. никому ничего не понятно ;-)

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: BIOS & UEFI

Непрочитанное сообщение Olej » 19 янв 2013, 23:39

Olej писал(а): - "поломка" - после попытки (или аварийно закончившейся ... или даже нормально закончившейся) установки Windows 7 ...
- состоит в том, что при установленном в SETUP BIOS первичном устройстве загрузки на CD-ROM ...
Я попросил принести мне диск CD, который отказался быть загрузочным после того, как неудачная инсталляция Windows 7 создала EFI структуру разделов диска, со своим загрузочным разделом.

И теперь я в полной растерянности...

1. это какой-то левый, но загрузочный диск Windows XP...
2. с которого много раз делали инсталляцию...
3. который автоматом подмонтировался (/dev/sr0):

Код: Выделить всё

[olej@nvidia ~]$ mount | grep /dev/s
tmpfs on /dev/shm type tmpfs (rw,relatime,seclabel)
/dev/sda1 on / type ext4 (rw,relatime,seclabel,user_xattr,barrier=1,data=ordered)
/dev/sdb2 on /mnt/sd2 type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=cp437,iocharset=ascii,shortname=mixed,errors=remount-ro)
/dev/sdb5 on /mnt/VB type fuseblk (rw,relatime,user_id=0,group_id=0,allow_other,blksize=4096)
/dev/sdb1 on /mnt/sd1 type fuseblk (rw,relatime,user_id=0,group_id=0,allow_other,blksize=4096)
/dev/sda2 on /home type ext4 (rw,relatime,seclabel,user_xattr,barrier=1,data=ordered)
/dev/sr0 on /media/System_7 type iso9660 (ro,nosuid,nodev,relatime,uid=500,gid=500,iocharset=utf8,mode=0400,dmode=0500,uhelper=udisks)
4. нет на нём ничего похожего на /EFI :-o

Код: Выделить всё

[olej@nvidia ~]$ ls -l /media/System_7/
итого 408
dr-x------. 1 olej olej   2048 сент.  9  2004 Autorun
-r--------. 1 olej olej     44 янв.  26  2001 AUTORUN.INF
dr-x------. 1 olej olej 350208 сент.  9  2004 I386
dr-x------. 1 olej olej   2048 сент.  9  2004 MUI
-r--------. 1 olej olej  54784 марта  6  2001 RunMe.exe
-r--------. 1 olej olej   3638 дек.  19  2000 SHTURMAN.ICO
dr-x------. 1 olej olej   2048 сент.  9  2004 Soft
-r--------. 1 olej olej     10 авг.  23  2001 WIN51
-r--------. 1 olej olej     10 авг.  23  2001 WIN51IP
-r--------. 1 olej olej      2 авг.  29  2002 WIN51IP.SP1
-r--------. 1 olej olej      2 дек.  16  2003 win51ip.SP2
Здесь я уже ничего не понимаю...

cema
Писатель
Сообщения: 246
Зарегистрирован: 14 июн 2012, 06:01
Контактная информация:

Re: BIOS & UEFI

Непрочитанное сообщение cema » 20 янв 2013, 07:21

И что непонятно?

Ответить

Вернуться в «Железо для Linux»

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

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