1

У меня есть GPT-диск с 20 разделами.

Они на /dev /sda

Как я могу смонтировать каждый из них одновременно? как я понимаю /dev /sda ограничен в /dev /sda15

это кажется странным - возможность создавать что-то, что не может быть смонтировано? я что-то пропустил?

2 ответа2

2

Это связано с тем, что поддержка Linux SATA основана на подсистеме жесткого диска SCSI. Устройства SCSI ограничены 15 разделами на устройство. Смотрите это описание из источников ядра Linux:

8 block SCSI disk devices (0-15)
          0 = /dev/sda      First SCSI disk whole disk
         16 = /dev/sdb      Second SCSI disk whole disk
         32 = /dev/sdc      Third SCSI disk whole disk
            ...
        240 = /dev/sdp      Sixteenth SCSI disk whole disk

        Partitions are handled in the same way as for IDE
        disks (see major number 3) except that the limit on
        partitions is 15.

Эта статья упоминает кое-что об этом, будучи соглашением SCSI:

Имена без завершающей цифры относятся ко всему диску, а имена с завершающей цифрой относятся к разделу всего этого диска. Как правило, диски SCSI имеют максимум 16 младших номеров, сопоставленных одному диску. Таким образом, для каждого целого диска существует максимум 15 разделов на диск, потому что одно младшее число используется для описания всего диска (например, /dev /sda), а остальные 15 вспомогательных номеров используются для ссылки на разделы для этого диска. диск (например, /dev /sda1, /dev /sda2 и т. д.). В следующем примере отображаются файлы устройств для всего диска /dev /sda, который имеет старший номер 8 и младший номер 0 и его 15 разделов.

Есть много статей, обсуждающих это в Интернете, если вам нужен более подробный ответ на вопрос « почему» .

Существует как минимум два возможных обхода этого ограничения.

Офсетный монтаж

Это достигается добавлением параметра offset= к команде mount . Значение, необходимое для опции, можно получить, умножив размер сектора и начальный байт раздела, который вы монтируете. Оба эти значения доступны в выходных данных fdisk -lu /dev/sdX . Пример:

fdisk -lu /dev/sda
Disk /dev/sda: [..]
[..]
Units = sectors of 1 * 512 = 512 bytes
[..]

   Device Boot      Start         End      Blocks   Id  System
[..]
/dev/sda18      232421376   254679039    11128832   83  Linux
/dev/sda19      200783872   232419327    15817728   83  Linux

# Mount /dev/sda18 to /media/somedir1
mount -o rw,offset=$((512*232421376)),defaults /dev/sda /media/somedir1

# Mount /dev/sda19 to /media/somedir2
mount -o rw,offset=$((512*200783872)),defaults /dev/sda /media/somedir2

Обратите внимание, что я поставил /dev/sda вместо /dev/sda18 и /dev/sda19 .

Используйте LVM

Другой вариант - использовать LVM. Однако это может повлечь за собой некоторые перестановки файлов и, следовательно, может занять много времени. Самое главное, что к LVM-томам может быть сложно получить доступ из других операционных систем, таких как OS X до Lion и Windows, поэтому он может не подходить для ваших нужд. Есть много постов о LVM здесь и в других местах, поэтому я не буду разбираться, как это настроить здесь.

0

Какой дистрибутив вы используете? Ограничение, которое вы описываете, присутствовало в очень старых ядрах, но большинство дистрибутивов уже давно обходили его с помощью конфигураций udev или других средств - честно говоря, я не помню подробностей того, как. Я только что проверил, и моя установка Ubuntu 14.04 может без проблем работать с USB-флешкой с 20 GPT-разделами:

$ ls -l /dev/sdd*
brw-rw---- 1 root disk   8, 48 Jul 23 19:16 /dev/sdd
brw-rw---- 1 root disk   8, 49 Jul 23 19:16 /dev/sdd1
brw-rw---- 1 root disk   8, 58 Jul 23 19:16 /dev/sdd10
brw-rw---- 1 root disk   8, 59 Jul 23 19:16 /dev/sdd11
brw-rw---- 1 root disk   8, 60 Jul 23 19:16 /dev/sdd12
brw-rw---- 1 root disk   8, 61 Jul 23 19:16 /dev/sdd13
brw-rw---- 1 root disk   8, 62 Jul 23 19:16 /dev/sdd14
brw-rw---- 1 root disk   8, 63 Jul 23 19:16 /dev/sdd15
brw-rw---- 1 root disk 259,  0 Jul 23 19:16 /dev/sdd16
brw-rw---- 1 root disk 259,  1 Jul 23 19:16 /dev/sdd17
brw-rw---- 1 root disk 259,  2 Jul 23 19:16 /dev/sdd18
brw-rw---- 1 root disk 259,  3 Jul 23 19:16 /dev/sdd19
brw-rw---- 1 root disk   8, 50 Jul 23 19:16 /dev/sdd2
brw-rw---- 1 root disk 259,  4 Jul 23 19:16 /dev/sdd20
brw-rw---- 1 root disk   8, 51 Jul 23 19:16 /dev/sdd3
brw-rw---- 1 root disk   8, 52 Jul 23 19:16 /dev/sdd4
brw-rw---- 1 root disk   8, 53 Jul 23 19:16 /dev/sdd5
brw-rw---- 1 root disk   8, 54 Jul 23 19:16 /dev/sdd6
brw-rw---- 1 root disk   8, 55 Jul 23 19:16 /dev/sdd7
brw-rw---- 1 root disk   8, 56 Jul 23 19:16 /dev/sdd8
brw-rw---- 1 root disk   8, 57 Jul 23 19:16 /dev/sdd9

Fedora 20 также отлично справляется, хотя и с разными номерами устройств. Обе ОС позволяют мне получить доступ к 20-му разделу. (Я не пытался получить доступ к каждому разделу, только самый высокий номер в качестве подтверждения концепции.)

Таким образом, если у вас возникли проблемы с этим, я рекомендую вам спросить на форуме, посвященном дистрибутиву, или хотя бы опубликовать название дистрибутива, который вы используете. Настройка вашего ядра и / или конфигурации udev может помочь, но я боюсь, что не помню подробностей того, как эта проблема была преодолена - как я уже говорил, исправление было "включено" так долго, что я забыл как это сделать вручную.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .