Eine NTFS-Partition verfügt zu Beginn über einen BIOS-Parameterblock, in dem ein Feld (ein DWORD bei Offset 0x1C, "Anzahl ausgeblendeter Sektoren") angibt, wo sich die Festplatte befindet.
Sie müssen entweder (a) die Partition auf genau demselben Sektor auf der Festplatte wiederherstellen oder (b) dieses Feld patchen (Nummer in Little-Endian-Stil schreiben), wenn Sie von dort booten möchten.
Um beispielsweise anzugeben, dass eine Partition in Sektor 63 geladen ist (Standardeinstellung in XP), verwenden Sie:
echo 63 | gawk '' | dd bs=1 count=4 seek=28 of=/dev/sda1
Wo /dev/sda1
ist die betreffende Partition.
Sie können fdisk
aktuelle Partitionen anzeigen:
# fdisk -l /dev/sda ... Device Boot Start End Blocks Id System /dev/sda1 * 321300 192089204 95883952+ 7 HPFS/NTFS/exFAT /dev/sda2 192089210 408998834 108454812+ 7 HPFS/NTFS/exFAT /dev/sda3 409001982 625141759 108069889 5 Extended /dev/sda4 63 321299 160618+ 83 Linux ... # dd bs=1 count=4 skip=28 if=/dev/sda1 | hd ... 00000000 14 e7 04 00 ...
In diesem Beispiel habe ich die NTFS-Partition / dev / sda1 (mit Win Vista) im Sektor 321300 (0x0004e714).