Войти

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


jah
28-02-2014, 01:39
Здравствуйте!

Пытаюсь разобраться с базовыми стандартами, касающимися разделов дисков, mbr, загрузочных разделов, загрузки ОС и т.п.

После некоторого множества не особо проясняющих статей, натолкнулся на статью википедии Раздел диска (http://ru.wikipedia.org/wiki/%D0%E0%E7%E4%E5%EB_%E4%E8%F1%EA%E0), которая начала проливать свет (как-то раньше она ускользала от меня, очевидно, потому, что я искал с конца "загрузка ОС").

Например, стало понятно, что
- в первый сектор диска пишется mbr, которая помимо всего прочего содержит таблицу разделов (информацию о типе раздела и его расположении его на диске),
- первые сектора основных (первичных) разделов считаются загрузочными и, очевидно, туда пишутся загрузчики ОС
... и т.п.
то есть положения, которые реально начинают прояснять ситуацию.

Интересует вопрос, существуют ли эти стандарты в явно оформленном виде (нечто наподобие RFC (ru.wikipedia.org/wiki/RFC)), то есть в виде документов, из которых сразу бы стало понятно, что вот они эти соглашения.

Спасибо!

Tau_0
28-02-2014, 03:16
то есть в виде документов, из которых сразу бы стало понятно, что вот они эти соглашения. »
А нет общих соглашений...
Точнее они есть для конкретной версии операционной системы. Хороший пример тому та же Windows 8 от Microsoft. --- Вот появилась загрузка UEFI c GPT разделов, и MBR отошла на задний план. Первыми UEFI внедрили в Apple Macintosh, а теперь идею подхватила Microsoft (а изначально придумали в Intel). Будут теперь на пару нам руки крутить…

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

yurfed
28-02-2014, 08:58
Так, до кучи, для начала. Главная загрузочная запись (http://ru.wikipedia.org/wiki/%D0%93%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BE%D1%87%D0%BD%D0 %B0%D1%8F_%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D1%8C)
Коды типов разделов
Код Тип раздела
00h Пустая запись (свободное место)
01h FAT-12
02h XENIX root
03h XENIX usr
04h FAT-16 до 32 Мбайт
05h Расширенный раздел
06h FAT-16 свыше 32 Мбайт
07h Windows NT NTFS (и некоторые другие — тип определяется по
содержимому загрузочной записи)
08h AIX
09h AIX загрузочный
0Ah OS/2 Boot менеджер
0Bh FAT-32
0Ch FAT-32 с использованием LBA
0Eh FAT-16 с использованием LBA (VFAT)
0Fh Расширенный раздел LBA (то же что и 05h, с использованием LBA)[4]
10h OPUS
11h Скрытый FAT-32
12h Compaq
14h Скрытый FAT-16 < 32МБ
16h Скрытый FAT-16
17h Скрытый раздел HPFS/NTFS
18h AST SmartSleep
1Bh Скрытый раздел FAT-32 (см. 0Bh)
1Ch Скрытый раздел FAT-32 с использованием LBA (см. 0Ch)
1Eh Скрытый раздел FAT-16 LBA (VFAT) (см. 06h)
24h NEC DOS
27h Скрытый NTFS
39h Plan 9
3Ch Partition Magic
40h Venix 80286
41h PPC PReP Boot
42h SFS
4Dh QNX4.x
4Eh QNX4.x 2-я часть
4Fh QNX4.x 3-я часть
50h OnTrack DM
51h OnTrack DM6 Aux
52h CP/M
53h OnTrack DM6 Aux
54h OnTrackDM6
55h EZ-Drive
56h Golden Bow
5Ch Priam Edisk
61h SpeedStor
62h GNU HURD
82h Linux swap
83h Linux
85h Linux extended(расширенный)
86h Раздел FAT-16 stripe-массива Windows NT
87h Раздел NTFS stripe-массива Windows NT
93h Amoeba
94h Amoeba BBT
A5h FreeBSD
A6h OpenBSD
A7h NeXTSTEP
A9h NetBSD
B6h Зеркальный master-раздел FAT-16 Windows NT
B7h Зеркальный master-раздел NTFS Windows NT
BEh Solaris загрузочный
BFh Solaris
С6h Зеркальный slave-раздел FAT-16 Windows NT
С7h Зеркальный slave-раздел NTFS Windows NT
DAh Данные — не файловая система
DEh Dell Utility
EEh GPT
FDh Автоопределение
FEh LANstep
FFh BBT

jah
28-02-2014, 22:15
Спасибо за ответы, направление телодвижений на ближайшее время мне понятны.

UEFI »
благо тут уже появляется слово "спецификация"

Так, до кучи, для начала. Главная загрузочная запись »
в этой статье пишут:
Утверждённого стандарта на структуру MBR не существует, однако, есть «сложившиеся традиции», которых придерживаются большинство MBR от разных производителей.

очевидно, большие усилия были приложены, чтобы систематизировать в эту статью приведённую там информацию

Игорь Лейко
28-02-2014, 22:53
Хороший пример тому та же Windows 8 от Microsoft. --- Вот появилась загрузка UEFI c GPT разделов »
Вообще-то загрузка с GPT появилась (у Майкрософт) в ХР 64-bit Edition в 2001 году. ;)

Пытаюсь разобраться с базовыми стандартами, касающимися разделов дисков, mbr »
Стандартов нету. Спецификации появились в середине 1980-х годов, были разработаны "Майкрософтом" и АйБиЭмом и полнотой и детализированностью никогда не отличались.

jah
28-02-2014, 23:38
Стандартов нету.»
да, я понял уже, что нужно собирать всё по крупицам

Спецификации появились в середине 1980-х годов, были разработаны "Майкрософтом" и АйБиЭмом и полнотой и детализированностью никогда не отличались. »
может кто знает, как на них выйти

jah
01-03-2014, 01:56
нашёл пару хороших статей, теперь дело лучше должно пойти :)
http://comp0.ru/bootmgr.html
http://www.ibm.com/developerworks/ru/library/l-linuxboot/

