Re: Bootsector nach Partitionierung herstellen

Thomas Moritz <[email protected]> Tue, 5 Apr 2011 19:48:47 +0200
Newsgroups gmane.linux.suse.programming
Organization -
Message-ID <[email protected]>
Am Dienstag, 5. April 2011 11:31:21 schrieb David Haller:

Hallo David,

> Am Tue, 05 Apr 2011, Thomas Moritz schrieb:
> >Am Dienstag, 5. April 2011 07:38:13 schrieb David Haller:
> >> Das was du angeh=E4ngt hast ist jew. ein generischer BR (der die
> >> aktive Partition startet, jedenfalls kein Grub), der 2te Sektor
> >> ist der zweite Teil eines Grubs.
> >
> >Ich klemme nun noch einmal 1024 hinten ran. Diese sind von der
> >jetzt funktionierenden CF-Card. Hier kann ich ausser der
> >Partitionstabelle keinen Unterschied zu dem gestrigen Versuch
> >feststellen. Nur eben, dass diese CF jetzt rennt!
>=20
> Naja, kommt halt drauf an, was im ersten Sektor der aktiven
> Partition steckt ;) Ist jetzt ne Linux-Partition:

Ich zitiere mal Deine letzte Mail:
Ab 0x01be beginnt die Partitionstabelle, hier ab dem 80 20 21 00 83
wobei das 83 der FS-Typ der ersten Partition ist, die bei Sektor 3F
(=3D63) beginnt.

OK, also auch eine Linux-Partition. Alles andere haette mich auch=20
verwundert! Ich hatte ja die zweite CF-Card neu Partitioniert und=20
=46ormatiert:
1.Partition	1GB	Linux/ext4
2.Partition	Rest	Windows/mkfs.msdos -F32

> $ od -Ax -tx1z /dev/shm/dh/4gb_sdd.img | less
> 0001be                                           80 20=20
> >........=C7f?U=CF=C9. < 0001c0 21 00 83 0d 0a 83 00 08 00 00 00 18 20
> 00        >!........... ...< ^^ FS-Typ Byte
>=20
> und ne FAT32-LBA Partition:
>=20
> 0001ce                                           00 0d=20
> >!........... ...< 0001d0 0b 83 0c fa 54 e6 00 20 20 00 00 40 57
> 00        >...=FAT=E6.  ..@W...< ^^ FS-Typ Byte
>=20
> Der generische/DOS BR interessiert sich genau gar nicht f=FCr den
> Folgesektor mit dem Grub-Rest, der kn=FCppelt einfach den ersten
> Sektor der aktiven Partition in den Speicher und startet den darin
> befindlichen Code. Hat man z.B. GRUB in die Linux-Root-Partition
> installiert, dann startet eben der.

Da ich von der "lauffaehigen" Karte (grub in Linux-Root-Partition) die=20
ersten 446B nach /dev/sdd1 (neue CF) kopiert hatte, sollte doch grub=20
gestartet werden koennen. Den MBR (446B) hatte ich auch nach=20
/dev/sdd (neue CF) kopiert!

Was war nun eigentlich an meiner beschriebenen Vorgehensweise falsch?

*lauffaehige CF-Card (nicht eingebunden)
=2DMBR  		#dd if=3D/dev/sdd of=3D/hier/mbr.img bs=3D446 count=3D1
=2DBootsector /	#dd if=3D/dev/sdd1 of=3D/hier/bsl.img bs=3D446 count=3D1
*CF-Card einbinden
=2DDaten		#rsync -avxXHAS /media/disk/ /hier/hin/

**neue CF-Card (nicht eingebunden)
=2Dfdisk (Partitionierung s.oben)
=2Dmkfs.ext4 /dev/sdd1
=2Dmkfs.msdos -F32 /dev/sdd2
=2Ddd if=3D/hier/mbr.img of=3D/dev/sdd bs=3D446 count=3D1
=2Ddd if=3D/hier/bsl.img of=3D/dev/sdd1 bs=3D446 count=3D1
**/dev/sdd1 einbinden
=2Drsync -avxXHAS /hier/hin/ /media/disk/

Beide Partitionen liessen sich problemlos mounten!
Warum wurde grub beim Systemstart im PC104 nicht gefunden?
DISK BOOT FAILURE...

Ich muss das Szenario noch 2x auf verschieden-grossen CFs durchfuehren=20
und werde dabei den HexDump beobachten! Bin gespannt, wann genau da=20
was schief laeuft.

Vielen Dank fuer die umfangreichen Infos!

MfG Th. Moritz