BIOS & UEFI
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
BIOS & UEFI
Пока ещё загрузка большинства компьютеров (кроме самых новых) идёт через 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 разобраться бы в этих деталях любопытно.
И вот в предверие перехода к 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 писал(а):Это не мистика...
И у меня есть соображения (догадки) как это происходит.
Проблема с загрузчиком GRUB
Установка Linux
Здравствуй UEFI!
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: BIOS & UEFI
А поскольку чудес в природе не должно быть (или они, по крайней мере, должны происходить исключительно редко), то я так предполагаю: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-флешек!
Ничего страшного ... но переполоху это в публичных обсуждениях наведёт...
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: BIOS & UEFI
По поводу старого формата вот старая (в данном случае это хорошо, что она старая) заметка: Создание загрузочных CD-ROM.Olej писал(а): - а изменился (или меняется повсеместно) формат записи CD/DVD носителей;
... ну и так далее - это любопытно почитать.По стандарту 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
А теперь я беру стандартный (один из) образ Fedora 17 (почему Fedora? потому, что этот дистрибутив внедряет новшества опережая события - в остальных оно всё появится, но позже). Смотрим:
Но ещё интереснее:
fdisk запутался, но он видит там заголовки как MBR (резервной) так и GPT разметки диска!
gdisk тоже в полной растерянности ... но он и не предназначался для CD/DVD.
Код: Выделить всё
[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 Пустой
Код: Выделить всё
[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
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: BIOS & UEFI
А теперь смотрю образ LiveCD тоже совсем не такого старого (это ~2010-2011г.) дистрибутива Ubuntu:Olej писал(а):А теперь я беру стандартный (один из) образ Fedora 17 (почему Fedora? потому, что этот дистрибутив внедряет новшества опережая события - в остальных оно всё появится, но позже).
Код: Выделить всё
[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 отсутствует верная таблица разделов
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: BIOS & UEFI
Теперь понятна разница в создании загрузочной USB-флешки разными способами:Olej писал(а):3. Та же история, полагаю, с загрузкой будет не только с CD/DVD, но и с загрузкой образов с USB-флешек!
Ничего страшного ... но переполоху это в публичных обсуждениях наведёт...
- копированием .iso образа с помощью dd - при этом будут создаваться носители, загружаемые только BIOS, ... и этот способ должен кануть в историю...
- специальными построителями (UNetbootin, Live USB Creator etc.), см. загрузочный Linux на USB флешке - они то как-раз строят каталог /EFI с загрузчиками в нём. И это будет грузиться и с BIOS и с UEFI.
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: BIOS & UEFI
Интересно замечание в Раскройте весь потенциал дисков большой емкости с помощью GPT и Linux:
Откуда понятно, что по состоянию на 2012г. никому ничего не понятноПоддержка на уровне загрузчика
Поддержка 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 МиБ.
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: BIOS & UEFI
Я попросил принести мне диск CD, который отказался быть загрузочным после того, как неудачная инсталляция Windows 7 создала EFI структуру разделов диска, со своим загрузочным разделом.Olej писал(а): - "поломка" - после попытки (или аварийно закончившейся ... или даже нормально закончившейся) установки Windows 7 ...
- состоит в том, что при установленном в SETUP BIOS первичном устройстве загрузки на CD-ROM ...
И теперь я в полной растерянности...
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)
Код: Выделить всё
[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
Re: BIOS & UEFI
И что непонятно?
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей