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 está limitado em / dev / sda15

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


O Linux impõe limites no número total de qualquer tipo de partição em uma unidade, portanto, isso limita efetivamente o número de partições lógicas. Isso tem no máximo 15 partições em um disco SCSI e 63 no total em um disco IDE.
Botmaster

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. Vejo isto descrição das fontes do kernel 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:

Nomes sem um dígito final referem-se ao disco inteiro, enquanto nomes   com um dígito à direita, consulte uma partição desse disco inteiro. Por   convenção, os discos SCSI têm no máximo 16 números menores mapeados para um   único disco. Assim, para cada disco inteiro, há um máximo de 15   partições por disco porque um número menor é usado para descrever o   disco inteiro (por exemplo, / dev / sda), e os outros 15 números menores são   usado para se referir a partições para esse disco (por exemplo / dev / sda1,   / dev / sda2, etc). O exemplo a seguir exibe os arquivos do dispositivo para   o disco inteiro / dev / sda, que tem um número maior de 8 e um menor   número de 0 e suas 15 partições.

Existem muitos artigos discutindo isso na Web se você precisar de uma resposta mais detalhada porque parte da sua pergunta.

Há pelo menos duas soluções possíveis para essa limitação.

Montagem Offset

Isto é conseguido adicionando um offset= opção para o mount comando. 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 estes 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

Note que eu coloquei /dev/sda ao invés de /dev/sda18 e /dev/sda19.

Use o LVM

Outra opção é usar o LVM. No entanto, isso pode implicar algum 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 eu não estou entendendo como configurá-lo aqui.


Na verdade, SCSI (ou IDE / ATA) não tem nada a ver com partições. O SCSI não manipula partições, apenas dispositivos de disco. Dependendo da versão SCSI, o limite é 8 ou 16 dispositivos por barramento, um dos quais é o adaptador host SCSI - mas são dispositivos de disco inteiro ( /dev/sda, dev/sdb, e assim por diante). As partições são definidas em um nível mais alto (no sistema operacional ou, no caso da EFI, no firmware do computador); para SCSI, as partições são apenas padrões de dados enviados pelo barramento. O fato de o kernel do Linux ter limites no número de partições no código SCSI é um problema do kernel, não um problema SCSI.
Rod Smith

@ Smith Smith: citação necessária.
Larssend

Vejo Aqui para limites SCSI. Quanto às partições, veja o artigo da Wikipedia sobre partições e note que nenhuma menção é feita de SCSI, ATA ou IDE (exceto no título de uma referência). Observe também que existem vários tipos de tabelas de partição (MBR, GPT, BSD, etc.). Para se comportar como você sugere, o SCSI precisaria entender todos eles - até mesmo estruturas de dados mais recentes que o próprio SCSI. SCSI é um protocolo de nível mais baixo que as partições.
Rod Smith

@ Smith Smith, ambas as fontes credíveis que citei na minha resposta mencionada especificamente "partição", não "disco".
Larssend

Suas fontes se referem a Linux convenções para lidar com SCSI, não Limitações do SCSI por si só. Os dois são muito diferente. No nível de SCSI, um disco é uma fonte de dados brutos e não interpretados. As partições estão em um nível bem acima disso. FWIW, eu sou o autor das ferramentas de particionamento do fdisk da GPT, então eu entendo isso muito bem.
Rod Smith

0

Qual distribuição você está usando? O limite que você descreveu estava presente em kernels muito antigos, mas a maioria das distribuições já trabalhou nisso por meio 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, recomendo que você pergunte em um fórum específico da distribuição ou, pelo menos, poste o nome da distribuição que você 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 está "in" há tanto tempo que esqueci como fazê-lo manualmente.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.