linux-l: missing /home

Jens Dreger jens.dreger at physik.fu-berlin.de
Fr Mär 31 23:29:19 CEST 2000


On Fri, Mar 31, 2000 at 06:10:34PM +0000, Mario Thaten wrote:
> Reply to mail by Jens Dreger of Fri, 31 Mar 2000 01:58:41 +0200:
> > Vielleicht beim naechsten Mal lieber die Partitionstabelle persoenlich
> > abspeichern: dd if=/dev/hda of=hda-table count=1 bs=512
> 
> Hi Jens,
> 
> Das ist doch der MBR, oder?

yup !

> Nicht die Partitionstabelle.

Doch doch. _auch_ die Partitionstabelle.  Diese faegt bei Byte 446 im
MBR an und ist 64 Bytes lang. Der Bootcode vereinnahmt die ersten 446
Bytes, am Ende stehen noch 2 Bytes Signatur (0xAA55), macht 512 Bytes.

Daher hatte ich meine Partitionstabelle zerstoert, als ich einen
Bootloader auf die fiese Tour plattmachen wollte und einfach
  dd if=/dev/zero of=/dev/hda bs=512 count=1
geschrieben hatte. Es haette also
  dd if=/dev/zero of=/dev/hda bs=446 count=1
heissen muessen.

Der Befehl, um _nur_ die Partitionstabelle abzuspeichern lautet demnach
auch
  dd if=/dev/hda of=part.dat bs=1 count=64 skip=446

Die Partitions-Tabelle besteht aus 4 Eintraegen der Form
 UBYTE boot_flag
 UBYTE start_head,start_sect,start_cyl
 UBYTE system_type
 UBYTE end_head,end_sect,end_cyl
 UINT  start_secto, number_of_sectors

Hier ist ein mini-"fdisk -l". Vielleicht was fuer's
Shell-Skript-Archiv ?

-----------8<----------------------------------------
#!/bin/sh 
# parttab.sh: mini-"fdisk -l" by Jens Dreger
# usage: parttab.sh /dev/hd{...}

cat<<EOF
    |    Start  |   |    End    |   Start | Number of
Boot| HD Sec Cyl|Sys| HD Sec Cyl|  Sector |  Sectors
----+-----------+---+-----------+---------+-----------
EOF
dd if=$1 bs=1 count=64 skip=446 2>/dev/null | \
hexdump -e '/1 " %02x |" 3/1 "%03d " /1 "|%3x|" 3/1 "%03d " 2/4 "| %8u" "\n"'
------------------------8<----------------------------

Ausgabe ist z.B.:

    |    Start  |   |    End    |   Start | Number of
Boot| HD Sec Cyl|Sys| HD Sec Cyl|  Sector |  Sectors
----+-----------+---+-----------+---------+-----------
 80 |000 193 003|  c|254 255 253| 12386115|  4032315
 00 |000 193 254| 83|254 255 255| 16418430| 16595145
 00 |000 000 000|  0|000 000 000|        0|        0
 00 |001 001 000| 85|254 255 002|       63| 12386052

Natuerlich bekommt man auf diese Weise nur die primaeren und die erste
erweiterte Partition.

Gruss,

Jens.



Mehr Informationen über die Mailingliste linux-l