64748
Goto Top

Sichern der Partitionstabelle bei exotischen Partitionierungen

Speziell für Leute, die Windows und Linux als Dualboot installieren oder aus anderen Gründen vom üblichen Partitionierungsschema abweichen.

Hallo zusammen,

ich benutze auf allen meinen Rechnern entweder Windows/Linux als Dualboot oder mehrere Linux-Distributionen. Daher habe ich immer viele Partitionen.

back-to-topWarum dieser Tipp?
Leider kann es passieren, dass man sich aus irgendeinem Grund die Partitionstabelle zerschießt.
Die Partitionstabelle ist nur ein Inhaltsverzeichnis das zwar für das Dateisystem wichtig ist, jedoch hat sie nicht unmittelbar mit den "physikalischen Daten" zu tun.
Daher kann man eine zerschossene Partitionstabelle leicht wieder herstellen, wenn man weiß, wie sie vorher ausgesehen hat. Die Daten auf der Platte sind davon nicht betroffen.

back-to-topWie ich vorgehe
Ich habe mir angewöhnt, von einem Linux-System aus (geht natürlich mit jeder Live-CD) den folgenden Befehl auszuführen
fdisk -l > Partitionstabelle_`date +%d_%m_%Y`.txt
Das schreibt die komplette Partitionstabelle in eine Texdatei, versehen mit dem Datum. Diese Datei drucke ich aus! Im Ernstfall nutzt es nichts, wenn diese Datei auf der Festplatte mit der kaputten Partitionstabelle liegt.

Wichtig ist es, diese ausgedruckte Partitionstabelle mit jeder Veränderung der Partitionierung zu aktualisiert.

back-to-topWas es bringt
Anhand dieses Ausdrucks kann man die Partitionstabelle auf den Sektor genau wieder so erstellen, wie sie ursprünglich angelegt worden ist. Ich mache das mit fdisk, es gibt aber noch andere Tools zum Partitionieren.

Markus

back-to-topNachtrag (wie man ggf. die Darstellung in Sektoren erzwingen kann)
Wie Lochkartenstanzer unten schreibt, kann es sein, dass mit dem o.g. Befehl die Partitionstabelle nicht in in Sektoren angezeigt wird. Das ist anscheinend distributionsabhängig, evtl. können andere Optionen als default eingestellt sein. Bei mir ist defaultmäßig die Darstellung in Sektoren, so wie es in der manpage zu fdisk beschrieben ist, hier ein Ausschnitt

-u[=unit]
When listing partition tables, show sizes in 'sectors' or in 'cylinders'. The
default is to show sizes in sectors. For backward compatibility, it is possible to
use the option without the <units> argument -- then the default is used. Note that
the optional <unit> argument cannot be separated from the -u option by a space, the
correct form is for example '-u=cylinders'.

das bedeutet, wenn bei Euch der Befehl fdisk mit der -l Option nicht das gewünschte anzeigt, dann könnt Ihr mit
fdisk -u=sectors -l 
die Darstellung der Sektoren erzwingen.

Hier ein Beispiel von meinem System: zuerst die Darstellung in Zylindern
samsung:~# fdisk -u=cylinders -l

Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 Köpfe, 63 Sektoren/Spur, 38913 Zylinder
Einheiten = Zylinder von 16065 × 512 = 8225280 Bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x096716b2

   Gerät  boot.     Anfang        Ende     Blöcke   Id  System
/dev/sda1               1        1959    15728640   27  Hidden NTFS WinRE
/dev/sda2   *        1959        1972      102400    7  HPFS/NTFS/exFAT
/dev/sda3            1972       14740   102563840    7  HPFS/NTFS/exFAT
/dev/sda4           14740       38913   194172768+   5  Erweiterte
/dev/sda5           14740       18004    26221194+  83  Linux
/dev/sda6           18005       18658     5253223+  82  Linux Swap
/dev/sda7           18659       20617    15735636   83  Linux
/dev/sda8           20618       23229    20980858+  83  Linux
/dev/sda9           23230       31063    62926573+  83  Linux
/dev/sda10          31064       38913    63055093+  83  Linux
und hier in Sektoren (bei mir default)
samsung:~# fdisk -u=sectors -l

Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 Köpfe, 63 Sektoren/Spur, 38913 Zylinder, zusammen 625142448 Sektoren
Einheiten = Sektoren von 1 × 512 = 512 Bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x096716b2

   Gerät  boot.     Anfang        Ende     Blöcke   Id  System
