
Hintergrund
Ich habe eine sehr alte PATA-Festplatte (1998 Fujitsu 3,2 GB) an einen sehr alten Computer (Pentium 2 / Asus P2L97 Motherboard) mit einer bootfähigen Partition (Windows 95 und Fat32-Dateisystem) angeschlossen. Wie erwartet stirbt diese Festplatte mit vielenSCHLAUWarnungen.
Mein Ziel ist nicht, die Daten wiederherzustellen, sondern die Kopie der alten Festplatte auf die neue Festplatte (2003 PATA WD 80 GB) zu übertragen, um sie erneut booten zu können.
Ich habe die gesamte alte Festplatte gerettet mit ddrescue
(Booten vonSystemrettung)in eine Image-Datei (rescue.img auf USB-Stick), nachdem die fehlerhafte Festplatte an einen neueren Computer angeschlossen wurde, wie imddrescue-Handbuch. Wenn ich versuche, das Image auf einer neueren Festplatte wiederherzustellen, ist der MBR leider beschädigt und ich kann nicht booten.
Was ich im Einzelnen gemacht habe:
[root@sysrescue]# ddrescue /dev/sda /mnt/usb/SAVEDD/rescue.img /mnt/usb/SAVEDD/rescue.mapfile
GNU ddrescue 1.26
Press Ctrl-C to interrupt
ipos: 305664 B, non-trimmed: 0 B, current rate: 0 B/s
opos: 305664 B, non-scraped: 1024 B, average rate: 184 kB/s
non-tried: 0 B, bad-sector: 154624 B, error rate: 1024 B/s
rescued: 3243 MB, bad areas: 2, run time: 4h 53m 15s
pct rescued: 99.99%, read errors: 305, remaining time: n/a
Finished
VollständigRettungsprotokoll(7Mo) undRettungskartendatei
Die Bilddatei sieht gut aus mitfdisk
[root@sysrescue]# fdisk -l copy_rescue.img
Disk copy_rescue.img: 3.02 GB, 3243663360 bytes, 6335280 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x5902d932
Device Boot Start End Sectors Size Id Type
copy_rescue.img1 * 63 6330239 6330177 3G b W95 FAT32
zeigt aber file
beschädigten MBR und beschädigte Partitionstabelle.
[root@sysrescue]# file -s copy_rescue.img
copy_rescue.img: DOS/MBR boot sector MS-MBR 9M english at offset 0x10+0xFF "Invalid partition table" at offset 0x127 "Error loading operating system" at offset 0x146 "Missing operating system", disk signature 0x5902d932, created with driveID 0x80; partition 1 : ID=0xb, active, start-CHS (0x0, 1, 1), end-CHS (0x310, 127, 63), startsector 63, 6330177 sectors
Ich habe versucht, das Image nach der Reinigung auf eine "neuere", größere und leistungsfähige SATA-Festplatte (2003 WD 80GB) zu kopieren
dd if=/dev/zero of=/dev/sda
dd: writing to '/dev/sda': no space left on device
80026361856 bytes (80 GB, 75GiB) copied
ddrescue -f /mnt/usb/SAVEDD/rescue.img /dev/sda restore.mapfile
VollständigMap-Datei wiederherstellen
Die resultierende Partitionierung ist seltsam, scheint auf /dev/sda gut zu sein
[root@sysrescue]# fdisk -l /dev/sda
Disk /dev/sda: 74.53 GB, 80026361856 bytes, 156301488 sectors
Disk model: WDC WD800BB-00CA
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x5902d932
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 63 6330239 6330177 3G b W95 FAT32
aber völlig falsch an /dev/sda1
und die Festplatte wird vom BIOS des alten Computers nicht einmal erkannt.
Meine Frage ist, warum ich beim Wiederherstellen eine beschädigte Partitionstabelle erhalte. Wie kann ich mit der neueren Festplatte booten? Was wird mir angezeigt, wenn ich eine sehr alte bootfähige Win95-Festplatte mit 3 GB (mit dd oder ddrescue) auf eine „neuere“ 80-GB-Festplatte kopiere?
Ich habe erfolglos versucht, die Partitionstabelle neu zu erstellen testdisk
, bin mir aber nicht sicher, ob das der richtige Ansatz ist. Außerdem testdisk
gibt es eine Warnung bezüglich eines Fehlers in der Festplattenkopf-/Zylindergeometrie.
Sollte ich in die Richtung Testdisk und MBR/Partitionstabellenreparatur gehen oder handelt es sich um ein Kopier-/Ddrescue-Problem?
EDIT 1:
Altes BIOS erkennt neue Festplatte
Ich habe das Problem gelöst, dass das alte BIOS die neue Festplatte nicht erkannt hat, indem ich die Kapazität der neuen Festplatte reduziert habe (mit Laufwerksüberlagerung) und das Image der alten Festplatte erneut auf die neue Festplatte kopiert habe.
ddrescue -f /mnt/usb/SAVEDD/rescue.img /dev/sda restore.mapfile
fdisk -l /dev/sda
Disk /dev/sda: 33.8 GB, 33820284928 bytes
128 heads, 63 sectors/track, 8191 cylinders, total 66055244 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x5902d932
Device Boot Start End Blocks Id System
/dev/sda1 * 63 6330239 3165088+ b W95 FAT32
aber einige pbm bestehen weiter:
- Das Betriebssystem bootet nichtauch nach einer Tischteilerbefestigung mit
Testdisk
Testdisk
einige CHS-Fehlpaarungen erkennenWarning: number of heads/cylinder mismatches 128 (FAT) != 255 (HD)
Hierist das vollständige testdisk.log
Wie bootet man das Betriebssystem nach einer ddrescue
Kopie?
EDIT 2: Altes BIOS findet Windows 95
Ich habe den MBR der neuen Festplatte wie folgt neu aufgebaut
- Booten mit DOS-Diskette
A: fdisk /mbr
Jetzt habe ich eineWindows 95 bootetaber Absturz ohne Fehlermeldung (Herunterfahren des Rechners).
Ich habe versucht zu starten„Schritt-für-Schritt-Bestätigung“und der Bootvorgang schlägt fehl bei
WIN [Enter=Y, Esc=N]?Y
Load all Windows drivers [Enter=Y, Esc=N]?Y
C:\WINDOWS\system\vmm32.vxd: Missing/unable to load.
Press any key to continue...
VMM32 scheint eine kritische Systemdatei zu sein, aber ich kann das System trotzdem im Eingabeaufforderungsmodus booten und es wahrscheinlich reparieren, da sich diese Datei imguter Platz.
C:\WINDOWS\SYSTEM>dir vmm32.vxd /s
Volume in drive C has no label
Volume Serial Number is 232E-1BD3
Directory of C:\WINDOWS\SYSTEM
VMM32 VXD 709.556 16.07.98 20:39
1 file(s) 709.556 bytes
Total files listed:
1 file(s) 709.556 bytes
0 dir(s) 2.849.947.648 bytes free
C:\WINDOWS\SYSTEM>
Antwort1
Meine Frage lautet: Warum erhalte ich beim Wiederherstellen eine beschädigte Partitionstabelle?
Fdisk teilt Ihnen mit, dass Ihre Partition den Typ „b“ hat.
Wenn Sie dies nachschlagen in https://en.wikipedia.org/wiki/Partitionstyp
Das Beschreibungsfeld bedeutet „FAT32 mit CHS-Adressierung“
Diese Partitionen müssen mithilfe eines Tripels aus Zylinder, Kopf und Sektor angesprochen werden. Als Ihre Festplatte in Ihrem P2L97-Rechner gemountet war, enthielt Ihr BIOS einen Parametersatz mit maximalen C-, H- und S-Werten für die gesamte Festplatte.
Wenn sich dieser Parametersatz ändert, verweist jede Anforderung für einen einzelnen Sektor basierend auf der c, h, s-Adressierung auf einen anderen Sektor.
Da Sie möchten, dass die neue Festplatte auf Ihrem alten Rechner läuft, müssen Sie Ihre Festplatte vermutlich auf dem alten Rechner duplizieren und dabei für beide Festplatten die gleiche CHS-Einstellung verwenden. Darüber hinaus sollte die CHS-Einstellung der gleichen sein, die beim Entfernen Ihrer langsam sterbenden Festplatte festgelegt wurde.
Das Problem ist, dass ein modernes Live-Linux auf Ihrem alten Rechner möglicherweise nicht läuft und eine alte Linux-Version kein ddrescue enthält. Sie könnten aber stattdessen dd verwenden, indem Sie es auf die Bereiche beschränken, die wiederhergestellt werden können. Auf diese Weise belasten Sie die Festplatte nicht und bleiben nicht in dem beschädigten Bereich gefangen, wie in der ddrescue-Map-Datei dargestellt.
Antwort2
Nach ein paar Tagen Ärger habe ich mein Problem wie folgt gelöst:
- BIOS der Hauptplatine aktualisieren
- Reduzieren Sie die Kapazität der neuen Festplatte mitLaufwerksüberlagerungum die Größe beider Festplatten anzupassen (aufgrund eines bestimmten Fehlers in der neuesten 'finalen offiziellen' BIOS-Version meines Motherboardswie erklärt von user3840170)
- Erstellen Sie eine Kopie des alten HDD-Images auf die neue HDD mit
ddrescue
(siehe oben) - Reparieren Sie den MBR mit
fdisk /mbr
(Booten von einem DOSWindows 95Diskette) - Booten Sie das System im Eingabeaufforderungsmodus (drücken Sie F8 nachPOST)
- Dateisystem reparieren mit
scandisk
(CHKDSK geht nicht)
Was hat nicht funktioniert :
- Fester MBR (Master Boot Record) mit speziellen Tools wieRanish Partition Manager
- Feste CHS-Werte (Zylinder, Kopf und Sektor) im BIOS
- Feste HDD-Modus-Erkennung im BIOS (LBA/groß/CHS).
- Installieren Sie die Systemdatei mit
sys c:
wie vorgeschlagen neuTestDisk-Handbuch(Seite 35) - Vertrauen in die Robustheit von Disketten im Jahr 2022
Vielen Dank an Sie alle und die Leute bei retrocomputing.stackexchange.com