sd - драйвер
для
дисковых
накопителей
SCSI
#include <linux/hdreg.h> /* для HDIO_GETGEO */
#include <linux/fs.h> /* для BLKGETSIZE и BLKRRPART */
Эти
блочные
устройства
именуются
согласно
следующему
формату:
sdlp,
где
l —
буква,
обозначающая
физический
накопитель,
а
p — номер
раздела на
этом
физическом
накопителе.
Часто
номер
раздела
p
бывает
пропущен,
тогда
устройство
соответствует
полностью
всему
накопителю.
Файлам
устройств
дисков SCSI
присвоен
старший
номер 8, а
младшие
номера
устройств
рассчитываются
как (16 *
номер_накопителя)
+
номер_раздела,
где
номер_накопителя
— это номер
физического
накопителя
в порядке
обнаружения,
а
номер_раздела:
- •
- раздел 0 —
накопитель
полностью
- •
- partitions 1–4 are the DOS "primary"
partitions
- •
- partitions 5–8 are the DOS "extended" (or
"logical") partitions
Например,
устройство
/dev/sda будет
иметь
старший
номер 8,
младший 0 и
указывать
на первый
накопитель
SCSI в системе;
устройство
/dev/sdb3 будет
иметь
старший
номер 8,
младший 19 и
указывать
на третий
"первичный"
раздел DOS на
втором
накопителе
SCSI.
В
настоящий
момент
поддерживаются
только
блочные
устройства.
Устройства
для
прямого
доступа (raw)
пока не
реализованы.
Доступны
следующие
вызовы
ioctl:
- HDIO_GETGEO
- Возвращает
параметры
диска из BIOS в
виде
следующей
структуры:
struct hd_geometry {
unsigned char heads;
unsigned char sectors;
unsigned short cylinders;
unsigned long start;
};
- Указатель
на эту
структуру
передаётся
ioctl(2) в виде
параметра.
- Информация,
возвращаемая
в
параметре,
представляет
собой
геометрию
дискового
накопителя
как это
понимается
в DOS! Эта
геометрия
не
является
физической
геометрией
накопителя.
Однако, она
используется
при
составлении
таблицы
разделов
накопителя,
и
требуется
для
удобства
при работе
с fdisk(1), efdisk(1) и lilo(1).
Если
информация
о
геометрии
диска
недоступна,
все поля
структуры
равны
нулю.
- BLKGETSIZE
- Возвращает
размер
устройства
в секторах.
Параметр
ioctl(2) должен
быть
указателем
на long.
- BLKRRPART
- Заставляет
перечитать
таблицы
разделов
на диске SCSI.
Используется
без
параметра.
- Также
поддерживаются
операции SCSI
через ioctl(2).
Если ioctl(2)
требуется
параметр и
он равен NULL,
то ioctl(2)
завершается
ошибкой
EINVAL.
- /dev/sd[a-h]
- устройство
целиком
- /dev/sd[a-h][0-8]
- отдельные
блочные
разделы
Русский
перевод
этой
страницы
руководства
был сделан
Alexander Golubev <
[email protected]>, Azamat Hackimov
<
[email protected]>, Hotellook, Nikita
<
[email protected]>, Spiros Georgaras <
[email protected]>, Vladislav
<
[email protected]>, Yuri Kozlov <
[email protected]>
и Иван
Павлов <
[email protected]>
Этот
перевод
является
бесплатной
документацией;
прочитайте
Стандартную
общественную
лицензию GNU
версии 3
или более
позднюю,
чтобы
узнать об
условиях
авторского
права. Мы не
несем
НИКАКОЙ
ОТВЕТСТВЕННОСТИ.
Если вы
обнаружите
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
отправьте
электронное
письмо на
[email protected]