Differenze tra / dev / sda e / dev / sda1


17

So che / dev / sda è il dispositivo raw e che / dev / sda1 è la partizione o il dispositivo virtuale.

Ma sono un po 'confuso sul perché lo sda # si presenti solo qualche volta, o solo su alcuni sistemi. Cosa causa questo? Forse i momenti in cui le unità sda # non compaiono è quando non è partizionato? O forse non è lo stesso su tutto l'hardware?

E perché posso montare entrambi? (a volte) La partizione non dovrebbe essere quella montabile?

Qualsiasi risorsa o colore che puoi dare sarebbe molto apprezzato. Grazie in anticipo.


1
"E perché posso montare entrambi?" [citazione necessaria]
Ignacio Vazquez-Abrams

1
@ IgnacioVazquez-Abrams: non ho davvero una citazione. Ho montato entrambi su un box Debian e ho potuto scrivere e leggere su entrambi. Non so perché. Non proprio un ragazzo hardware o un amministratore di sistema, ecco perché stavo chiedendo chiarimenti. Grazie ancora a tutti per l'aiuto!
esca

Risposte:


19

Su un sistema moderno, un dispositivo di partizione apparirà solo se la partizione esiste effettivamente.

Su un disco con una tabella delle partizioni MBR, i numeri di partizione da 1 a 4 corrispondono ai quattro slot nella tabella delle partizioni, chiamati partizioni "primarie". Non devono essere riempiti in sequenza, quindi è possibile, ad esempio, avere un sda2 ma nessun sda1. I numeri di partizione 5 e superiori corrispondono a "unità logiche" in una partizione estesa, e questi sono sempre numerati in sequenza, quindi non è possibile avere un sda6 senza avere anche un sda5.

Su un disco con una tabella delle partizioni GPT, possono esserci molte più partizioni (in genere fino a 128) e tutte sono "primarie". Quindi potresti avere un disco la cui unica partizione è sda9, per esempio.

Se il disco non ha una tabella delle partizioni, ovviamente non avrà dispositivi di partizione.

I sistemi meno recenti - quelli che usano un static / dev piuttosto che uno gestito da udev - avranno tipicamente nodi di dispositivo per tutti i possibili numeri di partizione, indipendentemente dal fatto che le partizioni esistano effettivamente. (Il tentativo di aprire il file del dispositivo per una partizione inesistente non riuscirà, ovviamente.)


È possibile rinunciare al partizionamento e mettere un filesystem direttamente su un disco. Quando si monta un dispositivo a blocchi, il driver del file system in genere cerca un superblocco con un offset predeterminato dall'inizio del dispositivo e poiché l'inizio di una partizione non è l'inizio del disco stesso, il superblocco per un file system in una partizione si trova in una posizione diversa sul disco rispetto al superblocco per un filesystem creato sul dispositivo "intero disco".

Quindi, se il disco aveva solo un filesystem, e quindi era partizionato e un filesystem era creato in una partizione, il vecchio superblocco potrebbe essere ancora lì, ad esempio nel piccolo spazio prima dell'inizio della prima partizione. Quindi il disco sembra avere ancora un filesystem sia sul dispositivo a disco grezzo che sul dispositivo di partizione, perché qualunque cosa si tenta di montare, quando il driver del filesystem cerca il superblocco ne troverà uno.

In realtà non è sicuro montare e utilizzare entrambi i filesystem, poiché si sovrappongono sul disco. Uno può avere importanti dati contabili in quello che l'altro pensa sia spazio libero. Ecco perché è una buona idea azzerare l'inizio di un dispositivo a blocchi, rimuovere qualsiasi superblocco indesiderato, quando si desidera cambiare un disco grezzo in uno partizionato, o viceversa, o cambiare il tipo di filesystem usato su una partizione, ecc. .


6

Per quanto ne so, quando il kernel rileva un nuovo dispositivo a blocchi su un bus simile a scsi (incl. Sata), oltre ad aggiungere un nodo /devper l'intero disco stesso, ad esempio /dev/sdatenterà di vedere se c'è una tabella delle partizioni . Se ci sono partizioni leggibili, creerà quindi i nodi di partizione numerati a seconda che siano partizioni fisiche o logiche (credo che le partizioni logiche inizino dal numero 5).

Se vedi un nodo del disco ma senza nodi di partizione, ciò significherebbe che non sono state rilevate partizioni. Non sono a conoscenza di alcuna istanza in cui è possibile montare il dispositivo fisico, poiché ciò implicherebbe che esiste un filesystem scritto direttamente sul dispositivo fisico senza alcuna tabella delle partizioni. Potrebbe essere che nel caso in cui ci sia una sola paritizione, mountinterpreterà un mount /dev/sdacomando come significato /dev/sda1, ma non l'ho mai provato.


2
È possibile avere un file system direttamente sul disco stesso, senza una tabella delle partizioni. (Un dispositivo rimovibile configurato in questo modo viene talvolta definito "superfloppy", poiché i dischi floppy in genere non erano partizionati.)
Wyzard,

Punto eccellente. Avevo una scarsa memoria di attaccare un'unità USB a un laptop e di essere in grado di montare, /dev/sdcma non ero sicuro di averlo inventato.
Crescere l'

3

/ dev / sda - dispositivo non elaborato

/ dev / sda1 - dispositivo 'virtuale', come una partizione.

Una differenza interessante è che se un dispositivo ha partizioni (ha dati MBR o simili) non è possibile leggere i dati MBR da nessuno dei dispositivi virtuali, poiché i dati MBR risiedono al di fuori di qualsiasi partizione su un dispositivo. MBR risiede nel primo settore del dispositivo (CHS: 0 0 1). È buona norma creare la prima partizione a 1 MiB dopo l'inizio di un dispositivo.

Per leggere i dati MBR, è necessario utilizzare il dispositivo non elaborato (/ dev / sda), ovvero:

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

0

Ah, tabelle delle partizioni e nomi dei dispositivi. Preparati a confonderti con loro.

Hai un server HP con il controller RAID Compaq? No / dev / sda, saluta / dev / ccsis.

Hai un vecchio computer desktop con la vecchia interfaccia IDE? No / dev / sda, saluta / dev / hda.

Hai un server moderno che ti dice / dev / sda ma dopo l'installazione non riesci a vederlo? Saluta LVM, l'installazione del tuo sistema operativo ha creato il tuo / dev / sda come volume fisico LVM, creato un gruppo di volumi al suo interno e un volume logico al suo interno.

Quindi ... se non vedi nulla come / dev / sda1, potresti avere LVM o simili in uso, che ha creato le sue "partizioni".

Questo risponde alla tua domanda?

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.