FD(4)

ИМЯ
fd - устройство для работы с дисководом

НАСТРОЙКА
Дисководы гибких дисков — это блочные устройства со старшим номером 2. Обычно их владельцем является root.floppy (т.е. пользователь root, группа floppy), а права доступа к ним — 0660 (доступно членам группы) или 0666 (доступно всем). Младшим номером определяется тип устройства, номер устройства и номер контроллера. Для каждого типа устройства, то есть комбинации объёма и количества дорожек, существует базовый младший номер. К этому базовому номеру прибавьте номер устройства в пределах его контроллера и ещё 128, если дисковод подключен к вторичному контроллеру. В нижеследующих таблицах n означает номер дисковода.

Предупреждение: Если вы используете формат дискет с большим числом дорожек, чем поддерживает ваш дисковод, вы можете вызвать механическое повреждение. Однократная попытка поработать с числом дорожек больше обычных 40/80, не должна его повредить, но нет гарантии, что этого не произойдет. Если вы не уверены, не создавайте устройства для таких форматов, чтобы предотвратить их использование.

Файлы устройств, не зависящие от дисковода, которые автоматически определяют формат носителя и ёмкость диска:
Имя | Младший №
fdn | 0

Файлы устройств с носителями 5.25 дюймов с двойной плотностью:
Имя | Ёмк. | Цил. | Сект. | Головок | Младший №
fdnd360 | 360K | 40 | 9 | 2 | 4

Файлы устройств с носителями 5.25 дюйма и повышенной плотностью:
Имя | Ёмк. | Цил. | Сект. | Головок | Младший №
fdnh360 | 360K | 40 | 9 | 2 | 20
fdnh410 | 410K | 41 | 10 | 2 | 48
fdnh420 | 420K | 42 | 10 | 2 | 64
fdnh720 | 720K | 80 | 9 | 2 | 24
fdnh880 | 880K | 80 | 11 | 2 | 80
fdnh1200 | 1200K | 80 | 15 | 2 | 8
fdnh1440 | 1440K | 80 | 18 | 2 | 40
fdnh1476 | 1476K | 82 | 18 | 2 | 56
fdnh1494 | 1494K | 83 | 18 | 2 | 72
fdnh1600 | 1600K | 80 | 20 | 2 | 92

Файлы устройств с носителями 3.5 дюйма и двойной плотностью:
Имя | Ёмк. | Цил. | Сект. | Головок | Младший №
fdnu360 | 360K | 80 | 9 | 1 | 12
fdnu720 | 720K | 80 | 9 | 2 | 16
fdnu800 | 800K | 80 | 10 | 2 | 120
fdnu1040 | 1040K | 80 | 13 | 2 | 84
fdnu1120 | 1120K | 80 | 14 | 2 | 88

Файлы устройств с носителями 3.5 дюйма и повышенной плотностью:
Имя | Ёмк. | Цил. | Сект. | Головок | Младший №
fdnu360 | 360K | 40 | 9 | 2 | 12
fdnu720 | 720K | 80 | 9 | 2 | 16
fdnu820 | 820K | 82 | 10 | 2 | 52
fdnu830 | 830K | 83 | 10 | 2 | 68
fdnu1440 | 1440K | 80 | 18 | 2 | 28
fdnu1600 | 1600K | 80 | 20 | 2 | 124
fdnu1680 | 1680K | 80 | 21 | 2 | 44
fdnu1722 | 1722K | 82 | 21 | 2 | 60
fdnu1743 | 1743K | 83 | 21 | 2 | 76
fdnu1760 | 1760K | 80 | 22 | 2 | 96
fdnu1840 | 1840K | 80 | 23 | 2 | 116
fdnu1920 | 1920K | 80 | 24 | 2 | 100

