LINUX.ORG.RU

Буквы дисков

 , , , ,


0

1

Точно не уверен, что линукс относится к теме, но всё-таки.
Итак, я думаю, что при загрузке FreeBSD все видели сообщения типа: «BIOS drive A: is disk0, BIOS drive B: is disk1, BIOS drive C: is disk2», а если нет Floppy-контроллера, то нумерация начинается с буквы 'C': «BIOS drive C: is disk0, BIOS drive D: is disk1» и так далее.
Откуда он берёт информацию о дисках, из биоса?
Вот DOS — очень простая система, сама инициализацией оборудования не занимается, это делает БИОС. В ДОСе к дискам так и обращаются — по их буквам.
Итак, кто же назначает эти буквы? Из-за FreeBSD я всегда был уверен, что БИОС, а сейчас меня надумали в этом разубедить.
Операционные системы семейства Windows не рассматриваем, ибо форум не о них. Да, и мне кажется, что венда (начиная с NT) переназначает буквы дисков, данные ей БИОСом. Если я не прав, поправьте меня.

★★★★★

В биосе нет никаких букв, там нумерация.

00h — первый дисковод. 01h — второй. (Возможно, наврал. Не помню точно.)

80h — первый (загрузочный) жесткий диск, 81h — второй, и так далее. (Вот это точно помню.)

geekless ★★
()
Последнее исправление: geekless (всего исправлений: 1)
Ответ на: комментарий от CYB3R

А где верхний предел нумерации дисков?

Ну обычно стояло по два контроллера IDE, два винта на каждом контроллере, т.е. как минимум 4 винта оно должно было уметь.

А вот если воткнуть дополнительных контроллеров в PCI, увидят ли их BIOSы или нет, хз.

geekless ★★
()
Ответ на: комментарий от Artificial_Thought

Операционные системы семейства Windows не рассматриваем

В NT ты вполне можешь диск примонтировать на любую букву или путь.

ЛОР есть ЛОР.

geekless ★★
()
Ответ на: комментарий от Artificial_Thought

Ну у дополнительных контроллеров вполне могут быть свои биосы с соответствующими костылями.

Действительно. Good point.

geekless ★★
()
Ответ на: комментарий от geekless

стояло по два контроллера IDE

Контроллер всё-таки один, но рулит он до четырёх дисков одновременно: Primary Master, Primary Slave, Secondary Master, Secondary Slave.
Есть PCI-плата контроллера дисков, нужно посмотреть, можно ли загрузиться с диска, подключённым с её помощью.
А с SATA/SCSI контроллерами как?

CYB3R ★★★★★
() автор топика

Разве буквы назначаются не разделам? И как по-вашему BIOS разделы поймет? Считал что назначение «букв диску» относится всегда к ОС.

chenger ★★
()
Ответ на: комментарий от chenger

Я думал, что буквы дискам назначали задолго до того, как partitioning изобрели.

CYB3R ★★★★★
() автор топика
Ответ на: комментарий от geekless

Пруфы?
На старых матерях действительно видел контроллеры, которые тянули только два диска. Но новые все тянут четыре.

CYB3R ★★★★★
() автор топика

Да, и мне кажется, что венда (начиная с NT) переназначает буквы дисков, данные ей БИОСом

В венде начиная с NT «буквы диска» привязываются к UUID-ам файловых систем (для NTFS и FAT), так что даже после пермены дисков местами буквы сохраняются

no-dashi ★★★★★
()
Ответ на: комментарий от geekless

В старый комп втыкал pci карточку для дисков sata, с них и грузился, так что, видимо, это не проблема.

unC0Rr ★★★★★
()
Ответ на: комментарий от chenger

Я думаю, что первый ответ самый правильный. А буквы дискам назначает операционная система. А: и В: просто полюбому дисководы. Это анахронизм еще с безвинтовых двухдискетных (5.25 дюйма) машин.
Насчет разделов - отдельная тема. Там «матрешка». В MBR может быть всего 4 записи, например 3 primary раздела и один secondary, который в свою очередь указывает на такую-же структуру из 4 возможных вариантов. Поэтому теоретически, количество разделов вовсе не ограничено буквами алфавита.

