s3dworld писал(а):
Я тут подумал, а зачем мне CD-диск?! Разве у меня будет такая огромная система?! Думаю что "Нет"! Поэтому решил всё таки вернуться к дискетам.
Дискеты устарели. CD/DVD - единственный вид современных сменных носителей, поддержку которых можно реализовать в приемлемые сроки. К тому же именно на CD/DVD обычно распространяются дистрибутивы.
s3dworld писал(а):
1. Можно ли через BIOS грузить дискеты в режиме LBA (ну чтобы он сам преобразовывал цилиндры-головки-сектора в линейный адрес сектора)? Думаю что нельзя, но мало ли.
Подпрограмму пересчета написать элементарно. Ни одна современная ФС не размечается на уровне CHS, т.е. пересчет CHS-LBA и обратно не зависит от ФС, хотя мог бы.
s3dworld писал(а):
2. Так как дискеты бывают с разным количеством головок (1 или 2), с разным количеством цилиндров на головке и с разным количеством секторов в цилиндре, то получается полная не разбериха. Я даже не понимаю как тогда правильно эмуляторы работают, когда я им подсовываю не дискету, а образ дискеты, где нет ничего, чтобы указывало на количество головок, цилиндров и секторов. Как же тогда всё это работает?
Можешь поддерживать не все форматы. Для начала 2х80х18 будет достаточно. В эмуляторах формат дискеты обычно указывается явно (в конфиг. файлах). В боксе например так: floppya:
1_44="floppy.bin", status=inserted
s3dworld писал(а):
3. Возможно стоит написать программу под Windows (31 числа мне принесут floppy-дисковод и пару дискет), которая бы определяла сколько головок на дискете, сколько цилиндров на каждой головке и сколько секторов на каждом цилиндре каждой головки. Форматировала бы дискету в мою файловую систему и в специальные поля вносила бы информацию о количестве головок, количестве цилиндров на головках и секторов на головке. Может так стоит делать?
В FAT12 в бутсекторе есть поля для хранения кол-ва головок и кол-ва секторов на дорожке.
s3dworld писал(а):
4. Если первый сектор дискеты (головка 0, цилиндр 0, сектор 1) повреждён, то такая дискета считается уже не пригодной как загрузочной или же загрузчик будет в этом случае грузить следующий сектор и так до тех пор пока не найдёт без ошибок?
А сам как думаешь?
s3dworld писал(а):
5. Если действительно переменной количестве секторов на цилиндре и цилиндров на головке, так же как и количество головок, то тогда не возможно же будет перевести всё это в LBA, который бы значит номер сектора последовательно от начала до конца?
Я просто сейчас описываю файловую систему свою, которая сохраняет абсолютный номер сектора. Может быть это я зря, раз тут от дискеты к дискете переменчивое количество головок, цилиндров и секторов? Может мне нужно это дело сохранять в виде головка-цилиндр-сектор?
Не нужно! Обращение посредством CHS - это самый низкий уровень. Повторяю, пересчет CHS-LBA и наоборот выполняется элементарно. Достаточно знать значения SPT и Heads.