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

Kopieren der Partitionsstruktur der Festplatte

Gibt es eine Möglichkeit, sda5 in sda4 umzubenennen?

Ja {und deshalb gibt es unter dieser Frage eine lange Antwort

Ich nehme als Beispiel meinen USB-Stick /dev/sdc. Für Ihren Fall entsprechend modifizieren

Machen Sie sich zunächst mit Ihrem Laufwerk vertraut:{Nur um zu überprüfen, ob Sie das gewünschte Laufwerk verwenden }

sudo fdisk -l /dev/sdc

Disk /dev/sdc: 14.32 GiB, 15376318464 bytes, 30031872 sectors
Disk model: Cruzer Blade    
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
Disk identifier: 0xba104c33

Device     Boot    Start      End Sectors  Size Id Type
/dev/sdc1           2048  3426303 3424256  1.6G 83 Linux
/dev/sdc2        3426304 12898303 9472000  4.5G 83 Linux
/dev/sdc3       12898304 20127743 7229440  3.4G  b W95 FAT32
/dev/sdc4       20127744 27377663 7249920  3.5G  5 Extended
/dev/sdc5       20129792 22233087 2103296    1G 83 Linux

sudo sfdisk -d /dev/sdc

label: dos
label-id: 0xba104c33
device: /dev/sdc
unit: sectors
sector-size: 512

/dev/sdc1 : start=        2048, size=     3424256, type=83
/dev/sdc2 : start=     3426304, size=     9472000, type=83
/dev/sdc3 : start=    12898304, size=     7229440, type=b
/dev/sdc4 : start=    20127744, size=     7249920, type=5
/dev/sdc5 : start=    20129792, size=     2103296, type=83

sudo parted -l /dev/sdc

Model: SanDisk Cruzer Blade (scsi)
Disk /dev/sdc: 15.4GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type      File system  Flags
 1      1049kB  1754MB  1753MB  primary   ext4
 2      1754MB  6604MB  4850MB  primary   btrfs
 3      6604MB  10.3GB  3701MB  primary   fat32
 4      10.3GB  14.0GB  3712MB  extended
 5      10.3GB  11.4GB  1077MB  logical   ext2

Hinweis

  • Stellen Sie sicher, dass alle Partitionen während des Bearbeitungsvorgangs der Partitionstabelle ausgehängt werden.
  • Keine Anwendungen greifen auf die Festplatte zu / ändern ihren Inhalt.

Kennen Sie Ihr Arbeitswerkzeug - sfdisk

Aus der Manpage

sfdisk ist ein skriptorientiertes Tool zum Partitionieren beliebiger Blockgeräte.

Möchten Sie mehr Details?

Führen Sie aus:man sfdisk

Probieren Sie das Tool auf dem gewünschten Laufwerk

aus
sfdisk -d /dev/sdc

Wenn /dev/sdc ist die Zielfestplatte;

Sichern Sie zuerst die Partitionstabelle sdc.bak

sfdisk -d /dev/sdc > sdc.bak

Holen Sie sich eine Arbeitskopie - sdc.new

cp sdc.bak sdc.new

Machen Sie sich die Hände schmutzig

Öffnen Sie sdc.new in Ihrem bevorzugten Editor

label: dos
label-id: 0xba104c33
device: /dev/sdc
unit: sectors
sector-size: 512

/dev/sdc1 : start=        2048, size=     3424256, type=83
/dev/sdc2 : start=     3426304, size=     9472000, type=83
/dev/sdc3 : start=    12898304, size=     7229440, type=b
/dev/sdc4 : start=    20127744, size=     7249920, type=5
/dev/sdc5 : start=    20129792, size=     2103296, type=83

Beachten Sie die Partitionsreihenfolge

/dev/sdc1
/dev/sdc2
/dev/sdc3
/dev/sdc4
/dev/sdc5

Jetzt möchte ich, dass die Partitionssequenz so ist

/dev/sdc3
/dev/sdc4
/dev/sdc1
/dev/sdc2
/dev/sdc5

Kurz gesagt, meine erforderlichen Änderungen:

/dev/sdc1 ------------> /dev/sdc3
/dev/sdc2 ------------> /dev/sdc4
/dev/sdc3 ------------> /dev/sdc1
/dev/sdc4 ------------> /dev/sdc2
/dev/sdc5 ------------> /dev/sdc5

Bearbeiten Sie sdc.new das entsprechend

Hinweis-

  • Ändern Sie keine Nummern außer den Partitionsnummern. Ich bin sicher, Sie wissen warum.

sdc.new

label: dos
label-id: 0xba104c33
device: /dev/sdc
unit: sectors
sector-size: 512

/dev/sdc3 : start=        2048, size=     3424256, type=83
/dev/sdc4 : start=     3426304, size=     9472000, type=83
/dev/sdc1 : start=    12898304, size=     7229440, type=b
/dev/sdc2 : start=    20127744, size=     7249920, type=5
/dev/sdc5 : start=    20129792, size=     2103296, type=83

Schreiben Sie die Partitionstabelle zurück

sfdisk /dev/sdc < sdc.new

Beispielausgabe :

Checking that no-one is using this disk right now ... OK

Disk /dev/sdc: 14.32 GiB, 15376318464 bytes, 30031872 sectors
Disk model: Cruzer Blade    
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
Disk identifier: 0xba104c33

Old situation:

Device     Boot    Start      End Sectors  Size Id Type
/dev/sdc1           2048  3426303 3424256  1.6G 83 Linux
/dev/sdc2        3426304 12898303 9472000  4.5G 83 Linux
/dev/sdc3       12898304 20127743 7229440  3.4G  b W95 FAT32
/dev/sdc4       20127744 27377663 7249920  3.5G  5 Extended
/dev/sdc5       20129792 22233087 2103296    1G 83 Linux

>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Created a new DOS disklabel with disk identifier 0xba104c33.
/dev/sdc1: Created a new partition 3 of type 'Linux' and of size 1.6 GiB.
Partition #3 contains a ext4 signature.
/dev/sdc4: Created a new partition 4 of type 'Linux' and of size 4.5 GiB.
Partition #4 contains a btrfs signature.
/dev/sdc5: Created a new partition 1 of type 'W95 FAT32' and of size 3.4 GiB.
Partition #1 contains a vfat signature.
/dev/sdc2: Created a new partition 2 of type 'Extended' and of size 3.5 GiB.
/dev/sdc3: Created a new partition 5 of type 'Linux' and of size 1 GiB.
Partition #5 contains a ext2 signature.
/dev/sdc6: Done.

New situation:
Disklabel type: dos
Disk identifier: 0xba104c33

Device     Boot    Start      End Sectors  Size Id Type
/dev/sdc1       12898304 20127743 7229440  3.4G  b W95 FAT32
/dev/sdc2       20127744 27377663 7249920  3.5G  5 Extended
/dev/sdc3           2048  3426303 3424256  1.6G 83 Linux
/dev/sdc4        3426304 12898303 9472000  4.5G 83 Linux
/dev/sdc5       20129792 22233087 2103296    1G 83 Linux

Partition table entries are not in disk order.

The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

Zeit für einen Gegencheck

sudo fdisk -l /dev/sdc

Disk /dev/sdc: 14.32 GiB, 15376318464 bytes, 30031872 sectors
Disk model: Cruzer Blade    
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
Disk identifier: 0xba104c33

Device     Boot    Start      End Sectors  Size Id Type
/dev/sdc1       12898304 20127743 7229440  3.4G  b W95 FAT32
/dev/sdc2       20127744 27377663 7249920  3.5G  5 Extended
/dev/sdc3           2048  3426303 3424256  1.6G 83 Linux
/dev/sdc4        3426304 12898303 9472000  4.5G 83 Linux
/dev/sdc5       20129792 22233087 2103296    1G 83 Linux

Partition table entries are not in disk order.

sudo parted -l /dev/sdc

Model: SanDisk Cruzer Blade (scsi)
Disk /dev/sdc: 15.4GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type      File system  Flags
 3      1049kB  1754MB  1753MB  primary   ext4
 4      1754MB  6604MB  4850MB  primary   btrfs
 1      6604MB  10.3GB  3701MB  primary   fat32
 2      10.3GB  14.0GB  3712MB  extended
 5      10.3GB  11.4GB  1077MB  logical   ext2

Falls die Dinge durcheinander geraten, Wiederherstellung aus der Backup-Partitionstabelle sdc.bak -

sfdisk /dev/sdc < sdc.bak

Ich kann bei Teilen davon helfen.

Wenn die Festplatte eine MBR-Partitionstabelle verwendet, muss sie, wie Sie vermutet haben, eine erweiterte Partition verwenden, da der MBR nur vier primäre Partitionen unterstützen kann. Dies ist einer der Gründe, warum GPT-Partitionstabellen bevorzugt werden. Sie haben diese Einschränkung nicht. Sie unterstützen auch größere Partitionen.

Wenn Linux ein Laufwerk betrachtet, weist es jeder Partition, die es auf dem Laufwerk findet, nacheinander Geräte zu. Wenn dieses Laufwerk das erste Laufwerk ist, das es sieht, wird es /dev/sda genannt und die darauf befindlichen Partitionen beginnend mit /dev/sda1 zugewiesen. Sie können diese also nicht umbenennen.

Es empfiehlt sich, sich nicht auf Gerätenamen für genau die Art von Problemen zu verlassen, auf die Sie stoßen. Die meisten Leute verwenden die UUIDs von Partitionen, um auf sie zu verweisen, was eine große Verbesserung darstellt. Ich gehe noch einen Schritt weiter und verwende eindeutige, für Menschen lesbare/aussagekräftige Partitionsbezeichnungen, um auf Partitionen zu verweisen. Wenn Sie mehrere Laufwerke haben, können Sie nicht garantieren, dass sie bei jedem Start in der gleichen Reihenfolge erkannt werden, so dass ein Gerät, das einmal /dev/sdb war, ein anderes Mal /dev/sdc sein könnte. Es wird noch schlimmer, wenn Sie Wechseldatenträger haben, die nicht einmal eine Gerätedatei erhalten, bis sie physisch an das System angeschlossen sind. UUIDs sind unveränderlicher, ändern sich aber auch, wenn Sie die Größe einer Partition ändern oder verschieben. Labels werden nicht geändert, verlassen sich aber darauf, dass Sie sie eindeutig benennen.

Ich weiß nicht, warum /dev/sda4 übersprungen wird - besonders wenn swap bereits /dev/sda2 zugewiesen ist. Ich weiß nicht, wie ich das beheben soll. Wenn Sie sich das neue Laufwerk ansehen, sollte dort "etwas" sein, wo /dev/sda4 sein soll. Vielleicht füllt /dev/sda3 den Rest der Festplatte, aber selbst wenn dies der Fall ist, würde ich denken, dass /dev/sda4 immer noch die erste erweiterte Partition darin wäre. Oder vielleicht das Gegenteil, es füllt nicht den Rest der Festplatte und daher wird /dev/sd4 für den Platz nach der gesamten /dev/sd3 erweiterten Partition reserviert.

Wenn Sie Zugriff auf einen anderen Computer haben, können Sie als mögliche Problemumgehung das neue Laufwerk darauf erstellen, die UUIDs oder Bezeichnungen aller neuen Partitionen abrufen und dann alle Ihre Skripts über sed ausführen, um alle Gerätereferenzen so zu ändern, dass sie UUIDs verwenden oder Etiketten. Sie könnten sogar zu einem GPT-Partitionierungsschema wechseln, wenn Sie möchten.


Linux
  1. Einfache Wiederherstellung von Festplattendaten

  2. Verschiedene Methoden zum Mounten eines Laufwerks unter Linux?

  3. Unterschiede zwischen Volume, Partition und Laufwerk?

  4. Ganze Partition oder Festplatte in eine Sparse-Datei klonen?

  5. Warum wird die Laufwerks-/Partitionsnummer immer noch verwendet?

So ersetzen Sie eine Festplatte unter Linux

So partitionieren und formatieren Sie ein Laufwerk unter Linux

So klonen Sie eine Partition oder Festplatte unter Linux

So löschen Sie eine Festplatte sicher – Schritt für Schritt

Anzeigen des Inhalts der Festplatte im Binärformat

Wie kann ich verhindern, dass ein Benutzer Dateien auf eine andere Festplatte kopiert?