Я могу перерабатывать это без изменения ядра и с монтированием со смещением:
$ fdisk -l -u /dev/sda
Device Boot Start
...
/dev/sda16 123456783 ...
/dev/sda17 234567894 ...
$ mount -o ro,offset=$[512*123456783] /dev/sda /mount/sda16
$ mount -o ro,offset=$[512*234567894] /dev/sda /mount/sda17
Проблема возникает из-за перемещения SATA в подсистему SCSI. SCSI может иметь только 15 разделов:
http://publib.boulder.ibm.com/infocenter/dsichelp/ds6000ic/topic/com.ibm.storage.smric.help.doc/f2c_linuxdevnaming_2hsag8.html - именование устройств Linux
Как правило, диски SCSI имеют максимум 16 младших номеров, сопоставленных одному диску. Таким образом, для каждого целого диска существует максимум 15 разделов на диск, потому что одно младшее число используется для описания всего диска (например, /dev /sda), а остальные 15 вспомогательных номеров используются для ссылки на разделы для этого диска. диск (например, /dev /sda1, /dev /sda2 и т. д.).
Таким образом, нет возможности создавать специальные блочные устройства для 16-го и 17-го разделов с mknod
, потому что второстепенный 16 будет следующим диском, например:
# ls -l /dev/sda? /dev/sda?? /dev/sdb
brw-rw---- 1 root disk 8, 0 May 24 08:09 /dev/sda
brw-rw---- 1 root disk 8, 1 May 24 08:09 /dev/sda1
brw-rw---- 1 root disk 8, 2 May 24 08:09 /dev/sda2
...
brw-rw---- 1 root disk 8, 14 May 24 08:09 /dev/sda14
brw-rw---- 1 root disk 8, 15 May 24 08:09 /dev/sda15
brw-rw---- 1 root disk 8, 16 May 24 08:09 /dev/sdb
Изменение было сделано в версии ядра Linux около 2.6.20, в соответствии с темой http://forums.justlinux.com/showthread.php?149956-Howto-get-44-logical-partitions-out-of-a-SCSI- SATA-PATA-USB-диск - «Как извлечь 44 логических раздела из диска SCSI/SATA/PATA/USB»
Linux, использующий ядро 2.6.20 или более поздней версии, теперь вызывает все жесткие диски SCSI, Sata, Pata и USB по одному и тому же соглашению об именах, используя имена дисков sda, sdb, sdc, sdd, sde и т.д. В настоящее время стандартным является максимум 16 имен устройств для каждого диска. Для первого диска sda 16 устройств называются sda и от sda1 до sda15. Sda1, sda2, sda3 и sda4 зарезервированы для 4 основных разделов, даже если некоторые из них не используются, а остальные sda5 - sda15 - это 11 имен логических разделов.
Это было сделано "libata", которая реализует PATA/SATA поверх подсистемы SCSI:
http://kernelnewbies.org/Linux_2_6_19#head-cdcbaa9c1b476decdc064e0a75d23d1328b1ddce
Слияние Libata PATA (Parallel ATA) Под "Parallel ATA" мы подразумеваем все контроллеры и диски ATA/IDE, которые мы использовали за годы до SATA. Почти с самого начала одной из целей некоторых хакеров ядра было заменить драйверы IDE, доступные в drivers/ide (все в меню конфигурации «Драйверы устройств -> поддержка ATA/ATAPI/MFM/RLL»), на переопределение поверх libata (то есть: "слой SATA"). ... Это означает, что 2.6.19 может иметь два драйвера для вашего устройства на основе PATA: старый драйвер IDE в разделе «Драйверы устройств -> поддержка ATA/ATAPI/MFM/RLL» и альтернативный драйвер в разделе «Драйверы устройств -> Serial ATA (prod)» и Parallel ATA (экспериментальные) драйверы »(вместе с остальными драйверами SATA)
Проблема была известна еще в 2006 году:http://www.redhat.com/archives/rhl-list/2006-October/msg00218.html
Подсистема SCSI допускает только 15 (я думаю) разделов на диске. А со стандартными таблицами разделов в стиле MS-DOS это всегда включает все четыре основных раздела. Таким образом, один основной + одиннадцать логических разделов является пределом.
Поддержка либаты для дисков SATA использует подсистему SCSI и наследует те же ограничения.
Поддержка libata для IDE (= PATA) была объединена и должна быть доступна для 2.6.19. Это не будет набор драйверов по умолчанию , и вряд ли он станет стандартным во время выпуска Fedora Core, но, учитывая цели и инженеров Fedora, я не удивлюсь, если он будет включен в официальные ядра Fedora для выпуска FC7 , (Если нет, FC8. Мы, вероятно, говорим о следующем году или около того.)
Когда libata поддержка включена для параллельного IDE, то существующие разделы на IDE устройств выше / разработчика / hdx15 станет размонтированием.