/dev/sda1            2048    31459327    15728640   27  Hidden NTFS WinRE
/dev/sda2   *    31459328    31664127      102400    7  HPFS/NTFS/exFAT
/dev/sda3        31664128   236791807   102563840    7  HPFS/NTFS/exFAT
/dev/sda4       236791808   625137344   194172768+   5  Erweiterte
/dev/sda5       236791871   289234259    26221194+  83  Linux
/dev/sda6       289234323   299740769     5253223+  82  Linux Swap
/dev/sda7       299740833   331212104    15735636   83  Linux
/dev/sda8       331212168   373173884    20980858+  83  Linux
/dev/sda9       373173948   499027094    62926573+  83  Linux
/dev/sda10      499027158   625137344    63055093+  83  Linux

Content-Key: 182318

Url: https://administrator.de/contentid/182318

Ausgedruckt am: 29.03.2024 um 13:03 Uhr

Mitglied: broecker
broecker 23.03.2012 um 19:09:53 Uhr
Goto Top
mit sfdisk läßt sich die Partitionstabelle als Textfile exportieren UND auch leicht wieder importieren, Kopie auf einen zentralen Server z.B. mit scp oder auch direkt mit Pipe: etwa so: sfdisk | ssh x@u "cat - > Server5sda.sfdisk" - näheres man sfdisk ...
GUID-Tauglichkeit würde aber zunehmend wichtig, da hatte ich aber auch 'mal was hier geschrieben ?!
Mitglied: Lochkartenstanzer
Lochkartenstanzer 28.03.2012 um 12:51:56 Uhr
Goto Top
Korrektur:

Nimm lieber parted zum dokumentieren. fdisk kann keine gpt-Partitionierung und spätestens dann fliegt man mit fdisk auf die Schnauze. Man merkt nichteinmal, daß da was schiefgelaufen ist.


gdisk/sgdisk ist ein Tool, das sowohl das mbr- als auch das gpt-Schema beherrscht. damit kann man die Partitionierung besser dokumentieren. ein einafches

 gdisk -l 

führt zu
nisan:~$ gdisk -l /dev/sdq
GPT fdisk (gdisk) version 0.5.1

Partition table scan:
  MBR: MBR only
  BSD: not present
  APM: not present
  GPT: not present


***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format.
THIS OPERATON IS POTENTIALLY DESTRUCTIVE! Exit by typing 'q' if
you don't want to convert your MBR partitions to GPT format!
***************************************************************

