como montar além de / dev / sda15 ao usar um disco GPT com muitas partições

1

Eu tenho um disco GPT com cerca de 20 partições.

Eles estão em / dev / sda

como posso montar cada um deles ao mesmo tempo? Pelo que entendi, o / dev / sda é limitado em / dev / sda15

isso parece estranho - ser capaz de criar algo que não pode ser montado? estou faltando alguma coisa?

    
por stuck 23.07.2015 / 05:58

2 respostas

2

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.

    
por 23.07.2015 / 07:17
0

Qual distribuição você está usando? O limite que você descreveu estava presente em kernels muito antigos, mas a maioria das distribuições há muito tempo trabalhava com ele através de configurações do udev ou outros meios - muito honestamente, não me lembro dos detalhes de como. Acabei de verificar, e minha instalação do Ubuntu 14.04 pode manipular uma unidade flash USB com 20 partições GPT sem problemas:

$ 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

O Fedora 20 também lida muito bem, embora com números de dispositivos diferentes. Ambos os sistemas operacionais permitem que eu acesse a 20ª partição. (Eu não tentei acessar todas as partições, apenas a mais numerada como prova de conceito).

Assim, se tiver problemas com isso, recomendamos que você pergunte em um fórum específico da distribuição ou, pelo menos, poste o nome da distribuição que está usando. Ajustar o seu kernel e / ou a configuração do udev pode ajudar, mas não me lembro dos detalhes de como esse problema foi superado - como eu disse, a correção tem sido "in" por tanto tempo que eu esqueci como fazer isso manualmente.

    
por 24.07.2015 / 01:26