Isso se deve ao fato de o suporte SATA do Linux ser baseado em seu subsistema de disco rígido SCSI. Dispositivos SCSI são limitados a 15 partições por dispositivo. Veja esta descrição das fontes do Kernel do 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.
Este artigo menciona algo sobre isso ser uma convenção SCSI:
Names without a trailing digit refer to the whole disk, while names with a trailing digit refer to a partition of that whole disk. By convention, SCSI disks have a maximum of 16 minor numbers mapped to a single disk. Thus, for each whole disk, there is a maximum of 15 partitions per disk because one minor number is used to describe the entire disk (for example /dev/sda), and the other 15 minor numbers are used to refer to partitions for that disk (for example /dev/sda1, /dev/sda2, etc). The following example displays the device files for the whole disk /dev/sda, which has a major number of 8 and a minor number of 0, and its 15 partitions.
Existem muitos artigos discutindo isso na Web se você precisar de uma resposta mais aprofundada para a parte por que da sua pergunta.
Existem pelo menos duas soluções possíveis para essa limitação.
Montagem Offset
Isso é obtido adicionando uma opção offset=
ao comando mount
. O valor necessário para a opção pode ser obtido multiplicando o tamanho do setor e o byte inicial da partição que você está montando. Ambos os valores estão disponíveis na saída de fdisk -lu /dev/sdX
. Exemplo:
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
Observe que eu coloquei /dev/sda
em vez de /dev/sda18
e /dev/sda19
.
Use o LVM
Outra opção é usar o LVM. No entanto, isso pode implicar um embaralhamento de arquivos e, portanto, pode ser demorado. Mais importante, os volumes LVM podem ser difíceis de acessar de outros sistemas operacionais, como o OS X, antes do Lion e do Windows, portanto, pode não ser adequado às suas necessidades. Há muitos posts sobre o LVM aqui e em outros lugares, então não estou entendendo como configurá-lo aqui.