GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Unterschiede zwischen /dev/sda und /dev/sda1

Lösung 1:

Auf einem modernen System erscheint ein Partitionsgerät nur, wenn die Partition tatsächlich existiert.

Auf einer Festplatte mit einer MBR-Partitionstabelle entsprechen die Partitionsnummern 1 bis 4 den vier Steckplätzen in der Partitionstabelle, die als „primäre“ Partitionen bezeichnet werden. Sie müssen nicht sequentiell gefüllt werden, also ist es zum Beispiel möglich, ein sda2 aber kein sda1 zu haben. Partitionsnummern ab 5 entsprechen „logischen Laufwerken“ in einer erweiterten Partition, und diese sind immer fortlaufend nummeriert, sodass Sie kein sda6 haben können, ohne auch ein sda5 zu haben.

Auf einer Festplatte mit einer GPT-Partitionstabelle kann es viel mehr (normalerweise bis zu 128) Partitionen geben, und alle sind "primär". So könnten Sie beispielsweise eine Festplatte haben, deren einzige Partition sda9 ist.

Wenn die Platte keine Partitionstabelle hat, dann hat sie natürlich auch keine Partitionsgeräte.

Ältere Systeme – solche, die ein statisches /dev anstelle eines von udev verwalteten verwenden – haben normalerweise Geräteknoten für alle möglichen Partitionsnummern, unabhängig davon, ob die Partitionen tatsächlich existieren. (Der Versuch, die Gerätedatei für eine nicht vorhandene Partition zu öffnen, schlägt natürlich fehl.)

Es ist möglich, auf die Partitionierung zu verzichten und ein Dateisystem direkt auf eine Festplatte zu legen. Wenn Sie ein Blockgerät mounten, sucht der Dateisystemtreiber normalerweise nach einem Superblock an einem vorbestimmten Offset vom Anfang des Geräts, und da der Anfang einer Partition nicht der Anfang der Festplatte selbst ist, sucht der Superblock nach einem Dateisystem in einer Partition befindet sich an einer anderen Stelle auf der Festplatte als der Superblock für ein Dateisystem, das auf dem "Whole-Disk"-Gerät erstellt wurde.

Wenn die Festplatte also früher nur ein Dateisystem hatte und dann partitioniert und ein Dateisystem in einer Partition erstellt wurde, ist der alte Superblock möglicherweise noch vorhanden, z. in der kleinen Lücke vor Beginn der ersten Partition. Die Festplatte scheint also immer noch ein Dateisystem sowohl auf dem Raw-Festplattengerät als auch auf dem Partitionsgerät zu haben, denn egal, welches Sie zu mounten versuchen, wenn der Dateisystemtreiber nach dem Superblock sucht, wird er einen finden.

Es ist jedoch nicht wirklich sicher, beide Dateisysteme zu mounten und zu verwenden, da sie sich auf der Festplatte überschneiden. Der eine hat möglicherweise wichtige Buchhaltungsdaten in dem, was der andere für freien Speicherplatz hält. Aus diesem Grund ist es eine gute Idee, den Anfang eines Blockgeräts auf Null zu setzen, um unerwünschte Superblöcke zu entfernen, wenn Sie eine Raw-Festplatte in eine partitionierte Festplatte oder umgekehrt ändern oder den Typ des auf einer Partition verwendeten Dateisystems ändern möchten usw .

Lösung 2:

Soweit ich weiß, wenn der Kernel ein neues Blockgerät auf einem SCSI-ähnlichen (inkl. SATA) Bus erkennt, zusätzlich zum Hinzufügen eines Knotens in /dev für die ganze Platte selbst, z.B. /dev/sda es wird versuchen zu sehen, ob es eine Partitionstabelle gibt. Wenn lesbare Partitionen vorhanden sind, werden die Partitionsknoten nummeriert, je nachdem, ob es sich um physische oder logische Partitionen handelt (ich glaube, logische Partitionen beginnen bei #5).

Wenn Sie einen Festplattenknoten sehen, aber keine Partitionsknoten, bedeutet dies, dass keine Partitionen erkannt wurden. Mir ist kein Fall bekannt, in dem Sie das physische Gerät mounten können, da dies bedeuten würde, dass ein Dateisystem ohne Partitionstabelle direkt auf das physische Gerät geschrieben wird. Es könnte sein, dass in dem Fall, in dem es nur eine einzelne Partition gibt, mount interpretiert einen mount /dev/sda Befehl im Sinne von /dev/sda1 , aber ich habe das noch nie getestet.

Lösung 3:

/dev/sda - Raw-Gerät

/dev/sda1 - 'virtuelles' Gerät, wie eine Partition.

Ein interessanter Unterschied besteht darin, dass Sie, wenn ein Gerät Partitionen hat (mit MBR-Daten oder ähnlichem), keine MBR-Daten von einem der virtuellen Geräte lesen können, da sich MBR-Daten außerhalb von Partitionen auf einem Gerät befinden. MBR befindet sich im ersten Sektor des Geräts (CHS:0 0 1). Es hat sich bewährt, die erste Partition mit 1 MB nach dem Start eines Geräts zu erstellen.

Um die MBR-Daten zu lesen, müssen Sie das Raw-Device (/dev/sda) verwenden, also:

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

Linux
  1. Linux:Unterschied zwischen /dev/console , /dev/tty und /dev/tty0?

  2. So ordnen Sie /dev/sdX- und /dev/mapper/mpathY-Geräte vom /dev/dm-Z-Gerät zu

  3. Wie kann /dev/random oder /dev/urandom mit base64 codiert werden?

  4. Wie tauscht man /dev/sda mit /dev/sdb aus?

  5. DD von /dev/zero nach /dev/null ... was eigentlich passiert

tty (/dev/tty ) vs. pts (/dev/pts) unter Linux

Was sind /dev/zero- und /dev/null-Dateien in Linux

Wann sollte ich /dev/shm/ verwenden und wann sollte ich /tmp/?

Kernel:/dev/kmem und /dev/mem deaktivieren

echo oder print /dev/stdin /dev/stdout /dev/stderr

Warum sind < oder > erforderlich, um /dev/tcp