Warum zeigt Linux Gerätepartitionsblockdateien für eine Festplatte ohne Partitionen an?

Warum zeigt Linux Gerätepartitionsblockdateien für eine Festplatte ohne Partitionen an?

Ich habe eine 2-TB-Festplatte, die ich mit zufälligen Daten überschrieben habe. fdiskbestätigt, dass das Gerät keine erkannte Partitionstabelle hat. Dennoch sehe ich diese 5 Gerätedateien für die Festplatte: /dev/sdc{,1,2,3,4}

dh

# for i in /dev/sdc{,1,2,3,4} ; do fdisk -l -u $i ; done

Disk /dev/sdc: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/sdc1: 555.1 GiB, 595985804288 bytes, 1164034774 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/sdc2: 1.6 TiB, 1781956913152 bytes, 3480384596 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/sdc3: 928.5 GiB, 997001973760 bytes, 1947269480 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/sdc4: 1 TiB, 1153125198336 bytes, 2252197653 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Auch hier hat das Gerät keine Partitionstabelle:

# fdisk /dev/sdc 

Welcome to fdisk (util-linux 2.25.2). 
Changes will remain in memory only, until you decide to write them. 
Be careful before using the write command. 

Device does not contain a recognized partition table. 
Created a new DOS disklabel with disk identifier 0x56b93c1d. 

Command (m for help): p 
Disk /dev/sdc: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors 
Units: sectors of 1 * 512 = 512 bytes 
Sector size (logical/physical): 512 bytes / 512 bytes 
I/O size (minimum/optimal): 512 bytes / 512 bytes 
Disklabel type: dos 

Warum gibt es Partitionsgeräte, d. h. warum gibt es /dev/sdc{1,2,3,4} und nicht nur /dev/sdc? Und warum sind die partitionierten Geräte insgesamt nicht 1,8 TiB groß?

Antwort1

Linux liest die Partitionstabelle nicht erneut, außer beim Booten (oder beim Verbinden mit der Festplatte) oder wenn es ausdrücklich dazu aufgefordert wird (z. B. durch fdisk nach dem Schreiben einer Tabelle oder durch Verwendung von partxoder blockdev --rereadpt). Solange Sie also nicht eines davon tun, sdc[1-4]wird es weiterhin existieren.

Die einfachste Lösung wäre, partprobeden Kernel anzuweisen, die Partitionstabelle auf allen Geräten oder partprobe /dev/sdcnur auf dieser Festplatte erneut zu lesen. Oder Sie könnten fdisk verwenden, um diese leere Partitionstabelle zu schreiben. Dann macht fdisk dasselbe wie partprobe.

Beachten Sie auch, dass der Kernel die Daten nicht erneut liest, wenn die Festplatte (oder vielmehr eine ihrer Partitionen) verwendet wird (z. B. als Dateisystem, Swap, LVM PV usw.). Wenn eine davon verwendet wurde, haben Sie natürlich ein Problem, da Sie sie gerade gelöscht haben.

Und schließlich: Wenn Sie bereits versucht haben, ein erneutes Lesen zu erzwingen, ist es möglich, dass Ihre Zufallsdaten zufällig mit einer Partitionstabellensignatur übereinstimmen. Linux unterstützt viele verschiedene Partitionstabellenformate (die Liste wird beim Kompilieren des Kernels ausgewählt) und die Signatur einiger davon ist nur ein Byte groß – die Wahrscheinlichkeit, dass die Zufallsdaten übereinstimmen, beträgt also 1/256. Andere haben längere Signaturen, also ist die Wahrscheinlichkeit viel geringer. Ich bin mir nicht sicher, wie hoch die Gesamtwahrscheinlichkeit ist, aber eine schnelle Überprüfung der Kernelprotokolle zeigt, welches Partitionstabellenformat der Kernel erkannt hat.

verwandte Informationen