cadaber ★★
()
Ответ на: комментарий от cadaber

Хочу добавить, что в молодости моей встречались винты на 10-30 мегабайт (не гигабайт, а именно мегабайт) были разбиты на 5-10 разделов. С нынешней точки зрения конечно охренеть, но раньше такое считалось в порядке вещей. Типа, диск p: - петровича, диск m: - модеста павловича.

cadaber ★★
()
Ответ на: комментарий от cadaber

и один secondary, который в свою очередь указывает на такую-же структуру из 4 возможных вариантов

Нет, не 4. Технически, такая-же структура может хранить только два записи: 1 раздел и 1 следующий extended. Т.е. она организована как односвязный список, и этот список может содержать неограниченное число элементов.

geekless ★★
()
Ответ на: комментарий от cadaber

Винты под DOS-ом бились не на разделы, а на логические диски. Точнее DOS создавал один primary раздел C: и один расширенный раздел и внутри этого раздела создавал логические диски D:, E:, F: и т.д.

И ядро linux'а не сразу научилось понимать эти логические диски, видели только расширенный раздел целиком.

mky ★★★★★
()
Ответ на: комментарий от CYB3R

На старых материнках, когда царствовал MS-DOS контроллеров вобще не было, только слоты шины ISA, втыкай туда контроллер и радуйся, если заведётся. ЕМНИП, в настройках какого-то BIOS на материнке с i80286 диски фигурировали под именами C:, D: (а не master/slave). Но это было только в настройках BIOS, все BIOS-функции работы с дисками оперировали только номером диска (0x80, 0x81).

Вот, если интерестно http://en.wikipedia.org/wiki/Drive_letter_assignment там и история и то, как DOS назначает буквы логическим дискам.

mky ★★★★★
()
Ответ на: комментарий от geekless

Ну обычно стояло по два контроллера IDE, два винта на каждом контроллере, т.е. как минимум 4 винта оно должно было уметь.

Примари мастер - /dev/hda Примари слейв - /dev/hdb Секондари мастер - /dev/hdc Секондари слейв - /dev/hdd

Hemulo
()
Ответ на: комментарий от CYB3R

но сколько же всё-таки контроллеров?

facepalm.png

IDE-контроллер работает с двумя накопителями.

SATA-контроллер работает с одним накопителем.

geekless ★★
()
Ответ на: комментарий от CYB3R

Нагуглил сейчас ASUS P5WD2 Premium.

CYB3R ★★★★★
() автор топика
Ответ на: комментарий от Hemulo

может не совсем в тему, но вспомнилось...

Кстати, дисководов, фактически, может быть только два. Кажется так: /dev/fda и /dev/fdb

Хотя с дискетами под линуксом не работал, только в DOS.

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

Помню, что на старых компах по умолчанию стояли 2 дисковода: 5" - A 3" - B

И благодаря разводке на шине 3" оставался B даже если 5" снимался с компа. Это был плюс, т.к. абсолютные адреса файлов на дискетах не менялись в зависимости от подключения или отключения первого дисковода.

Hemulo
()
Ответ на: комментарий от CYB3R

Во времена i80286 стандартно выделили ресурсы под два IDE контроллера (прерывания 14,15). Правда если очень хотелось, можно было создавать экзотику путём втыкания нескольких контроллеров.

Потом Intel выпустил чипсеты 430 семейства (для Pentium), который содержал в себе два IDE-контроллера, производители материнок просто выводили ножки этого чипа на контакты IDE-разъёмов на материнки. Для дома это считалось достаточно, а для серьёзных вещей был SCSI.

Потом intel решил «убить» IDE и выпустил ICH7 с одним IDE-контроллером, у народа возникли проблемы с upgrade'ом и появились материнские платы, где распаян дополнительный IDE-контроллер, не интергрированный в чипсет. И так как обычно этот дополнительный чип содержал в себе два IDE-контроллера, появлялись материнки с тремя IDE-разёмами.

mky ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.