Festplattensektoren kaputt, wie komme ich an die Partitionen

Hast Du Probleme mit Hardware, die durch die anderen Foren nicht abgedeckt werden? Schau auch in den "Tipps und Tricks"-Bereich.
Antworten
t2x
Beiträge: 24
Registriert: 19.07.2003 12:46:57

Festplattensektoren kaputt, wie komme ich an die Partitionen

Beitrag von t2x » 22.06.2004 22:30:50

Hi,
ne etwas aeltere Platte hat leider die ersten 100 Sektoren zerschossen. Ansonsten scheint sie noch ganz gut zu laufen. Nur ist natuerlich dass Problem, dass ich nicht mehr auf meine Partitionen komme. Also habe ich mal mit gpart versucht das ganze wiederherzustellen. Zur Erklaerung noch, zuerst kam eine NTFS Partition (die ist mir egal) dann kamen 2 ext2/3 Partitionen die haette ich gern wieder.
gpart liefert mir folgendes

Code: Alles auswählen


dev(/dev/hdb) mss(512) chs(79428/16/63) #s(80063424) size(39093mb)

* Warning: strange partition table magic 0xEA55.
Primary partition(1)
   type: 131(0x83)(Linux ext2 filesystem) (BOOT)
   size: 524429mb #s(1074030992) s(1135174384-2209205375)
   chs:  (1023/79/63)-(1023/79/63)d (1126165/1/2)-(2191671/15/63)r
   hex:  80 4F FF FF 83 4F FF FF F0 62 A9 43 90 69 04 40

Primary partition(2)
   type: 131(0x83)(Linux ext2 filesystem)
   size: 532493mb #s(1090545808) s(1135463554-2226009361)
   chs:  (1023/79/63)-(1023/79/63)d (1126451/15/2)-(2208342/9/59)r
   hex:  00 4F FF FF 83 4F FF FF 82 CC AD 43 90 68 00 41

Primary partition(3)
   type: 130(0x82)(Linux swap or Solaris/x86)
   size: 525033mb #s(1075267992) s(1152283928-2227551919)
   chs:  (1023/79/63)-(1023/79/63)d (1143138/13/6)-(2209872/14/62)r
   hex:  00 4F FF FF 82 4F FF FF 18 75 AE 44 98 49 17 40

Primary partition(4)
   type: 000(0x00)(unused)
   size: 524296mb #s(1073758208) s(1073758208-2147516415)
   chs:  (64/64/0)-(64/64/0)d (1065236/5/6)-(2130472/10/10)r
   hex:  00 40 00 40 00 40 00 40 00 40 00 40 00 40 00 40


Begin scan...
Possible partition(Linux ext2), size(141mb), offset(29996mb)
   type: 131(0x83)(Linux ext2 filesystem)
   size: 141mb #s(289168) s(61432560-61721727)
   chs:  (1023/15/63)-(1023/15/63)d (60945/0/1)-(61231/13/61)r
   hex:  00 0F FF FF 83 0F FF FF F0 62 A9 03 90 69 04 00

Possible partition(Linux ext2), size(8205mb), offset(30137mb)
   type: 131(0x83)(Linux ext2 filesystem)
   size: 8205mb #s(16803984) s(61721730-78525713)
   chs:  (1023/15/63)-(1023/15/63)d (61231/14/1)-(77902/7/57)r
   hex:  00 0F FF FF 83 0F FF FF 82 CC AD 03 90 68 00 01

Possible partition(Linux swap), size(745mb), offset(38342mb)
   type: 130(0x82)(Linux swap or Solaris/x86)
   size: 745mb #s(1526168) s(78525720-80051887)
   chs:  (1023/15/63)-(1023/15/63)d (77902/8/1)-(79416/8/56)r
   hex:  00 0F FF FF 82 0F FF FF 18 35 AE 04 98 49 17 00


* Warning: short read near sector(80063235), 64512 bytes instead of 66048. Skipping...
End scan.

Checking partitions...
Partition(Linux ext2 filesystem): primary 
Partition(Linux ext2 filesystem): primary 
Partition(Linux swap or Solaris/x86): primary 
Ok.

Guessed primary partition table:
Primary partition(1)
   type: 131(0x83)(Linux ext2 filesystem)
   size: 141mb #s(289168) s(61432560-61721727)
   chs:  (1023/15/63)-(1023/15/63)d (60945/0/1)-(61231/13/61)r
   hex:  00 0F FF FF 83 0F FF FF F0 62 A9 03 90 69 04 00

Primary partition(2)
   type: 131(0x83)(Linux ext2 filesystem)
   size: 8205mb #s(16803984) s(61721730-78525713)
   chs:  (1023/15/63)-(1023/15/63)d (61231/14/1)-(77902/7/57)r
   hex:  00 0F FF FF 83 0F FF FF 82 CC AD 03 90 68 00 01

Primary partition(3)
   type: 130(0x82)(Linux swap or Solaris/x86)
   size: 745mb #s(1526168) s(78525720-80051887)
   chs:  (1023/15/63)-(1023/15/63)d (77902/8/1)-(79416/8/56)r
   hex:  00 0F FF FF 82 0F FF FF 18 35 AE 04 98 49 17 00

Primary partition(4)
   type: 000(0x00)(unused)
   size: 0mb #s(0) s(0-0)
   chs:  (0/0/0)-(0/0/0)d (0/0/0)-(0/0/0)r
   hex:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Edit this table (y,n) : 
Activate which partition (1..4, q to quit) : Activate which partition (1..4, q to quit) : Activate which partition (1..4, q to quit) : Write this partition table (y,n) : 

* Warning: partition table written, you should reboot now.
Die Groesse stimmt soweit, und damit sollten ja eigentlich auch die Sektorenanzahl stimmen. Das Problem ist nur, dass nach einem reboot die Partitionstabelle wiederum leer ist.
Man muesste doch auch irgendwie mit dd oder sonstigen Hilfsmitteln die Partitionen auslesen koennen und in eine Datei auf einem anderen System speichern koennen. Von dort koennte ich dann ja eigentlich wieder mit loopback-devices arbeiten und so an die Daten kommen. Stimmt doch oder?
Aber wie rechne ich die Sektorenangaben in das dd format um und wie sieht da dann der komplette Aufruf auf?

Vielen Dank
t2x

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 23.06.2004 03:39:57

Ist aufgrund der Uhrzeit jetzt die Kurzversion: man dd -> suche nach "skip". Blocksize ist 512 Bytes (bs=512).

Damit sollte die erste Partition, die gpart anzeigt so auszulesen sein:

Code: Alles auswählen

dd if=/dev/hdb of=partition1.img bs=512 skip=1135174383 count=1074030992 
skip ist der erste Sektor der Partition - 1 (soviele sollen übersprungen werden) und count ist gleich (hintere Grenze der Partition - vordere Grenze) + 1.

Bitte selbst überprüfen, nicht dass hinterher ein Sektor fehlt... ;-)

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

Antworten