Как снова загрузить Windows 95 после побайтового копирования жесткого диска?

Как снова загрузить Windows 95 после побайтового копирования жесткого диска?

Фон

У меня есть очень старый PATA HDD (1998 Fujitsu 3.2GB), подключенный к очень старому компьютеру (Pentium 2 / материнская плата Asus P2L97) с одним загрузочным разделом (Windows 95 и файловая система Fat32). Как и ожидалось, этот HDD умирает с большим количествомУМНЫЙоповещения.

Моя цель — не восстановить данные, а перенести копию старого жесткого диска на новый жесткий диск (2003 PATA WD 80 ГБ) для повторной загрузки.

Я сохранил весь старый HDD с помощью ddrescue(загрузка сsystemrescue)в файл образа (rescue.img на USB-накопителе) после подключения неисправного жесткого диска к новому компьютеру, как описано вруководство по ddrescue. К сожалению, когда я пытаюсь восстановить образ на новом жестком диске, MBR повреждается, и я не могу загрузиться.

Что я сделал подробно:

[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

Полныйжурнал спасения(7Мо) ифайл карты спасения

Файл изображения выглядит нормально сfdisk

[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

но fileпоказывает поврежденную MBR и таблицу разделов.

[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

Я попробовал скопировать образ на «более новый», больший и исправный жесткий диск SATA (2003 WD 80 ГБ) после очистки

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

Полныйвосстановить файл карты

Получившееся разделение странное, на /dev/sda оно вроде нормальное

[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

но это совершенно неверно /dev/sda1, и жесткий диск даже не распознается BIOS старого компьютера.

Мой вопрос: почему при восстановлении я получаю поврежденную таблицу разделов? Как мне загрузиться с нового HDD? Чего мне следует ожидать, когда я копирую очень старый загрузочный Win95 3GB HDD (с dd или ddrescue) на "новый" 80GB HDD?

Я пытался перестроить таблицу разделов с помощью testdiskбезуспешно, но я не уверен, что это правильный подход. Кроме того, testdiskпредупреждение об ошибке в головках/геометрии цилиндров HDD.

Стоит ли мне копать в направлении testdisk и восстановления MBR/таблицы разделов или это проблема копирования/ddrescue?

ПРАВКА 1:
Старый BIOS обнаруживает новый жесткий диск
Я решил проблему с тем, что старый BIOS не определял новый жесткий диск, уменьшив емкость нового жесткого диска (с помощью наложения диска) и снова скопировав образ старого жесткого диска на новый жесткий диск.

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

но некоторые pbm сохраняются:

  • ОС не загружаетсядаже после фиксации перегородки стола с помощьюTestdisk
  • Testdiskобнаружить некоторое несоответствие CHSWarning: number of heads/cylinder mismatches 128 (FAT) != 255 (HD)

Здесьэто полный testdisk.log

Как загрузить ОС после ddrescueкопирования?

EDIT 2: Старый BIOS находит Windows 95

Я восстановил MBR нового жесткого диска следующим образом:

  • загрузка с дискеты DOS
  • A: fdisk /mbr

Теперь у меня естьзагрузка windows 95но происходит сбой без сообщения об ошибке (выключение компьютера).

Я пытался запустить«пошаговое подтверждение»и процесс загрузки завершается неудачей

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, похоже, является критически важным системным файлом, но я все равно могу загрузить систему в режиме командной строки и, вероятно, восстановить его, поскольку этот файл находится вхорошее место.

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>

решение1

У меня вопрос: почему при восстановлении таблица разделов оказывается поврежденной?

Fdisk сообщит вам, что ваш раздел имеет тип «b».

Если вы посмотрите это в https://en.wikipedia.org/wiki/Тип_раздела

поле описания обозначает «FAT32 с адресацией CHS»

Эти разделы должны быть адресованы с помощью тройки, состоящей из цилиндра, головки и сектора. Когда ваш диск был смонтирован в вашей машине P2L97, ваш BIOS содержал набор параметров максимального значения C, H и S для всего диска.

Если этот набор параметров изменится, любой запрос отдельного сектора на основе адресации c,h,s будет указывать на другой сектор.

Поскольку вы хотите, чтобы новый диск работал на старой машине, я полагаю, вам нужно продублировать ваш диск на старой машине, используя ту же настройку CHS для обоих дисков. Более того, настройка CHS должна быть равна той, которая была установлена ​​при извлечении вашего медленно умирающего диска.

Проблема в том, что современный live linux может не работать на вашей старой машине, а старая версия linux не будет содержать ddrescue. Но вы можете использовать dd вместо этого, ограничив его областями, которые могут быть восстановлены. Таким образом, вы не нагружаете диск и не попадете в эту поврежденную область, как показано в файле карты ddrescue.

решение2

После нескольких дней мучений я решил свою проблему следующим образом:

  1. Обновите BIOS материнской платы
  2. Уменьшите емкость нового жесткого диска с помощьюналожение дискачтобы соответствовать размеру обоих жестких дисков (из-за определенной ошибки в последней «финальной официальной» версии BIOS моей материнской платы)как объяснил пользователь 3840170) Наложение диска
  3. Сделайте копию старого образа жесткого диска на новый жесткий диск с помощью ddrescue(см. выше)
  4. Восстановите MBR с помощью fdisk /mbr(загрузка из DOS)окна 95дискета)
  5. Загрузите систему в режиме командной строки (нажмите F8 послеПОЧТА)
  6. Восстановить файловую систему с помощью scandisk(CHKDSK не может)ЧКДСК

Что НЕ сработало:

  • Исправлена ​​MBR (главная загрузочная запись) с помощью специальных инструментов, таких какМенеджер разделов Ranish
  • Исправлены значения CHS (цилиндр, головка и сектор) в BIOS
  • Исправлено определение режима жесткого диска в BIOS (LBA/large/CHS)
  • Переустановите системный файл, sys c:как предложеноРуководство по TestDisk(стр. 35)
  • Доверие к надежности дискет в 2022 году

Спасибо всем вам и ребятам из retrocomputing.stackexchange.com

Связанный контент