Игорь Лейко
02-03-2014, 01:34
может кто знает, как на них выйти »
Поройтесь в MSDN Library.
На линуксовых сайтах может быть (без дополнительных оговорок) информация по специфическим расширениям, реализованным только в линуксе.

jah
02-03-2014, 10:09
Поройтесь в MSDN Library. »
кое-что есть, хотя от используемой терминологии тут может стать дурно
http://support.microsoft.com/kb/69013/ru
В конце начальной загрузки ROM BIOS считывается и выполняется первый физический сектор гибкого или жесткого диска. Первый сектор жесткого диска называется основной загрузочной записью (иногда употребляют термины «таблица разделов» и «основной загрузочный блок»). В начале этого сектора жесткого диска содержится небольшая программа. Сведения о разделах (таблица разделов) расположены в конце сектора. Программа использует сведения о разделах для определения загрузочного раздела (как правило, это основной раздел DOS) и пытается загрузить из него операционную систему.

сначала подумал, может перевод страдает, да вроде нет
At the end of the ROM BIOS bootstrap routine, the BIOS reads and executes the first physical sector of the first floppy or hard disk on the system. This first sector of the hard disk is called the master boot record (or sometimes the partition table or master boot block). There is a small program at the beginning of this sector of the hard disk. The partition information, or partition table, is stored at the end of this sector. This program uses the partition information to determine which partition is bootable (usually the first primary DOS partition) and attempts to boot from it.

по их словам, mbr - это первый сектор, а не код в нём (или они правы?), а если они иногда ещё mbr таблицей разделов называют, то тогда вообще беда :cry:

Игорь Лейко
02-03-2014, 18:18
по их словам, mbr - это первый сектор, а не код в нём (или они правы?), »
биосом тоже практически всегда называют не только собственно BIOS, но все содержимое ПЗУ в целом. ;)

jah
02-03-2014, 18:28
биосом тоже практически всегда называют не только собственно BIOS, но все содержимое ПЗУ в целом. »
а системный блок процессором ;)

jah
02-03-2014, 19:42
http://blog.creativeitp.com/posts-and-articles/bios/analysing-the-master-boot-record-mbr-with-a-hex-editor-hex-workshop/




© OSzone.net 2001-2012