Re: Slices wiederfinden

From: Bernd Walter <ticso(at)cicely8.cicely.de>
Date: Mon, 21 Oct 2002 10:28:14 +0200

On Mon, Oct 21, 2002 at 09:47:35AM +0200, Oliver Brandmueller wrote:
> Hallo,
>
> vorab: Das mit den Partitionen, Slices und so weiter bring ich immer
> wieder durcheinander, also falls ich's wieder tue bitte keinen Flamewar
> starten, sondern einfach gesittet drauf hinweisen ;-)

Eigendlich einfach:
DOS-Style Partitionen sind Slices (s1, s2, ...)
Disklabel Partitionen sind Partitionen (a, b, e, ...)

> Folgende Situation:
>
> Auf meinem Notebook gibt es eine Mini-DOS-Partition mit "Diagnostic
> programs" (irgendsoein HP-Geraffel). Das ist ad0s1. ad0s2 ist Win2k. Und
> ad0s3 ist FreeBSD. Durch irgendeinen seltsamen Zufall ist ir die
> Partitionstabelle durcheinandergeraten. Das habe ich wieder hingebogen,
> als die Partitionensind wieder korrekt da. Dabei habe ich mir aber
> offenbar das disklabel der ad0s3 zerschossen: Ich hatte vorher ad0s3a
> für /, die b als swap, e als /var und f als /usr. Die a-Slice habe ich
> bereits wieder, die war am Anfang, das war nicht schwer. Da ich
> natürlich nicht mal irgendwann das label gesichert habe, fällt es mir
> aber schwer, genau rauszufinden, wo die a-Slice zuende ist, wie groß
> SWAP und e und f genau sind. Da sich (wie üblich) eine gewisse
> Latenzzeit zwischen letztem Backup und Crash eingeschlichen hat und die
> aktuellsten Daten natürlich auch immer die wichtigsten sindm würde ich
> gerne versuchen, doch noch mehr als / zu recovern.
>
> gpart aus den Ports hilft mir leider erstmal nicht weiter, das kann nur
> echte Partitionen finden, scheinbar aber keine FreeBSD-Slices. Ich habe
> erstmal die ad0s3 komplett per dd auf einen anderen Rechner gesichert,
> so daß ich von da ausgehend vielleicht auch weitere Suchaktionen starten
> kann.
>
> Hat jemand Ideen? Kennt jemand Bytefolgen, die auf den Start eines
> Filesystems hindeuten, die man vielleicht in der datei suchen kann und
> so rausfinden, bei welchem Block die Grenzen sind? Gibt es irgendein
> Tool, das ich nicht kenne, das damit zurecht kommt?

Der Superblock hat eine 16 bit Magicnumber:
#define FS_UFS1_MAGIC 0x011954
Das ist ein Marker, der verhindern soll das Datenmüll als FS
interpretiert wird.
Den Superblock (8k groß) hast du mehrfach pro FS.
Einmal am Anfang der Partition (Sektor 16) und dann einmal pro
Zylindergruppe.
Den ersten kannst du daran erkennen, das bereits wenige Sektoren später
der von der ersten Zylindergruppe kommt.
Die Größe der Partitionen ist egal, solange die nicht kleiner als das
FS sind, da die Filesysteme ebenfalls die Größe kennen.

-- 
B.Walter              COSMO-Project         http://www.cosmo-project.de
ticso(at)cicely.de         Usergroup           info(at)cosmo-project.de
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Mon 21 Oct 2002 - 10:28:21 CEST

search this site