Warning! Secondary partition table overlaps the last partition by 33 blocks
You will need to delete this partition or resize it in another utility.
Disk /dev/sdq: 3907029168 sectors, 1.8 TiB
Disk identifier (GUID): BA6B8F30-C1F5-0350-08AC-6609ABF0F913
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 3907029134
Total free space is 2014 sectors (1007.0 KiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048        83888127   40.0 GiB    0700  Linux/Windows data
   2        83888128        92276735   4.0 GiB     8200  Linux swap
   4        92276736      3907029167   1.8 TiB     0700  Linux/Windows data

Ach, ja, die Warnung:

Solange man nur die Partitionsdaten auflisten läßt, ist das unkritisch. gdisk ändert bei der Option "-l" keine Daten auf der Platte.


lks
Mitglied: Lochkartenstanzer
Lochkartenstanzer 28.03.2012 um 13:02:37 Uhr
Goto Top
Moin moin,

Je nach der version von fdisk gibt
fdisk -l 

nicht immer "Sektorgenau" aus.
Ggf. muß
fdisk -cul

verwendet werden, damit man die Daten sektorgenau hat.

lks
Mitglied: 64748
64748 28.03.2012 um 15:57:50 Uhr
Goto Top
Hallo,

@Lochkartenstanzer: danke für den Hinweis. Ich werde das bei Gelegenheit in den Tipp mit einarbeiten.

Markus
Mitglied: 64748
64748 29.03.2012 um 09:44:02 Uhr
Goto Top
Guten Morgen,

danke nochmal an Lochkartenstanzer, ich habe den Hinweis oben eingearbeitet. Denkt bitte daran, ggf. die Manpage zu lesen.

Markus
Mitglied: Lochkartenstanzer
Lochkartenstanzer 30.03.2012 um 11:35:14 Uhr
Goto Top
Moin moin

Zitat von @64748:

danke nochmal an Lochkartenstanzer, ...

gern geschen.

Hier noch als Beispiel zwei Ausgaben:

debian squeeze (6.0)

dagobert:~# cat /etc/issue
Debian GNU/Linux 6.0 \n \l

dagobert:~# fdisk -l 

Disk /dev/sda: 34.4 GB, 34359738368 bytes
15 heads, 63 sectors/track, 71014 cylinders
Units = cylinders of 945 * 512 = 483840 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x8b860f9f

   Device Boot      Start         End      Blocks   Id  System                                                                                                                             
/dev/sda1   *           1        3072     1451488+  83  Linux                                                                                                                              
/dev/sda2            3073       59900    26851230   83  Linux                                                                                                                              
/dev/sda3           59901       66570     3151575   83  Linux                                                                                                                              
/dev/sda4           66571       71014     2099790   82  Linux swap / Solaris                                                                                                               


ubuntu lucid lynx (10.04)

root@nisan:~# cat /etc/issue
Ubuntu 10.04.4 LTS \n \l                                                                                                                                                                   
                                                                                                                                                                                           
root@nisan:~# fdisk -l /dev/sdq                                                                                                                                                           
                                                                                                                                                                                           
Platte /dev/sdq: 2000.4 GByte, 2000398934016 Byte                                                                                                                                          
255 Köpfe, 63 Sektoren/Spur, 243201 Zylinder, zusammen 3907029168 Sektoren                                                                                                                 
Einheiten = Sektoren von 1 × 512 = 512 Bytes                                                                                                                                               
Sector size (logical/physical): 512 bytes / 512 bytes                                                                                                                                      
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x660f0963

   Gerät  boot.     Anfang        Ende     Blöcke   Id  System
/dev/sdq1            2048    83888127    41943040   83  Linux
/dev/sdq2        83888128    92276735     4194304   82  Linux Swap / Solaris
/dev/sdq4        92276736  3907029167  1907376216   83  Linux

Wie man leicht sieht, ist die Ausgabe von der Distribution und deren Alter abhängig.
Mitglied: 64748
64748 30.03.2012 um 13:46:15 Uhr
Goto Top
Hallo,
Zitat von @Lochkartenstanzer:
Wie man leicht sieht, ist die Ausgabe von der Distribution und deren Alter abhängig.
ja, es ist distributionsabhängig. Da könnte man leicht wieder einen eigenen Tipp draus machen.

Das Problem ist, dass die Manpage zu fdisk sagt, das die Defaultausgabe in Sektoren ist. Wenn nun aber die Distributoren fdisk in der Weise patchen (oder sonstwie umkonfigurieren), dass es andere Defaultoptionen nutzt, dann wird natürlich nicht die manpage angepasst.
Das ist gemein (bzw. erschwert den Überblick).

Weiteres Beispiel: bash (verhalten als login-shell, welche Dateien werden gesourced?), auch das hängt von der Distribution ab.

Ich benutze Slackware und dort bleiben alle Programme so wie sie sind, also stimmt das, was in der Manpage steht bei mir immer. Man kann sagen, je "benutzerfreundlicher" eine Distribution sein möchte, desto mehr wird gepatched und herumkonfiguriert und man findet sich schlechter zurecht.

Leider wird das jetzt Off Topic...

Markus