바이트 단위로 HDD를 복사한 후 Windows 95로 다시 부팅하는 방법은 무엇입니까?

바이트 단위로 HDD를 복사한 후 Windows 95로 다시 부팅하는 방법은 무엇입니까?

배경

나는 아주 오래된 PATA HDD(1998 Fujitsu 3.2GB)를 하나의 부팅 가능한 파티션(Windows 95 및 Fat32 파일 시스템)이 있는 아주 오래된 컴퓨터(Pentium 2/Asus P2L97 마더보드)에 연결했습니다. 예상대로 이 HDD는 많은 문제로 죽습니다.똑똑한경고.

내 목표는 데이터를 복구하는 것이 아니라 기존 HDD의 복사본을 새 HDD(2003 PATA WD 80GB)로 가져와 다시 부팅하는 것입니다.

나는 이전 HDD 전체를 다음 ddrescue으로 부팅하여 저장했습니다.시스템구조)실패한 HDD를 새 컴퓨터에 연결한 후 이미지 파일(USB 드라이브의 rescue.img)에 설명합니다.ddrescue 매뉴얼. 불행하게도 최신 HDD에 이미지를 복원하려고 하면 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 HDD(2003 WD 80GB)에 이미지를 복사해 보았습니다.

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/sda1HDD는 이전 컴퓨터의 BIOS에서도 인식되지 않습니다.

제 질문은 복원할 때 파티션 테이블이 손상된 이유는 무엇입니까? 최신 HDD로 어떻게 부팅할 수 있습니까?입니다. 아주 오래된 부팅 Win95 3GB HDD(dd 또는 ddrescue 포함)를 "최신" 80GB HDD에 복사하면 어떻게 됩니까?

성공하지 못한 채 파티션 테이블을 재구축하려고 했지만 testdisk이것이 올바른 접근 방식인지 잘 모르겠습니다. testdiskHDD 헤드/실린더 구조의 실수에 대한 추가 경고입니다.

테스트 디스크 및 MBR/파티션 테이블 복구 방향을 조사해야 합니까, 아니면 복사/ddrescue 문제입니까?

편집 1:
이전 BIOS가 새 HDD를 감지합니다.
새 HDD의 용량을 줄이고(드라이브 오버레이 포함) 기존 HDD의 이미지를 새 HDD에 다시 복사하여 새 HDD를 감지하지 못하는 기존 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은 지속됩니다.

  • OS가 부팅되지 않습니다테이블 파티션을 수정한 후에도Testdisk
  • Testdisk일부 CHS 불일치 감지Warning: number of heads/cylinder mismatches 128 (FAT) != 255 (HD)

여기완전한 testdisk.log입니다.

복사 후 OS를 부팅하는 방법은 무엇입니까 ddrescue?

편집 2: 이전 BIOS가 Windows 95를 찾습니다.

새 HDD의 MBR을 다음과 같이 재구축했습니다.

  • DOS 플로피 디스크로 부팅
  • A: fdisk /mbr

이제 나는윈도우 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/Partition_type

설명 필드는 "CHS 주소 지정이 포함된 FAT32"를 나타냅니다.

이 파티션은 실린더, 헤드, 섹터로 구성된 트리플을 사용하여 처리해야 합니다. 디스크가 P2L97 시스템에 마운트되면 BIOS에는 전체 디스크에 대한 최대 C, H 및 S 값의 매개변수 세트가 포함되어 있습니다.

해당 매개변수 세트가 변경되면 c,h,s 주소 지정을 기반으로 하는 개별 섹터에 대한 요청은 다른 섹터를 가리킵니다.

이전 시스템에서 새 디스크를 실행하려면 두 디스크에 대해 동일한 CHS 설정을 사용하여 이전 시스템에 디스크를 복제해야 할 것 같습니다. 또한 CHS 설정은 천천히 죽어가는 디스크를 제거할 때 설정한 것과 동일해야 합니다.

문제는 최신 라이브 Linux가 이전 시스템에서 실행되지 않을 수 있고 이전 Linux 버전에는 ddrescue가 포함되어 있지 않다는 것입니다. 하지만 dd를 복구할 수 있는 영역으로 제한하여 대신 사용할 수 있습니다. 이렇게 하면 디스크에 스트레스를 주지 않고 ddrescue 맵 파일에 표시된 것처럼 손상된 영역에 갇히지 않습니다.

답변2

며칠간의 고민 끝에 다음과 같이 문제를 해결했습니다.

  1. 마더보드 BIOS 업데이트
  2. 새 HDD의 용량을 줄이세요.드라이브 오버레이두 하드 디스크의 크기를 일치시키려면(내 마더보드의 최신 '최종 공식' BIOS 버전의 특정 버그로 인해)user3840170이 설명하는 것처럼) 드라이브 오버레이
  3. 다음을 사용하여 기존 HDD 이미지를 새 HDD에 복사합니다 ddrescue(위 참조).
  4. MBR을 복구하십시오 fdisk /mbr(DOS에서 부팅).윈도우 95기운 없는)
  5. 명령 프롬프트 모드로 시스템을 부팅합니다(다음에 F8을 누릅니다).우편)
  6. 파일 시스템 복구 scandisk(CHKDSK는 불가능)CHKDSK

작동하지 않은 것:

  • 다음과 같은 특정 도구를 사용하여 MBR(마스터 부트 레코드)을 수정했습니다.Ranish 파티션 관리자
  • BIOS의 CHS(실린더, 헤드 및 섹터) 값 수정
  • BIOS(LBA/대형/CHS)에서 HDD 모드 감지 수정
  • sys c:제안한 것과 같은 시스템 파일을 다시 설치하십시오 .테스트디스크 매뉴얼(35쪽)
  • 2022년 플로피 디스크의 견고함을 믿으세요

여러분과 Retrocomputing.stackexchange.com의 모든 분들께 감사드립니다.

관련 정보