Diferenças entre / dev / sda e / dev / sda1

17

Eu sei que / dev / sda é o dispositivo bruto e que / dev / sda1 é a partição ou dispositivo virtual.

Mas estou um pouco confuso sobre o motivo pelo qual o sda # aparece apenas algumas vezes ou apenas em certos sistemas. O que faz com que isso ocorra? Talvez os momentos em que as unidades sda # não apareçam sejam quando não são particionados? Ou talvez não seja o mesmo no hardware?

E por que posso montar os dois? (às vezes) A ​​partição não deveria ser a montável?

Quaisquer recursos ou cores que você puder fornecer serão muito apreciados. Agradeço antecipadamente.

chamariz
fonte
1
"E por que eu posso montar os dois?" [citação necessário]
Ignacio Vazquez-Abrams
1
@ IgnacioVazquez-Abrams: Eu realmente não tenho uma citação. Montei os dois em uma caixa Debian e pude escrever e ler para ambos. Não sei porque. Não é realmente um cara de hardware ou administrador de sistemas, e é por isso que eu estava pedindo esclarecimentos. Mais uma vez obrigado a todos por ajudar!
20911 decoy

Respostas:

19

Em um sistema moderno, um dispositivo de partição aparecerá apenas se a partição realmente existir.

Em um disco com uma tabela de partição MBR, os números de partição 1 a 4 correspondem aos quatro slots na tabela de partição, denominados partições "primárias". Eles não precisam ser preenchidos sequencialmente; portanto, é possível, por exemplo, ter um sda2, mas não sda1. Os números de partição 5 e superiores correspondem a "unidades lógicas" em uma partição estendida e esses são sempre numerados sequencialmente, portanto, você não pode ter um sda6 sem ter um sda5 também.

Em um disco com uma tabela de partição GPT, pode haver muito mais partições (geralmente até 128) e todas são "primárias". Então você pode ter um disco cuja única partição é sda9, por exemplo.

Se o disco não tiver tabela de partição, ele não terá dispositivos de partição, é claro.

Os sistemas mais antigos - aqueles que usam um static / dev em vez de um gerenciado pelo udev - normalmente têm nós de dispositivo para todos os números de partição possíveis, independentemente de as partições realmente existirem. (É claro que tentar abrir o arquivo do dispositivo para uma partição inexistente.)


É possível abrir mão do particionamento e colocar um sistema de arquivos diretamente em um disco. Quando você monta um dispositivo de bloco, o driver do sistema de arquivos normalmente procura um superbloco em um deslocamento predeterminado desde o início do dispositivo e, como o início de uma partição não é o início do próprio disco, o superbloco para um sistema de arquivos em uma partição está localizado em um local diferente do disco e o superbloco de um sistema de arquivos criado no dispositivo "disco inteiro".

Portanto, se o disco costumava ter apenas um sistema de arquivos e foi particionado e um sistema de arquivos foi criado em uma partição, o superbloco antigo ainda pode estar lá, por exemplo, na pequena lacuna antes do início da primeira partição. Portanto, o disco ainda parece ter um sistema de arquivos no dispositivo de disco bruto e no dispositivo de partição, porque o que você tentar montar, quando o driver do sistema de arquivos procurar pelo superbloco, ele encontrará um.

Na verdade, não é seguro montar e usar os dois sistemas de arquivos, pois eles se sobrepõem no disco. Um pode ter dados importantes da contabilidade no que o outro pensa ser espaço livre. É por isso que é uma boa ideia zerar o início de um dispositivo de bloco, remover quaisquer superblocos indesejados, quando você deseja alterar um disco bruto para um particionado ou vice-versa, ou alterar o tipo de sistema de arquivos usado em uma partição, etc. .

Wyzard
fonte
6

Até onde eu sei, quando o kernel detecta um novo dispositivo de bloco em um barramento scsi-like (incluindo sata), além de adicionar um nó /devpara todo o próprio disco, por exemplo, /dev/sdaele tenta ver se há uma tabela de partição . Se houver partições legíveis, ele criará os nós de partição numerados, dependendo de serem partições físicas ou lógicas (acredito que as partições lógicas iniciam em # 5).

Se você vir um nó de disco, mas sem nós de partição, isso significa que não houve nenhuma partição detectada. Não conheço nenhuma instância em que você possa montar o dispositivo físico, pois isso implica que existe um sistema de arquivos gravado diretamente no dispositivo físico sem nenhuma tabela de partição. Pode ser que, no caso em que haja apenas uma única paritição, mountinterprete um mount /dev/sdacomando como significado /dev/sda1, mas nunca testei isso.

crescer
fonte
2
Você pode ter um sistema de arquivos diretamente no próprio disco, sem uma tabela de partição. (Um dispositivo removível configurado maneira que é por vezes referido como um "superfloppy", uma vez que tipicamente não disquetes foram particionadas.)
wyzard
Ponto excelente. Eu tinha pouca memória de colocar uma unidade USB em um laptop e poder montar, /dev/sdcmas não tinha certeza se estava inventando isso.
growse
3

/ dev / sda - dispositivo bruto

/ dev / sda1 - dispositivo 'virtual', como uma partição.

Uma diferença interessante é que, se um dispositivo tiver partições (com dados MBR ou similares), você não poderá ler dados MBR de nenhum dos dispositivos virtuais, pois os dados MBR residem fora das partições de um dispositivo. O MBR reside no primeiro setor do dispositivo (CHS: 0 0 1). Há uma boa prática para criar a primeira partição em 1MiB após o início de um dispositivo.

Para ler os dados do MBR, você deve usar o dispositivo bruto (/ dev / sda), ou seja:

dd if=/dev/sda of=mbr.bin bs=512 count=1
colemik
fonte
0

Ah, tabelas de partição e nomes de dispositivos. Prepare-se para se confundir com eles.

Possui um servidor HP com seu controlador Compaq RAID? Não / dev / sda, diga olá para / dev / ccsis.

Tem um computador desktop antigo com uma interface IDE antiga? Não / dev / sda, diga olá para / dev / hda.

Tem um servidor moderno que diz / dev / sda, mas após a instalação você quase não consegue vê-lo? Diga olá ao LVM, a instalação do seu sistema operacional transformou seu / dev / sda como volume físico do LVM, criou um grupo de volumes dentro dele e um volume lógico dentro dele.

Então ... se você não vir nada como / dev / sda1, poderá ter LVM ou similar em uso, o que criou suas próprias "partições".

Isso responde a sua pergunta?

Janne Pikkarainen
fonte