Файлы устройств с носителями 3.5 дюйма и сверх плотностью:
Имя | Ёмк. | Цил. | Сект. | Головок | Младший №
fdnu2880 | 2880K | 80 | 36 | 2 | 32
fdnCompaQ | 2880K | 80 | 36 | 2 | 36
fdnu3200 | 3200K | 80 | 40 | 2 | 104
fdnu3520 | 3520K | 80 | 44 | 2 | 108
fdnu3840 | 3840K | 80 | 48 | 2 | 112

ОПИСАНИЕ
Специальные файлы fd обеспечивают доступ к дисководам в режиме без обработки (raw mode). Устройства fd поддерживают следующие вызовы ioctl(2):

FDCLRPRM
    Очищает информацию о носителе в дисководе (геометрию диска в дисководе).

FDSETPRM
    Устанавливает информацию о носителе в дисководе. Информация о носителе потеряется, когда носитель будет сменён.

FDDEFPRM
    Устанавливает информацию о носителе в дисководе (геометрию диска в дисководе). Информация о носителе не будет потеряна, когда носитель будет сменён. При этом автоопределение носителя будет выключено. Чтобы снова его включить, выполните FDCLRPRM.

FDGETDRVTYP
    Возвращает тип дисковода (параметр имени). Для форматов, работающих на нескольких типах дисководов, FDGETDRVTYP возвращает имя, соответствующее самому старому типу дисковода, который поддерживает данный формат.

FDFLUSH
    Объявляет недействительными данные буферного кэша указанного привода.

FDSETMAXERRS
    Устанавливает пороговые значения для сообщения об ошибках, остановки действий, перекалибровки, сброса в начальное состояние и посекторного чтения.

FDSETMAXERRS
    Возвращает текущие пороговые значения для ошибок.

FDGETDRVTYP
    Возвращает внутреннее имя дисковода.

FDWERRORCLR
    Очищает статистику ошибок записи.

FDWERRORGET
    Читает статистику ошибок записи. Она включает общее число ошибок записи, расположение и диск, на котором произошла первая ошибка записи, и расположение и диск, на котором произошла последняя ошибка записи. Диски обозначаются генерирующимся числом, которое увеличивается на единицу при (почти) каждой смене диска.

FDTWADDLE
    Выключает на несколько микросекунд мотор привода. Это может быть необходимо для получения доступа к диску, чьи сектора располагаются слишком близко друг к другу.

FDSETDRVPRM
    Устанавливает различные параметры дисковода.

FDGETDRVPRM
    Возвращает различные параметры.

FDGETDRVSTAT
    Возвращает кэшированное состояние дисковода (диск сменён, защищён от записи и т. д.)

FDPOLLDRVSTAT
    Обращается к дисководу и возвращает его состояние.

FDGETFDCSTAT
    Возвращает состояние контроллера дисководов.

FDRESET
    Сбрасывает в начальное состояние контроллер дисководов при определённых условиях.

FDRAWCMD
    Посылает команду в необработанном виде (raw command) контроллеру дисководов.

За более точной информацией обратитесь также к файлам <linux/fd.h> и <linux/fdreg.h>, а также к справочной странице floppycontrol(1).

ФАЙЛЫ
/dev/fd*

ЗАМЕЧАНИЯ
Разные форматы позволяют читать и записывать многие типы дисков. Однако, если дискета отформатирована со слишком маленьким межсекторным промежутком, производительность может снизиться вплоть до того, что для доступа к дорожке может понадобиться несколько секунд. Во избежание этого, используйте перемежающиеся (interleaved) форматы. Невозможно прочитать дискеты, отформатированные с использованием GCR (групповая запись кодов), которые используются компьютерами Apple II и Macintosh (диски 800k). Чтение аппаратно размеченных на секторы дискет (с отверстием на каждый сектор и слегка повернутым индексным отверстием) не поддерживается. Такими были старые 8-дюймовые дискеты.

СМОТРИТЕ ТАКЖЕ
chown(1), floppycontrol(1), getfdprm(1), mknod(1), superformat(1), mount(8), setfdprm(8)