장 – 3
디스크 및 OS에 대한 논리적 접근
하드 디스크는 자체적으로 하드웨어를 실행할 수 없으며 작동을 실행하려면 BIOS(기본 입출력 시스템)와 DOS(또는 운영 체제)라는 두 가지 기본 소프트웨어가 필요합니다. 디스크 운영 체제는 컴퓨터와 하드 디스크의 하드웨어와 직접 통신하지 않지만 그 사이에 BIOS가 필요합니다. 이것이 BIOS가 컴퓨터에서 중요한 역할을 하는 이유입니다.
BIOS
BIOS의 기본 작업은 하드웨어 또는 컴퓨터에 연결된 장치와 DOS 사이에 표준 인터페이스를 제공하는 것입니다. 시스템 BIOS는 시스템의 하드웨어와 시스템에서 실행되는 소프트웨어 간의 가장 낮은 수준의 인터페이스입니다. 다음과 같은 하드 디스크에 대한 액세스를 제어하는 데 몇 가지 중요한 역할이 있습니다.
- BIOS 인터럽트 루틴
- 하드 디스크 감지 및 구성
- 하드 디스크 인터페이스 모드 지원
다양한 하드웨어 및 소프트웨어 제품의 상호 운용성을 보장하기 위해 시스템의 BIOS는 하드웨어의 요구 사항에 맞게 조정되고 소프트웨어가 하드웨어를 지정하도록 하는 표준 방법을 제공합니다. 이를 BIOS 서비스라고 하며 많은 운영 체제 및 응용 프로그램에서 사용됩니다. 하드 디스크에 대한 균일한 인터페이스를 제공하므로 애플리케이션이 각 유형의 하드 디스크와 개별적으로 통신하는 방법을 알 필요가 없습니다.
표준 IDE/ATA 하드 디스크는 다양한 BIOS 설정을 사용하여 BIOS에서 구성됩니다. 최신 BIOS 프로그램은 최신 IDE/ATA 디스크를 감지하여 이러한 매개변수를 결정하고 자동으로 구성할 수 있습니다. BIOS는 마더보드의 시스템 칩셋 및 시스템 I/O 버스와 함께 작동하여 하드 디스크와 함께 사용할 수 있는 인터페이스 모드 유형을 제어합니다.
INT 13H 인터페이스 및 INT 13H 확장
BIOS에 대한 기본 인터페이스는 일반적으로 INT 13H로 알려진 소프트웨어 인터럽트 13H입니다. 여기서 INT는 인터럽트를 나타내고 13H는 16진수 표기법의 숫자 19입니다.
우리는 이 책의 프로그래밍 단계에서 프로그래밍에서 인터럽트의 사용을 자세히 배우고 논의할 것입니다. Int13H 인터페이스는 BIOS에 제공할 수 있는 다양한 명령을 지원하며, BIOS는 이를 하드 디스크로 전달합니다. 인터럽트 13H에는 읽기, 쓰기, 포맷 등과 같이 디스크로 수행해야 하는 대부분의 작업이 포함됩니다.
Int13H를 사용하고 작업하려면 호출 프로그램이 하드 디스크의 특정 매개변수를 알고 디스크 액세스를 허용하는 루틴에 정확한 헤드, 실린더 및 섹터 주소를 제공해야 합니다.
BIOS는 BIOS 설정 프로그램에서 설정한 대로 하드 디스크의 지오메트리를 사용합니다. Int13H 인터페이스는 드라이브 지오메트리 사양에 대해 다음과 같이 24비트를 할당합니다.
- 실린더 번호의 경우 10비트 또는 총 1,024개의 실린더
- 헤드 번호의 경우 8비트 또는 총 256개의 헤드
- 섹터 번호의 경우 6비트 또는 총 63개 섹터
따라서 디스크에서 가능한 최대 섹터 수는
= 1024 * 256 * 63
= 16515072
여기에서 볼 수 있듯이 INT 13H 인터페이스는 섹터당 512바이트로 최대 16515072개의 섹터를 포함하는 디스크를 지원할 수 있습니다. 따라서 최대 디스크 크기는
= 16515072 * 512
= 8455716864 Bytes
~ 8.456 GB
따라서 INT 13H 인터페이스는 최대 약 8.456GB(또는 7.875GiB)의 디스크 크기를 지원할 수 있습니다.
오늘날 대부분의 컴퓨터 사용자는 8GB보다 훨씬 더 큰 용량의 하드 디스크를 사용합니다. 그래서 INT 13H 인터페이스는 마침내 현대 컴퓨터 시스템에서 그 유용성이 끝났고 더 새로운 것으로 교체되었습니다. 인터페이스는 INT 13H 확장이라고 하지만 INT 13H는 여전히 DOS 및 일부 다른 이전 운영 체제에서, 그리고 다른 호환성 목적으로 사용될 수 있습니다.
Int 13H 확장
INT 13H 인터페이스가 개발되었을 때 아무도 하드 디스크에서 8GB 크기를 기대하지 않았다는 것은 정말 흥미로운 이야기입니다. 그러나 오늘날 우리는 가정 사용자의 개인용 컴퓨터에서도 8GB 하드 디스크의 용량이 훨씬 작게 느껴질 수 있습니다.
이전 표준에는 24비트 주소 지정 정보를 사용하고 최대 8.456GB(또는 7.875GiB)의 용량을 생성하는 섹터당 512바이트로 최대 16515072개의 섹터를 포함하는 드라이브만 처리할 수 있다는 중요한 제한이 있습니다.
따라서 문제는 액세스 경로를 24비트에서 더 큰 것으로 확장하는 것이지만 기존 INT13H BIOS 인터페이스를 확장할 수 없었습니다. 이렇게 하면 많은 구형 하드웨어와 소프트웨어가 작동을 멈출 것이기 때문입니다. 그리고 실질적으로 여러분의 개발과 함께 작동하지 않는 오래된 하드웨어와 소프트웨어가 많은 컴퓨터 세계에서 존경할만한 위치를 차지할 희망은 없습니다.
따라서 Int13H를 대체하기 위해 새로운 인터페이스가 개발되었습니다. 이러한 루틴을 Int13H 확장이라고 합니다. 이 새로운 인터페이스는 주소 지정에 24비트 대신 64비트를 사용하며 최대 하드 드라이브 크기는 9.4 * 10 21바이트(9.4조 기가바이트)를 허용합니다.
우리는 이 책의 프로그래밍 섹션에서 INT 13H와 INT 13H 확장의 사용법을 배울 것입니다. 초기에 발생했던 다른 크기 제한 사항이 많이 있습니다. 널리 사용되는 논리적 및 물리적 제한 중 일부는 아래에 설명되어 있습니다.
2.1GB 제한
이 크기 제한은 실린더 수를 제공하는 CMOS RAM의 필드에 12비트만 할당하는 일부 이전 BIOS에서 관찰되었습니다. 따라서 이 숫자는 4095에 해당하는 최대 111111111111B(최대 가능한 12비트 이진수)일 수 있습니다. 이러한 방식으로 액세스할 수 있는 16개의 헤드가 있는 최대 디스크 크기는 다음과 같습니다.
= 4095 * 16 * 63 * 512 Bytes
= 2113413120 Bytes are accessible.
33.8GB 제한
이 하드 디스크 크기 장벽은 1999년 초에 발견되었습니다. 대형 디스크는 16개의 헤드, 63개의 섹터/트랙 및 16383개의 실린더를 보고합니다. 많은 BIOS는 총 용량을 16*63으로 나누어 실제 실린더 수를 계산합니다.
33.8GB보다 큰 디스크의 경우 실린더 수가 65535보다 커집니다. 이 특정 경우에 일부 Award BIOS 버전은 실린더 수가 65,535보다 큰 드라이브를 처리할 수 없습니다. 이제 BIOS가 충돌하거나 중단됩니다. 하드 디스크 매개변수는 일반적으로 16개의 헤드와 63개의 섹터를 사용하므로 문제가 발생하기 전에 약 33.8GB 또는 31.5GiB의 용량으로 작동합니다.
해결 방법은 BIOS를 업그레이드하거나 점퍼를 사용하여 디스크를 작게 표시하는 것입니다.
IDE 디스크용 ATA 사양 - 137GB 제한
이전 ATA 사양은 137GB보다 큰 디스크에 대한 액세스를 허용하지 않습니다. 실제로 섹터 번호를 지정하는 데 28비트만 사용합니다. 그러나 ATA-6은 48비트 섹터 번호로 확장자를 정의합니다.
디스크 크기의 한계는 0에서 65535까지 계산되는 최대 65536개의 실린더, 0에서 15까지 계산되는 16개의 헤드 및 1에서 255까지 계산되는 트랙당 255 섹터의 조합으로 생성되었으며, 디스크의 최대 총 용량입니다.
= 65535 * 16 * 255 Sectors
= 267386880 Sectors
= 136902082560 Bytes (Sector of 512 Bytes Each)
~ 137 GB
2 및 4 디스크 BIOS IDE 지원
오늘날 대부분의 최신 BIOS 프로그램은 하드 디스크 자동 감지를 지원하므로 BIOS가 각 하드 디스크를 조사하여 논리적 구조, 지원되는 전송 모드 및 기타 정보를 결정할 수 있습니다. BIOS에 따라 설정 시 또는 시스템이 부팅될 때마다 동적으로 수행할 수 있습니다.
시스템 BIOS는 IDE/ATA 하드 디스크에 대한 기본 지원을 제공하므로 BIOS에 시스템에 있는 하드 디스크와 이를 제어하는 방법을 알려주도록 설정할 수 있는 여러 매개변수가 있을 수 있습니다. 시스템의 각 하드 디스크에는 고유한 설정이 있으므로 기본 마스터에 대해 하나, 기본 슬레이브에 대해 하나가 설정됩니다. 그러나 SCSI 하드 디스크는 호스트 어댑터와 내장 SCSI BIOS를 통해 구성됩니다.
8GB 이상의 하드 디스크 드라이브는 기존 IDE/ATA BIOS 구조 매개변수를 사용하여 설명할 수 없으므로 동적 자동 감지는 특히 구형 컴퓨터 시스템의 경우 최신 드라이브를 설정하는 표준 방법이지만 사용자는 여전히 일부 드라이브 매개변수를 수동으로 설정하십시오.
다음은 IDE/ATA 하드 디스크를 구성하기 위한 BIOS 설정 프로그램에서 일반적으로 볼 수 있는 설정입니다. 최신 시스템에서는 가장 오래된 호환성 설정 중 일부가 더 이상 존재하지 않을 수 있습니다.
- 디스크 유형: 원래 사용자가 미리 정의된 목록에서 하드 디스크를 선택할 수 있도록 하는 데 사용되었지만 이제는 드라이브에 대한 자동 또는 수동 매개변수 설정을 제어하는 데 사용됩니다.
- 크기: 하드 디스크 드라이브의 크기(10진수 메가바이트)입니다. 실린더, 헤드 및 섹터 등과 같은 다른 매개변수에서 계산됩니다.
- 실린더: 디스크의 논리적 실린더 수입니다.
헤드: 디스크의 논리적 헤드 수입니다.
- 섹터: 디스크의 각 논리적 트랙에서 각각 512바이트의 논리적 섹터 수입니다. 일반적으로 최신 하드 디스크 드라이브에는 단일 트랙에 63개의 섹터가 있습니다.
- Write Precompensation: 훨씬 오래된 드라이브에 대해 쓰기 조정이 수행되어야 하는 실린더 번호를 지정하는 호환성 설정입니다.
- 랜딩 영역(파킹 헤드): 랜딩 영역은 드라이브가 꺼졌을 때 데이터 손실 또는 불량 섹터 생성을 방지하기 위해 BIOS에서 헤드를 파킹하는 실린더입니다. 최신 하드 디스크 드라이브는 자동으로 헤드를 고정하므로 오늘날에는 거의 필요하지 않습니다.
- 번역 모드: 504MB 이상의 하드 디스크를 지원하는 데 사용되는 BIOS 번역 모드입니다.
- 차단 모드: 디스크 전송을 블록 단위로 수행하는 BIOS의 기능을 제어합니다.
- 프로그램된 I/O(DMA) 모드: 하드 디스크와의 전송을 수행하는 데 사용되는 프로그램된 I/O 모드 또는 DMA 모드입니다.
- 32비트 전송 모드: 고성능 32비트 데이터 전송 사용을 제어합니다.
파일 시스템의 제한 사항
각 파일 시스템은 최대 볼륨 크기, 파일 크기 및 볼륨당 파일 수를 지원합니다.
예를 들어 일반적으로 FAT16 및 FAT32 볼륨은 각각 4GB 및 32GB(일반적으로)로 제한됩니다. FAT 파일 시스템과 관련된 몇 가지 제한 사항은 다음과 같습니다.
- FAT12: 16MB보다 작은 FAT 볼륨은 FAT12로 포맷됩니다. 가장 오래된 FAT 유형이며 12비트 바이너리를 사용하여 클러스터 번호를 보유합니다. FAT12를 사용하여 포맷된 볼륨은 최대 4,086개의 클러스터를 보유할 수 있으며, 이는 2 12에서 FAT에서 사용하기 위해 일부 예약된 값을 뺀 것과 같습니다. (다음 장에서 설명하는 디스크의 논리적 구조에서 자세히 설명하겠습니다.) 따라서 FAT12는 작은 볼륨에 가장 적합합니다. 약 16MB보다 작은 플로피 디스크 및 하드 디스크 파티션에 사용됩니다.
- FAT16: FAT16은 16비트 이진수를 사용하여 클러스터 번호를 저장합니다. FAT16을 사용하는 볼륨은 최대 65,526개의 클러스터를 보유할 수 있으며, 이는 2 16에서 FAT에서 사용할 몇 가지 예약된 값을 뺀 것과 같습니다. (다음 장에서 설명하는 디스크의 논리적 구조에서 자세히 설명하겠습니다.) FAT16은 크기가 16MB에서 2,048MB 사이인 하드 디스크 볼륨에 사용됩니다. 2GB보다 큰 FAT16 볼륨은 MS-DOS, Windows 95/98/ME 및 기타 여러 운영 체제를 실행하는 컴퓨터에서 액세스할 수 없습니다. 이러한 제한은 이러한 운영 체제가 32KB보다 큰 클러스터 크기를 지원하지 않아 2GB로 제한되기 때문에 발생합니다. (이 장의 다음에 나오는 클러스터 제한을 참조하십시오).
- FAT32: 이론상 최대 FAT32 볼륨은 최대 2048GB(약 2테라바이트)입니다. FAT32는 Windows 95의 OEM SR2 릴리스와 Windows 98/ME에서 지원됩니다. FAT32는 28비트 이진 클러스터 번호를 사용합니다(32비트 중 4비트가 "예약됨"이므로 32가 아님을 기억하십시오!). 따라서 이론적으로 FAT32는 2억 6,800만 개 이상의 클러스터(실제로는 268,435,456개 클러스터)의 볼륨을 처리할 수 있으며 최대 2TB 크기의 드라이브를 지원합니다. 그러나 이렇게 하려면 FAT의 크기가 매우 커집니다. (우리는 이 장의 다음 주제에서 논의할 것입니다.)
FAT 유형의 비교는 다음 표에 나와 있습니다.
NTFS: NTFS는 New Technology File System의 약자입니다. Windows 2000/XP에서 사용됩니다. 이론상 최대 NTFS 파티션 크기는 (2 64 – 1) 클러스터입니다.
NTFS 파일 시스템에 대한 자세한 설명은 이 책의 한계를 벗어나지만 다음 표에 몇 가지 한계가 나와 있습니다.
Description
|
Limit |
Maximum file size
|
16 Exabytes – 1 KB (2 64 Bytes – 1 KB) |
Maximum volume size
|
(2 64 – 1) clusters |
Files (and Folders) per volume
|
4,294,967,295 (2 32 – 1 ) Flies and Folders |
클러스터
모든 소프트웨어가 액세스할 수 있는 할당을 위한 하드 디스크의 최소 공간 단위는 512바이트를 포함하는 섹터입니다. 각 파일이 필요한 만큼의 개별 섹터에 할당되는 디스크에 대한 할당 시스템을 가질 수 있습니다. 예를 들어, 1MB 파일은 데이터를 저장하기 위해 약 2,048개의 개별 섹터가 필요합니다.
FAT 파일 시스템의 경우 또는 대부분의 파일 시스템에서 개별 섹터가 사용되지 않는다고 말할 수 있습니다. 여기에는 몇 가지 성능상의 이유가 있습니다. DOS가 하드 디스크에 정보를 기록할 때 섹터 단위로 공간을 할당하지 않고 대신 클러스터라는 새로운 저장 단위를 사용합니다.
FAT는 수년 전에 설계되었으며 단순한 파일 시스템이며 개별 섹터를 관리할 수 없습니다. FAT가 하는 일은 섹터를 클러스터 또는 할당 단위라고 하는 더 큰 블록으로 그룹화하는 것입니다.
클러스터는 파일에 할당할 수 있는 가장 작은 디스크 공간 단위입니다. 클러스터를 할당 단위라고 하는 이유가 여기에 있습니다. 파일이 512바이트 단위로 분할되면 디스크 관리가 매우 어려울 수 있습니다.
개별적으로 관리되는 512바이트 섹터를 사용하는 20GB 디스크 볼륨에는 4,100만 개 이상의 개별 섹터가 포함되며 이 많은 정보를 추적하는 데 시간과 리소스가 많이 소요됩니다. 그러나 일부 운영 체제는 섹터별로 파일에 공간을 할당하지만 이를 제대로 수행하려면 일부 고급 인텔리전스가 필요합니다.
클러스터는 디스크에 정보를 저장할 때 DOS에서 할당하는 최소 공간입니다. 디스크에 1바이트 길이의 정보만 저장하는 경우에도 디스크 표면에 최소한 하나의 클러스터 영역이 필요합니다.
한 클러스터가 512바이트의 정보를 저장할 수 있는 경우 513바이트를 저장하려면 두 개의 클러스터가 필요합니다. 모든 파일에는 정수의 클러스터가 할당되어야 합니다. 즉, 볼륨이 4,096바이트를 포함하는 클러스터를 사용하는 경우 610바이트 파일은 하나의 클러스터를 사용하여 디스크에서 4,096바이트를 사용하지만 4,097바이트 파일은 두 개의 클러스터를 사용하므로 디스크에서 8,192바이트를 사용합니다.
이것이 클러스터 크기가 디스크의 효율적인 사용을 최대화하기 위해 매우 중요한 이유입니다. 따라서 클러스터 크기가 클수록 낭비되는 공간이 더 많다는 것을 이해할 수 있습니다.
다음 그림은 BINARY.C라는 파일의 속성을 보여주고 디스크에서 파일이 사용하는 공간의 사실을 명확히 합니다. 파일의 실제 크기는 610바이트이지만 단일 클러스터가 4,096바이트이므로 파일은 디스크에서 하나의 클러스터(4,096바이트)를 사용합니다.
클러스터는 하나 이상의 섹터로 구성될 수 있습니다. 사용 중인 디스크 유형에 따라 다릅니다. 클러스터는 하나 이상의 섹터로 구성될 수 있으므로 할당 단위로 클러스터를 사용하면 DOS가 사용된 디스크 공간과 빈 디스크 공간에 대한 정보를 보유하는 데 사용하는 파일 할당 테이블의 크기가 줄어듭니다.
클러스터 크기는 주로 디스크 볼륨의 크기에 의해 결정됩니다. 엄밀히 말하면 일반적으로 더 큰 볼륨은 더 큰 클러스터 크기를 사용합니다. 하드 디스크 볼륨의 경우 각 클러스터의 크기 범위는 4섹터(2,048바이트)에서 64섹터(32,768바이트)입니다.
플로피 디스크는 훨씬 더 작은 클러스터를 사용하며 어떤 경우에는 1섹터 크기의 클러스터를 사용합니다. 클러스터의 섹터는 연속적이므로 각 클러스터는 디스크의 연속적인 공간 블록입니다.
클러스터 크기와 파티션 또는 볼륨 크기는 직접적인 관련이 있기 때문에 성능과 디스크 활용에 중요한 영향을 미칩니다. 클러스터 크기는 디스크 볼륨이 분할될 때 결정됩니다.
특정 조건의 한계 내에서 기존 파티션의 클러스터 크기를 변경할 수 있는 Partition Magic과 같은 일부 유틸리티가 있지만 일반적인 경우 파티션 크기와 클러스터 크기가 선택되면 고정됩니다.
이전에 논의한 바와 같이 실린더 또는 트랙 번호는 0부터 시작하고 첫 번째 섹터 번호는 항상 1로 간주되며 한 가지 더 기억해야 할 점은 첫 번째 클러스터 번호는 항상 2로 간주된다는 것입니다.
클러스터 크기
클러스터는 데이터 영역에만 저장 영역을 할당하는 데 사용됩니다. FAT 및 디렉토리 영역은 클러스터 크기에 따라 할당되지 않습니다. 512바이트 섹터를 사용하는 디스크에서 512바이트 클러스터에는 1개의 섹터가 포함되고 4KB 클러스터에는 8개의 섹터가 포함됩니다.
다음 표는 다양한 디스크 형식에 대해 DOS에서 사용하는 기본 클러스터 크기를 나열합니다. 그러나 클러스터의 크기는 경우에 따라 기본 크기와 다를 수 있습니다.
Floppy Disk Drive (FDD) |
Drive Types |
Sectors/Cluster |
Total Cluster size in bytes (Sectors of 512 bytes Each) |
5.25” 360Kb FDD |
2 sectors |
1,024 |
5.25”1.2Mb FDD |
1 sector |
512 |
3.5” 720Kb FDD |
2 sectors |
1,024 |
3.5”1.44Mb FDD |
1 sector |
512 |
3.5”2.88MB FDD |
2 sectors |
1,024 |
FAT16, FAT32 및 NTFS는 파티션 크기에 따라 서로 다른 클러스터 크기를 사용하며 각 파일 시스템에는 지원할 수 있는 최대 클러스터 수가 있습니다. 클러스터 크기가 작을수록 클러스터 내의 사용되지 않은 공간을 다른 파일에서 사용할 수 없기 때문에 디스크에 정보가 더 효율적으로 저장됩니다.
다음 표는 FAT16 , FAT32 및 NTFS 파일 시스템 파티션의 기본 클러스터 크기를 보여줍니다. FAT 32는 더 큰 하드 드라이브를 훨씬 더 효율적으로 저장하고 사용할 수 있으며 32비트 FAT는 Windows 95 OSR-2 및 Windows 98/ME와만 호환됩니다. FAT 16은 MS-DOS, Windows 3.1, Windows 95 및 Windows NT에서 지원됩니다. 운영 체제 Windows 2000/XP는 NTFS 파일 시스템을 사용합니다.
참고: 여기에서 1KiB는 1 바이너리 킬로바이트에 대해 작성되었습니다. 즉, 1KiB가 1024바이트임을 의미하거나 512바이트의 두 섹터가 1KiB에 해당한다고 말할 수 있습니다.
FAT16 파티션의 크기가 커질수록 디스크 공간의 낭비도 커집니다. FAT32를 사용하면 클러스터 크기가 줄어들어 효율적인 스토리지가 제공됩니다. FAT32를 사용하면 더 큰 하드 디스크를 사용하고 클러스터 크기를 크게 줄일 수 있지만 수십 기가바이트의 거대한 하드 디스크로 인해 FAT32가 최신 시스템에 필수적이라는 점에서 FAT32를 사용할 때 중요한 성능 고려 사항이 있습니다. 오히려 FAT16과 FAT32 사이에서 더 이상 실용적인 선택을 할 수 없는 경우가 많습니다.
FAT16이 지원할 수 있는 최대 크기인 2,048MB의 파티션을 고려해 보겠습니다. 이 파티션이 FAT16에서 설정되면 각 클러스터가 32KiB의 디스크 공간을 차지하는 65,526개의 클러스터가 있는 파일 할당 테이블이 생성됩니다.
클러스터 크기가 크면 실제로 디스크 공간이 많이 낭비됩니다. 따라서 이 파티션에서 FAT32를 사용하는 것이 좋습니다. 그러면 클러스터 크기가 32KiB에서 4KiB로 줄어듭니다.
사실, 이것은 최대 30%에 이르는 엄청난 양의 디스크 여유 공간을 줄이고 잠재적으로 이전에 낭비되었던 수백 메가바이트의 디스크 공간을 확보할 수 있습니다. 일반적으로 이 상황에서 하는 것이 옳습니다. 그러나 그것의 또 다른 측면이 있습니다. 이렇게 축소된 클러스터 크기는 무료로 제공되지 않습니다.
각 클러스터가 더 작기 때문에 동일한 디스크 양을 커버하려면 더 많은 클러스터가 있어야 합니다. 따라서 이제 65,526개의 클러스터 대신 524,208개의 클러스터가 생깁니다.
또한 FAT32의 FAT 항목은 너비가 32비트(각 항목 4바이트)인 반면 FAT16의 항목은 16비트(각 항목 2바이트)입니다. 최종 결과는 FAT의 크기가 FAT16의 경우보다 FAT32의 경우 16배 더 큽니다. 다음 표에 요약되어 있습니다.
FAT 16 and FAT 32 for 2,048 MB Disk Volume |
FAT Type |
FAT16 |
FAT32 |
Cluster Size |
32 KiB |
4 KiB |
Number of FAT Entries |
65,526 |
524,208 |
Size of FAT |
131052 Bytes
(~ 128 KiB) |
2096832 Bytes
(~ 2 MiB) |
FAT32 볼륨의 크기를 2GB에서 8GB로 늘리면 FAT 크기는 약 2MiB에서 8MiB로 늘어납니다. 이것의 중요성은 FAT32 볼륨이 FAT를 유지하기 위해 디스크에서 수 메가바이트의 공간을 낭비해야 한다는 사실이 아닙니다. 이렇게 해야만 FAT 크기를 줄이는 것보다 훨씬 더 많은 공간을 절약할 수 있기 때문입니다. 진짜 문제는 FAT가 볼륨의 모든 파일에 대한 모든 클러스터 포인터를 보유하고 있다는 것입니다. FAT 크기를 크게 늘리면 시스템 속도에 부정적인 영향을 줄 수 있습니다.
이러한 이유로 File Allocation Table의 크기를 적당한 크기로 제한하는 것이 중요합니다. 사실, 대부분의 경우 클러스터 크기와 FAT 크기 사이의 균형을 찾는 문제입니다. 이에 대한 좋은 예는 FAT32 자체에서 선택한 클러스터 크기입니다.
FAT32는 약 2억 6,800만 개의 최대 클러스터를 처리할 수 있으므로 4KiB 클러스터 크기는 개념적으로 1TiB(1,024GiB) 크기의 디스크 볼륨을 지원할 수 있지만 그렇게 할 때 문제는 FAT 크기에 도달할 수 있다는 것입니다. 2억 6,800만 곱하기 항목당 4바이트에 따라 1GB.
이러한 이유로 FAT32는 최대 8GiB 크기의 볼륨에 대해 4KiB 클러스터만 사용하고, 클러스터 크기에 대해 이전에 제공된 표와 같이 더 큰 클러스터를 사용합니다. 공식적으로 선언된 FAT32에서 지원하는 최대 파티션 크기는 2,048GiB(2TiB)입니다.
하드 디스크의 논리적 구조
기본적으로 하드 디스크의 논리적 구조는 다음 5가지 논리적 용어로 나눌 수 있습니다.
- MBR(마스터 부트 레코드)
- DBR(DOS 부트 레코드)
- FAT(파일 할당 테이블)
- 루트 디렉토리
- 데이터 영역
다음 그림은 하드 디스크의 논리적 구조를 구성하는 이러한 논리적 용어의 개념적 배열을 나타냅니다.
MBR(마스터 부트 레코드) 또는 MPT(마스터 파티션 테이블)라고도 하는 이 파일에는 하드 디스크 드라이브에서 활성(또는 부팅 가능한) 파티션을 로드하고 시작하는 작은 프로그램이 포함되어 있습니다. 마스터 부트 레코드에는 시작 섹터, 종료 섹터, 파티션 크기 등과 같은 하드 디스크 드라이브의 모든 4개 기본 파티션에 대한 정보가 들어 있습니다.
MBR은 절대 섹터 0에 있거나 실린더 0, 헤드 0, 섹터 1에 있으며 디스크에 파티션이 두 개 이상 있는 경우 각 시작 부분에 확장 마스터 부트 레코드가 있습니다. 확장 파티션 볼륨(다음 그림 참조).
MBR은 DOS의 FDISK.EXE 명령을 실행하여 하드 디스크 드라이브에 생성됩니다. 그러나 동일한 작업을 수행하는 데 사용할 수 있는 다른 소프트웨어가 많이 있습니다. FDISK를 사용하면 이러한 파티션 중 하나를 활성화하거나 부팅할 수 있습니다.
이렇게 하면 시스템이 시작될 때 활성 파티션의 부트 섹터가 제어를 받을 수 있습니다. 플로피에 파티션이 없기 때문에 플로피에 MBR이 없습니다.
DOS는 단일 대문자 알파벳을 사용하여 파티션 이름을 지정하므로 DOS에서 함께 허용되는 모든 유형의 파티션의 최대 수는 드라이브 문자 C(C:)에서 드라이브 문자 Z(Z:)까지 24개입니다. . 따라서 물리적 하드 디스크 드라이브가 두 개 이상 있더라도 모든 드라이브의 총 파티션 수는 24개를 초과할 수 없습니다.
POST(Power-On Self Test) 후 BIOS는 하드 디스크에서 메모리로 MBR(마스터 부트 레코드)을 로드한 다음 실행합니다. MBR은 먼저 하드 디스크에서 활성 파티션을 확인한 다음 DOS 부트 레코드(DBR)를 메모리에 로드하고 운영 체제 부트 코드로 제어를 넘긴 다음 운영 체제 부트 레코드 코드가 나머지 운영 체제를 로드합니다. 메모리.
마스터 부트 레코드 형식
하드 디스크 드라이브를 여러 논리 드라이브로 분할할 수 있으며 일반적으로 DOS에서 고유한 드라이브 문자를 할당합니다. 한 번에 하나의 파티션만 활성(또는 부팅 가능한) 파티션으로 표시할 수 있습니다.
마스터 부트 레코드의 마스터 파티션 테이블 항목은 4개로 제한됩니다. 그러나 확장 마스터 부트 레코드의 위치는 확장 파티션 테이블이 포함된 마스터 부트 레코드의 도움으로 얻을 수 있습니다. 확장 파티션 테이블은 부트 코드가 없다는 점을 제외하고는 기본 파티션 테이블과 형식이 정확히 동일합니다.
확장 마스터 부트 레코드에서 이 446바이트 공간은 일반적으로 부트 코드용으로 예약되어 있으며 비어 있습니다. 마스터 부트 레코드의 모든 512바이트는 표에 나와 있는 대로 다음과 같이 손상됩니다.
Offset |
Description |
Size |
000H |
Initial Program Loader (IPL) , Executable Code (Provides very first booting to the Computer) |
446 Bytes |
1BEH |
First Partition Entry (See Next Table) |
16 Bytes |
1CEH |
Second Partition Entry |
16 Bytes |
1DEH |
Third Partition Entry |
16 Bytes |
1EEH |
Fourth Partition Entry |
16 Bytes |
1FEH |
Executable Marker or Bootable Sector Signature or Magic Number (AAH 55H) |
2 Bytes |
Total = 512 Bytes |
모든 확장 파티션은 확장 파티션 항목이 예약한 공간 내에 있어야 합니다. 확장 파티션 중 두 개만 사용됩니다. 첫 번째는 일반 파티션으로, 두 번째는 다른 확장 파티션이 있는 경우 사용합니다. 따라서 하나의 마스터 파티션 테이블의 도움으로 옆에 있는 다른 확장 마스터 파티션 테이블의 위치를 얻을 수 있습니다(있는 경우).
파티션 테이블 입력 형식
MBR에서 파티션의 파티션 테이블 항목 형식은 다음 표에 나와 있습니다. 모든 MBR의 모든 파티션 항목은 특정 의미를 가진 다음 바이트로 나눌 수 있습니다.
부팅 유형 표시기 바이트(1바이트): 이 바이트가 00H이면 파티션이 활성화되지 않았음을 의미하고 80H이면 파티션이 활성 파티션 또는 부팅 가능한 파티션임을 의미합니다. . 다른 바이트의 존재는 예상되지 않지만, 다른 바이트가 존재하는 경우 파티션 테이블 손상 또는 파티션 테이블의 바이러스 공격 때문일 수 있습니다.
Starting Cylinder – Head – Sector Number of the Partition (3 Bytes) : 디스크의 CHS(Cylinder, Head, Sector)를 계산할 때 Physical CHS는 다음과 같이 계산됩니다.
- 물리적 섹터는 1부터 계산됩니다.
- 물리적 헤드는 0부터 계산됩니다.
- 물리적 실린더는 0부터 계산됩니다(자세한 내용은 이전 장 참조)
- 오프셋 01H의 바이트는 파티션에 대한 16진수 시스템의 시작 헤드 번호를 나타냅니다.
오프셋 02H에서 바이트의 6개의 최하위 비트는 파티션의 시작 섹터 번호를 만들고 나머지 2비트(2개의 최상위 비트로)와 오프셋 03H에서 다른 바이트의 8비트(나머지 8비트 10비트 번호의 최하위 비트)를 만듭니다. ) 파티션의 시작 실린더 번호를 확인합니다.
Offset |
Meaning |
Size |
Description |
00H |
Boot Type Indicator Byte |
1 Byte |
If Byte is 00H, the Partition is Inactive and if Byte is 80H , The Partition is Active (or Bootable) |
01H |
Head Number of Beginning of the Partition |
1 Byte |
Starting Head number of the Partition in Hexadecimal System |
02H |
Sector and Cylinder Number of Beginning of the Partition |
2 Bytes |
6 Bits of First Byte make Starting Sector Number and Combination of remaining 2 Bits (as Two Most Significant Bits) plus 8 Bits of another Byte (Rest 8 least Significant Bits of the 10-Bit Number ) make the Starting Cylinder Number of the Partition |
04H |
File System indicator Byte |
1 Byte |
File System Indicator Byte in Hexadecimal system (See the Table given next for Indicators) |
05H |
Head Number of End of the Partition |
1 Byte |
Ending Head Number of the Partition in Hexadecimal System |
06H |
Sector and Cylinder Number of End of the Partition |
2 Bytes |
6 Bits of First Byte make Ending Sector Number and Combination of remaining 2 Bits (as Two Most Significant Bits) plus 8 Bits of another Byte (Rest 8 least Significant Bits of the 10-Bit Number ) make the Ending Cylinder Number of the Partition |
08H |
Relative Sector number of Beginning of the Partition |
4 Bytes |
Number of Sectors Between the MBR and the First Sector in the Partition |
0CH |
Number of Sectors of the Partition |
4 Bytes |
Number of Sectors in the Partition |
Total = 16 Bytes |
실린더 및 섹터 인코딩은 다음에 수행되는 샘플 파티션 테이블 연구의 예에서 제공되었습니다.
파일 시스템 표시기 바이트(1바이트): 오프셋 04H의 파일 시스템 표시기 바이트는 해당 파티션의 파일 시스템을 나타냅니다. 다양한 파일 시스템에 대한 파일 시스템 표시기 바이트를 나열하는 표는 이 장 다음에서 제공됩니다.
끝 실린더 – 헤드 – 파티션의 섹터 번호(3바이트) : 인코딩은 시작 실린더 – 헤드 – 파티션의 섹터 번호와 동일합니다.
파티션 시작의 상대 섹터 번호(4바이트) : 16진수 시스템에서 파티션의 MBR과 첫 번째 섹터 사이의 섹터 수입니다.
파티션의 섹터 수(4바이트) : 16진수 시스템의 파티션에 있는 섹터 수입니다.
실린더, 헤드 및 섹터 번호는 BIOS에 전달되어야 하는 번호라는 것을 항상 기억해야 합니다. 따라서 BIOS가 변환(LBA 모드 또는 INT 13H 확장 지원)을 사용하는 경우 값이 실제 CHS 값을 나타내지 않을 수 있습니다. 대용량 하드 드라이브(8.4GB 초과)의 경우 CHS 값이 유효하지 않을 수 있습니다. 이러한 값은 일반적으로 무시되어야 하며 대신 절대 섹터 값이 사용됩니다.
다음 그림은 FAT32 파티션이 있는 디스크의 MBR을 보여줍니다. 그림 끝에서 강조 표시된 64바이트 영역은 MBR의 마스터 파티션 테이블을 나타냅니다.
시작 및 종료 CHS의 인코딩은 다음과 같습니다.
- 오프셋 00H에서 80(16진수)은 파티션이 활성 파티션임을 나타냅니다.
- 오프셋 01H에서 01(16진수)은 시작 헤드 번호 = 1을 나타냅니다.
- 오프셋 02H 및 03H에서 2바이트 조합이 시작 섹터를 형성합니다.
다음에 주어진 인코딩에 따른 파티션의 실린더 번호:
따라서 파티션의 시작 C-H-S= 0-0-1.
마찬가지로 파티션의 끝 부분에 대한 헤드 번호는 FE(Hex)로 254이고 파티션의 끝 실린더 및 섹터 번호에 대한 인코딩은 다음 표에 나와 있습니다.
따라서 파티션의 끝 C-H-S = 701-254-63.
오프셋 04H의 바이트 0B(16진수)는 파티션의 파일 시스템 표시기 바이트입니다. 바이트 0B(H) 파티션에 FAT32 파일 시스템이 있음을 나타냅니다. 다양한 파일 시스템 및 해당 파일 시스템 표시기 바이트에 대한 표는 다음과 같습니다.
File system Indicator Byte in Hexadecimal |
Partition/ File system Description |
00H |
Unused/Empty Partition-Table Entry
(Remember this is not used to designate unused area on the disk, but marks an unused partition table entry) |
01H |
DOS 12-bit fat
(The type 01H is for partitions up to 15 MB) |
02H |
XENIX: root file system |
03H |
XENIX /usr file system (obsolete)
(XENIX is an old part of Unix V7. Microsoft XENIX Operating System was announced in August 1980. It was a portable and commercial version of the Unix operating system for the Intel 8086, Zilog Z8000, Motorola M68000 and Digital Equipment PDP-11. Microsoft introduced XENIX 3.0 in April 1983. SCO delivered its first XENIX for 8088/8086 in 1983.) |
04H |
16-bit FAT, DOS 3.0+ (Partition size < 32M)
(Some old DOS versions have had a bug which required this partition to be located in the 1st physical 32 MB of the hard disk ) |
05H |
DOS Extended (DOS 3.3+ Extended Volume)
Supports at most 8.4 GB disks. With this type 05H DOS/Windows will not use the extended BIOS call, even if it is available.) |
06H |
16-bit FAT, DOS Big, DOS 3.31+ (Partition Size >= 32M)
(Partitions are at most 2 GB for DOS and Windows 95/98 with maximum 65536 clusters with each cluster, at most 32 KB. Windows NT can create up to 4 GB FAT16 partition using 64 KB clusters.) |
07H |
OS/2 IFS (Installable File System) (HPFS is the best known example of this file system. OS/2 only looks at partitions with ID 7 for any installed IFS this is the reason that EXT2 IFS packet includes a special "Linux partition filter" device driver to fool OS/2 into thinking Linux partitions have ID 07). |
07H |
Advanced Unix |
07H |
Windows NT NTFS |
07H |
QNX2.x (pre-1988)
(For the actual file system of partition type 07H, one should inspect the partition boot record) |
08H |
OS/2 (v1.0 to v1.3 only) |
08H |
AIX boot partition
[AIX (Advanced Interactive Executive) is the IBM's version of Unix] |
08H |
SplitDrive |
08H |
DELL partition spanning multiple drives |
08H |
Commodore DOS |
08H |
QNX 1.x and 2.x
("qny" according to QNX partitions) |
09H |
AIX data partition |
09H |
Coherent file system
[Coherent was a UNIX like Operating System for the 286-386-486 systems, marketed by Mark Williams Company led by Bob Swartz. It was renowned for its good documentation. It was introduced in 1980 and died 1 Feb 1995. The last versions are V3.2 for 286-386-486 and V4.0 (May 1992, using protected mode) for 386-486 only. It sold for $99 a copy and it is rumored that 40000 copies have been sold. A Coherent partition has to be primary. ] |
09H |
QNX 1.x and 2.x ("qnz" according to QNX Partitions) |
0aH |
OS/2 Boot Manager
(OS/2 is the operating system designed by Microsoft and IBM to be the successor of MS-DOS) |
0aH |
Coherent swap partition |
0aH |
OPUS
(Open Parallel Unisys Server) |
0bH |
WIN95 OSR2 32-bit FAT
(OSR2 stands for Microsoft’s “OEM Service Release 2”. It is for Partitions up to 2047GB. Almost always, Windows 95/98/ME have the same File system which is FAT-32, within the same partitions limits) |
0cH |
LBA-mapped WIN95 OSR2 32-bit FAT
(It is using Logical Block Addressing – mode of Interrupt 13H extensions therefore we can say that this is the Extended INT 13H equivalent of 0BH. Almost always, Windows 95/98/ME have the same File system which is FAT-32, within the same partitions limits) |
0eH |
LBA-mapped WIN95: DOS 16-bit FAT or Logical Block Addressable VFAT
(It is same as 06H but using LBA-mode of INT 13H) |
0fH |
LBA-mapped WIN95: Extended partition or Logical Block Addressable VFAT
(It is same as 05H but using LBA-mode of INT 13H. Windows 95 uses 0EH and 0FH as the extended INT13H equivalents of 06H and 05H. Windows NT does not recognize the four Windows 95/98/ME types 0BH, 0CH, 0EH and 0FH) |
10H |
OPUS
(Octal Program Updating System) |
11H |
Hidden DOS 12-bit FAT or OS/2 Boot Manager hidden 12-bit FAT partition or DOS Seen From OS/2 (When OS/2 Boot manager boots a DOS partition, it will hide all primary DOS partitions except the one that is booted, by changing its ID and 01H, 04H, 06H and 07H becomes 11H, 14H, 16H and 17H, respectively. |
12H |
Compaq Configuration/diagnostics partition
(It is used by Compaq for their configuration utility partition. It is a FAT-compatible partition that boots into their utilities, and can be added to a LILO menu as if it were MS-DOS. ) |
14H |
(Hidden DOS 16-bit FAT or OS/2 Boot Manager Hidden DOS 16-bit FAT) <32M Partition
(Partition size is less than 32M. ID 14H is resulted from using Novell DOS 7.0 FDISK to delete Linux Native partition. ) |
15H |
Hidden DOS-Extended |
16H |
(Hidden DOS 16-bit FAT or OS/2 Boot Manager hidden 16-bit FAT ) >=32M Partition |
17H |
OS/2 Boot Manager hidden HPFS partition or Hidden IFS (e.g., HPFS) |
17H |
Hidden NTFS partition |
18H |
AST SmartSleep Partition or AST special Windows swap file ("Zero-Volt Suspend" partition)
[AST Research, Inc. (named from first initials of the founders, Albert Wong, Safi Qureshey and Thomas Yuen). Ascentia laptops have a “Zero – Volt Suspend Partition” or `SmartSleep Partition' of size 2MB+memory size.] |
File system Indicator Byte in Hexadecimal |
Partition/ File system Description |
19H |
Willowtech Photon COS
(Code 19H is Claimed for Willowtech Photon COS by Willow Schlanger. |
1bH |
Hidden WIN95 OSR2 32-bit FAT or Hidden Windows 95 FAT32 Partition |
1cH |
LBA-mapped Hidden WIN95 OSR2 32-bit FAT
(It is hidden Windows95 FAT32 partition using LBA-mode of INT 13H Extensions) |
1eH |
LBA-mapped Hidden WIN95 16-bit FAT or Hidden LBA VFAT partition |
1FH |
LBA mapped Hidden WIN95 Extended or Hidden Extended LBA VFAT Partition |
20H |
OFSI
(Willowsoft Overture File System ) |
21H |
Officially listed as Reserved
(HP Volume Expansion, SpeedStor variant.) |
21H |
FSO2
(Claimed for FSO2 (Oxygen File System) by Dave Poirier) |
22H |
FSO2 Extended Partition
(Claimed for Oxygen Extended Partition by Dave Poirier) |
23H |
Officially listed as Reserved |
24H |
NEC DOS 3.x |
26H |
Officially listed as Reserved |
31H |
Officially listed as Reserved |
32H |
NOS (Network Operating System)
(32H is being used by the operating system NOS, being developed by Alien Internet Services in Melbourne Australia. The id 32H was chosen not only because of it was one of the few that are left available but also 32k is the size of the EEPROM the OS was originally targeted for. |
33H |
Officially listed as Reserved |
34H |
Officially listed as Reserved |
35H |
JFS on OS/2 or eCS
[35H is used by OS/2 Warp Server for e-Business, OS/2 Convenience Pack (aka version 4.5) and eComStation (eCS, an OEM version of OS/2 Convenience Pack) for the OS/2 implementation of JFS (IBM AIX Journaling File System)] |
36H |
Officially listed as Reserved |
38H |
THEOS v3.2 (2GB partition) |
39H |
Plan 9 partition
(Plan 9 is an operating system developed at Bell Labs for many architectures. Originally Plan 9 used an unallocated portion at the end of the disk. 3rd edition of Plan 9 uses partitions of type 39H, subdivided into sub partitions described in the Plan 9 partition table in the second sector of the partition.) |
39H |
THEOS v4 spanned partition |
3aH |
THEOS v4 (4GB partition) |
3bH |
THEOS v4 Extended partition
(THEOS is a multi-user multitasking Operating System for PCs founded by Timothy Williams in 1983.) |
3cH |
PartitionMagic recovery partition
(When a PowerQuest product like Partition Magic or Drive Image makes changes to the disk, it first changes the type flag to 3CH so that the Operating System will not try to modify it. At the end of the process, it is changed back to what it was at first. Therefore the only time you can see a 3CH type flag, is if the process was interrupted somehow such as power off, user reboot etc. If you change it back manually with a partition table editor or any disk editing program then most of the time everything is okay.) |
3dH |
Hidden NetWare |
40H |
Venix 80286
(It is a very old Unix-like operating system for PCs.) |
41H |
Linux/MINIX (sharing disk with DR-DOS)
(DR-DOS stands for Digital Research-Disk Operating System.) |
41H |
Personal RISC Boot |
41H |
PPC PReP (Power PC Reference Platform) Boot Partition |
42H |
Linux swap (sharing disk with DR-DOS) |
42H |
SFS (Secure File System)
(SFS is an encrypted file System driver for DOS on 386+ PCs, written by Peter Gutmann.) |
File system Indicator Byte in Hexadecimal |
Partition/ File system Description |
42H |
Windows 2000 Dynamic Extended Partition Marker
(If a partition table entry of type 42H is present in the legacy partition table, then Windows 2000 ignores the legacy partition table and uses a proprietary partition table and a proprietary partitioning scheme (LDM or DDM). Pure dynamic disks (those not containing any hard-linked partitions) have only a single partition table entry, type 42H to define the entire disk. Dynamic disks store their volume configuration in a database located in a 1-MB private region at the end of each dynamic disk.) |
43H |
Linux native (sharing disk with DR-DOS) |
44H |
GoBack partition
(GoBack is a utility that records changes made to the disk, allowing you to view or go back to some earlier state. It takes over disk I/O like a Disk Manager would, and stores its logs in its own partition.) |
45H |
Boot-US boot manager
(Boot-US (Ulrich Straub) boot manager can be installed to MBR, a separate primary partition or diskette. When installed to a primary partition this partition gets the ID 45H. This partition does not contain a file system, it contains only the boot manager and occupies a single cylinder (below 8.4 GB). ) |
45H |
Priam |
45H |
EUMEL/Elan |
46H |
EUMEL/Elan |
47H |
EUMEL/Elan |
48H |
EUMEL/Elan
(EUMEL, later known as Ergos L3, are the multi-user multitasking systems developed by Jochen Liedtke at GMD, using Elan programming Language. It was used at German schools for the computer science education.) |
4aH |
AdaOS Aquila |
4aH |
ALFS/THIN lightweight filesystem for DOS |
4cH |
Oberon partition |
4dH |
QNX4.x |
4eH |
QNX4.x 2nd partition |
4fH |
QNX4.x 3rd partition
(QNX is a POSIX (Portable Operating System Interface for Unix)-certified, microkernel, distributed, fault-tolerant Operating System for the 386 and later, including support for the 386EX in embedded applications.) |
4fH |
Oberon boot/data partition |
50H |
OnTrack Disk Manager (older versions), Read-Only Partition (Disk Manager is a program of OnTrack to enable people to use IDE disks that are larger than 504MB under DOS. Linux kernel versions older than 1.3.14 do not coexist with DM.) |
50H |
Lynx RTOS (Real-Time Operating System)
(Lynx RTOS gives users the ability to place up to 14 partitions of 2 GB each on both SCSI and IDE drives, for a total of up to 28 GB of file system space.) |
50H |
Native Oberon |
51H |
OnTrack Disk Manager (DM6.0 Aux1), Read/Write Partition |
51H |
Novell |
52H |
CP/M |
52H |
Microport SysV/AT or Microport System V/386 |
53H |
OnTrack Disk Manager (DM6.0 Aux3), Write-Only partition |
54H |
OnTrack Disk Manager 6.0 Dynamic Drive Overlay |
55H |
EZ-Drive Partition
(EZ-Drive is another disk manager like program developed by MicroHouse in 1992. Now It is marketed by StorageSoft.) |
56H |
Golden Bow VFeature Partitioned Volume.
(This is also a Disk Manager like Utility software. This is a Non-Standard DOS Volume.) |
56H |
DM converted to EZ-BIOS |
57H |
DrivePro
(DrivePro was developed by MicroHouse in 1992. Now It is marketed by StorageSoft.) |
57H |
VNDI Partition |
5cH |
Priam EDisk Partitioned Volume
(Priam EDisk is Disk Manager type utility software. This is a Non-Standard DOS Volume.) |
61H |
SpeedStor
(Storage Dimensions SpeedStor Partitioned Volume. This is a Non-Standard DOS Volume. It is Disk Manager type utility software.) |
63H |
Unix System V/386, 386/ix, SCO, ISC Unix, UnixWare, Mach, MtXinu BSD 4.3 on Mach, GNU Hurd |
64H |
Novell NetWare 286, 2.xx |
File system Indicator Byte in Hexadecimal |
Partition/ File system Description |
64H |
PC-ARMOUR protected partition
(64H is used by PC-ARMOUR disk protection by Dr. A. Solomon, intended to keep the disk inaccessible until the right password was given and then an INT 13H hook was loaded above top-of-memory that showed C-H-S = 0-0-2, with a copy of the real partition table, when 0-0-1 was requested). |
65H |
Novell NetWare 3.86, 3.xx or 4.xx
(Novell Netware 3.0 and later versions use one partition per drive. It allocates logical Volumes inside these partitions. The volumes can be split over several drives. The file system used is called Turbo FAT and it only very vaguely resembles the DOS FAT file system. Novell Netware used to be the main Network Operating System available. Netware 68 or S-Net (1983) was for a Motorola 68000, Netware 86 for an Intel 8086 or 8088. Netware 286 was for an Intel 80286 and existed in various versions that were later merged to Netware 2.2. Netware 386 was a rewrite in C for the Intel 386 which was later renamed to Netware 3.x (3.0, 3.1, 3.10, 3.11 and 3.12 etc) versions. Its successor Netware 4.xx had versions 4.00, 4.01, 4.02, 4.10 and 4.11. Then came Intranetware) |
66H |
Novell Netware SMS Partition
(SMS stands for Storage Management Services. It is not used now.) |
67H |
Novell |
68H |
Novell |
69H |
Novell Netware 5+ and Novell Netware NSS Partition
(NSS stands for Novell Storage Services.) |
70H |
DiskSecure Multi-Boot |
71H |
Officially listed as reserved |
73H |
Officially listed as reserved |
74H |
Officially listed as reserved |
74H |
Scramdisk partition
(Scramdisk is a disk encryption software. It supports container files, dedicated partitions type 74H and disks hidden in WAV audio files.) |
75H |
IBM PC/IX |
76H |
Officially listed as reserved |
77H |
M2FS/M2CS partition |
77H |
QNX 4.x |
78H |
XOSL File System
(XOSL Boot loader file system) |
78H |
QNY 4.x |
79H |
QNZ 4.x |
7EH |
F.I.X. |
7Fh |
Alt-OS-Development Partition Standard |
80H |
Old MINIX, MINIX v1.1 to v1.4a |
81H |
MINIX 1.4b and Later
(MINIX is a Unix-like operating system written by Andy Tanenbaum and students at the Vrije University, Amsterdam, around 1989-1991. It runs on PCs (8086 and up), Macintosh, Atari, Amiga, Sparc. |
81H |
Early Linux |
81H |
Mitac Advanced Disk Manager |
82H |
Prime |
82H |
Solaris x86
(Solaris creates a single partition with ID 82H and then uses Sun disk labels within the partition to split it further.) |
82H |
Linux Swap partition |
83H |
Linux Native Partition or Linux native file system or Linux Ext2fs
(Linux is a Unix-like operating system written by Linus Torvalds and many others on the internet since 1991. It runs on PCs 386 and later and a variety of other hardware. It is distributed under GPL (General Public License) . Various file system types like xiafs, ext2, ext3, reiserfs, etc. all use ID 83H.) |
84H |
OS/2 hidden C: drive or OS/2-renumbered type 04 partition.
(OS/2-renumbered type 04h partition is related to hiding DOS C: drive) |
84H |
Hibernation partition
(Reported for various laptop models, e.g., used on Dell Latitudes (with Dell BIOS) that use the MKS2D utility.) |
85H |
Linux Extended partition |
86H |
Old Linux RAID partition super block |
86H |
FAT16 volume/stripe set (Windows NT) or NTFS volume set
(It is Legacy Fault Tolerant FAT16 volume.) |
87H |
HPFS Fault-Tolerant mirrored partition or NTFS volume set or NTFS volume/stripe set
(Legacy Fault Tolerant NTFS volume. HPFS Fault-Tolerant mirrored partition. ) |
8aH |
Linux Kernel Partition
(It is used by AiR-BOOT) |
File system Indicator Byte in Hexadecimal |
Partition/ File system Description |
8bH |
Legacy Fault Tolerant FAT32 volume |
8cH |
Legacy Fault Tolerant FAT32 volume using BIOS Extended INT 13H. |
8dH |
Free FDISK hidden Primary DOS FAT12 partition
(Free FDISK is the FDISK used by FreeDOS. It hides types 01H, 04H, 05H, 06H, 0BH, 0CH, 0EH and 0FH by adding decimal Number 140 (8CH).) |
8eH |
Linux Logical Volume Manager partition |
90H |
Free FDISK hidden Primary DOS FAT16 partition |
91H |
Free FDISK hidden DOS extended partition |
92H |
Free FDISK hidden Primary DOS large FAT16 partition |
93H |
Hidden Linux native partition |
93H |
Amoeba file system |
94H |
Amoeba bad block table
(Amoeba is a distributed operating system written by Andy Tanenbaum, together with Frans Kaashoek, Sape Mullender, Robert van Renesse and others since 1981. It runs on PCs (386 and up), Sun3, Sparc, 68030. It is free for universities for research and teaching purposes.) |
95H |
MIT EXOPC native partition |
97H |
Free FDISK hidden Primary DOS FAT32 partition |
98H |
Free FDISK hidden Primary DOS FAT32 partition (LBA) |
99H |
Mylex EISA SCSI or DCE376 logical drive
(It is used by the Mylex DCE376 EISA SCSI adaptor for partitions which are beyond the 1024 cylinder of a drive.) |
9aH |
Free FDISK hidden Primary DOS FAT16 partition (LBA) |
9bH |
Free FDISK hidden DOS extended partition (LBA) |
9fH |
BSD/OS |
a0H |
Phoenix NoteBIOS Power Management "Save-to-Disk" partition or Laptop hibernation partition
(It is Reported for various laptops like IBM Thinkpad, Phoenix NoteBIOS, Toshiba under names like zero-volt suspend partition, suspend-to-disk partition, save-to-disk partition, power-management partition, hibernation partition, usually at the start or end of the disk area.) |
a1H |
Laptop hibernation partition
(Used as "Save-to-Disk" partition on a NEC 6000H notebook. Types A0H and A1H are used on systems with Phoenix BIOS. The Phoenix PHDISK utility is used with these.) |
a1H |
HP Volume Expansion (SpeedStor variant) |
a3H |
Officially listed as Reserved |
a4H |
Officially listed as Reserved |
a5H |
BSD/386, 386BSD, NetBSD, FreeBSD
(386BSD is a Unix-like operating system, a port of 4.3BSD Net/2 to the PC done by Bill Jolitz around 1991.) |
a6H |
OpenBSD
(OpenBSD, led by Theo de Raadt, split off from NetBSD. It tries to emphasize on security.) |
a7H |
NEXTSTEP
(NEXTSTEP is Based on Mach 2.6 and features of Mach 3.0. It is a true object-oriented operating system and user environment. |
a8H |
Mac OS-X
(Apple's OS-X uses this type for its file system partition) |
a9H |
NetBSD |
aaH |
Olivetti Fat 12 1.44MB Service Partition
(It Contains a bare DOS 6.22 and a utility to exchange types 06H and AAH in the partition table.) |
abH |
Mac OS-X Boot partition
(Apple's OS-X (Darwin Intel) uses this type for its boot partition.) |
abH |
GO! partition |
aeH |
ShagOS file system |
afH |
ShagOS swap partition |
b0H |
BootStar Dummy
(The boot manager BootStar manages its own partition table, with up to 15 primary partitions. It fills unused entries in the MBR with BootStar Dummy values.) |
b1H |
Officially listed as Reserved |
b3H |
Officially listed as Reserved |
b4H |
Officially listed as Reserved |
b6H |
Officially listed as Reserved |
B6H |
Windows NT mirror set (master), FAT16 file system |
b7H |
BSDI file system (secondarily swap), BSDI BSD/386 file system |
B7H |
Windows NT mirror set (master), NTFS file system |
File system Indicator Byte in Hexadecimal |
Partition/ File system Description |
b8H |
BSDI BSD/386 swap partition (secondarily file system)
(BSDI (Berkeley Software Design, Inc.) was founded by former CSRG (UCB Computer Systems Research Group) members. Their operating system, based on Net/2, was called BSD/386.) |
bbH |
Boot Wizard hidden |
beH |
Solaris 8 boot partition |
c0H |
DR-DOS/Novell DOS secured partition |
C0H |
CTOS |
c0H |
REAL/32 secure small partition |
c0H |
NTFT Partition |
c1H |
DR DOS 6.0 LOGIN.EXE-secured 12-bit FAT partition |
c2H |
Reserved for DR-DOS 7+ |
c2H |
Hidden Linux |
c3H |
Hidden Linux swap |
c4H |
DR DOS 6.0 LOGIN.EXE-secured 16-bit FAT partition |
c5H |
DRDOS/secured (Extended) |
c6H |
DRDOS/secured (FAT-16, >= 32M)
(DR-DOS 6.0 will add C0H to the partition type for a LOGIN.EXE - secured partition so that User can not avoid the password check by booting from an MS-DOS floppy. Otherwise it seems that the types C1H, C4H, C5H, C6H and D1H, D4H, D5H, D6H are used precisely like 1H, 4H, 5H, and 6H.) |
c6H |
Corrupted FAT16 volume/stripe set (Windows NT)
(NTFS will add C0H to the partition type for disabled parts of a Fault Tolerant set. Thus, one gets types C6H, C7H.) |
c7H |
Windows NT corrupted NTFS volume/stripe set |
c7H |
Syrinx boot |
c8H |
Officially listed as Reserved |
c9H |
Officially listed as Reserved |
caH |
Officially listed as Reserved |
cbH |
Reserved for DR-DOS secured FAT32 |
ccH |
Reserved for DR-DOS secured FAT32 (LBA) |
cdH |
CTOS Memdump |
ceH |
Reserved for DR-DOS secured FAT16 (LBA) |
d0H |
REAL/32 secure big partition
(REAL/32 is a continuation of DR Multi-user DOS.) |
d1H |
Old Multi-user DOS secured FAT12 |
d4H |
Old Multi-user DOS secured FAT16 <32M |
d5H |
Old Multi-user DOS secured extended partition |
d6H |
Old Multi-user DOS secured FAT16 >=32M |
d8H |
CP/M-86 |
daH |
Non-FS Data |
dbH |
Digital Research CP/M, Concurrent CP/M, Concurrent DOS |
dbH |
CTOS (Convergent Technologies OS -Unisys) |
dbH |
KDG Telemetry SCPU boot
(KDG Telemetry uses ID DBH to store a protected-mode binary image of the code to be run on a 'x86-based SCPU (Supervisory CPU) module from the DT800 range.) |
ddH |
Hidden CTOS Memdump |
deH |
Dell PowerEdge Server utilities (FAT) |
dfH |
DG/UX virtual disk manager partition |
dfH |
BootIt EMBRM
(The boot manager BootIt manages its own partition table, with up to 255 primary partitions.) |
e0H |
Reserved by ST Microelectronics for a file system called ST AVFS. |
e1H |
DOS access or SpeedStor 12-bit FAT extended partition
(It is a SSTOR partition on cylinders more than 1023.) |
E2H |
DOS Read-Only |
e3H |
Storage Dimensions |
e4H |
SpeedStor 16-bit FAT extended partition < 1024 cylinders |
e5H |
Officially listed as Reserved |
e5H |
Tandy DOS with logical sectored FAT |
e6H |
Officially listed as Reserved |
ebH |
BeOS BFS (BFS1)
(BeOS is an operating system that runs on Power PCs) |
edH |
Reserved for Matthias Paul’s Sprytix |
eeH |
Indication that this legacy MBR is followed by an EFI Header |
efH |
Partition that contains an EFI file system |
f0H |
Linux/PA-RISC boot loader |
f1H |
Storage Dimensions |
f2H |
DOS 3.3+ secondary partition |
f2H |
Unisys DOS with logical sectored FAT |
f3H |
Officially listed as Reserved |
f4H |
SpeedStor large partition |
F4H |
Prologue single-volume partition |
File system Indicator Byte in Hexadecimal |
Partition/ File system Description |
f5H |
Prologue multi-volume partition
(The type F4H partition contains one volume, and is not used anymore. The type F5H partition contains 1 to 10 volumes called MD0 to MD9. It supports one or more systems. Each volume can have as file system the NGF file system or TwinFS file system. ) |
f6H |
Officially listed as Reserved |
F6H |
Storage Dimensions SpeedStor |
faH |
MandrakeSoft's Bochs x86 emulator |
fbH |
VMware File System partition |
fcH |
VMware Swap partition
(VMware offers virtual machines in which one can run Linux, Windows, FreeBSD.) |
fdH |
Linux raid partition with auto detect using persistent super block |
feH |
SpeedStor more than 1024 cylinders |
feH |
LANstep |
feH |
IBM PS/2 IML (Initial Microcode Load) partition
(It is located at the end of the disk.) |
feH |
Windows NT Disk Administrator hidden partition
(Windows NT Disk Administrator marks hidden partitions, i.e. present but not to be accessed, as type FEH.) |
feH |
Linux Logical Volume Manager partition (old) |
ffH |
XENIX Bad Block Table |
DOS 부트 레코드(DBR) / DOS 부트 섹터
파티션 테이블 다음으로 DOS 부트 레코드(DBR) 또는 DOS 부트 섹터라고도 하는 하드 드라이브에서 두 번째로 중요한 정보입니다. 디스크 복구를 위한 대부분의 상용 응용 프로그램은 파괴된 부트 레코드를 재생성할 수 있습니다.
하드 디스크의 첫 번째 파티션에 대한 DOS 부트 레코드(DBR)는 일반적으로 Absolute Sector 63(디스크 드라이브의 64번째 섹터) 또는 CHS 형식에서 찾을 수 있습니다. C–H–S = 대부분의 드라이브에 대해 0–1–1.
그러나 이 위치는 드라이브의 SPT(트랙당 섹터)에 따라 다를 수 있습니다. 예를 들어, SPT가 31개만 있는 구형 245MB 드라이브에서 부트 레코드는 32번째 섹터(절대 섹터 31)에 있었습니다.
DBR은 DOS의 FORMAT 명령에 의해 생성됩니다. 이 프로그램은 FDISK 명령을 사용하여 분할이 완료된 후 DBR을 생성하기 위해 DOS 플로피 디스크에서(또는 일부 OS 제한에 따라 다른 볼륨에서 직접) 실행할 수 있습니다.
DBR이 있는 섹터는 DOS용 특정 파티션의 논리적 섹터 1이 됩니다. DOS에서 사용하는 섹터 번호는 DBR이 있는 물리적 섹터에서 시작합니다.
각 DOS 파티션의 첫 번째 논리 섹터에는 DOS 부트 레코드(DBR) 또는 DOS 부트 섹터가 포함됩니다. DBR의 역할은 하드 디스크 드라이브에서 컴퓨터의 주 메모리로 운영 체제를 로드하고 로드된 프로그램에 시스템 제어 권한을 부여하는 것입니다.
이를 위해 DBR에는 MBR(Master Boot Record) 실행 프로그램에 의해 실행되는 작은 프로그램이 포함되어 있습니다. 모든 DOS 파티션에는 시스템을 부팅하기 위한 프로그램 코드가 포함되어 있습니다. 즉, 운영 체제를 로드하지만 해당 파티션만 파티션 테이블 항목에서 활성 파티션으로 지정된 마스터 부트 레코드에 의해 제어됩니다.
DBR의 부트 프로그램은 파티션의 루트 디렉토리에서 두 개의 프로그램 파일 IBMBIO.COM 또는 IO.SYS와 IBMDOS.COM 또는 MSDOS.SYS를 찾습니다. IBMBIO.COM 및 IBMDOS.COM은 PC-DOS 시스템 또는 원래 IBM 시스템에 있는 두 개의 숨겨진 시스템 프로그램 파일입니다. 반면 IO.SYS와 MSDOS.SYS는 IBM 호환 시스템과 함께 제공되는 MS-DOS 운영 체제의 두 개의 숨겨진 시스템 프로그램 파일입니다.
이후 IO.SYS(또는 IBMBIO.COM) 프로그램은 MSDOS.SYS(또는 IBMDOS.COM) 프로그램과 COMMAND.COM 프로그램을 로드합니다. 이 전체 프로세스를 컴퓨터의 "부팅"이라고 합니다. 이러한 시스템 파일을 디렉토리에서 사용할 수 없는 경우 이 MBR 프로그램은 다음과 같은 오류 메시지를 표시합니다.
“Invalid system disk or Disk I/O error,
Replace the disk, and then press any key…”
화면에서 사용자가 위에서 언급한 프로그램이 포함된 부팅 디스크를 플로피 드라이브에 넣고 키를 누를 때까지 기다립니다.
플로피에는 파티션이 없으므로 절대 섹터 0에 MBR 또는 마스터 파티션 테이블이 없고 대신 첫 번째 섹터에 DBR이 포함됩니다.
다음 표는 FAT12 파일 시스템으로 포맷한 후의 3½인치, 1.44MB 플로피 디스크 레이아웃의 간단한 맵을 제공합니다. 부트 레코드, FAT의 두 복사본, 루트 디렉터리 및 데이터 영역의 시작 부분이 있는 위치를 보여줍니다.
Logical Map of 3½ Inches, 1.44 MB floppy disk, Formatted with the FAT12 File System and having 18 Sectors Per Track, 80 Tracks, 2 Sides and 512 bytes per Sector (using 1 Sector per Cluster). |
Absolute Sectors |
Contents |
0 |
Boot Record |
1 – 9 |
FAT 1 |
10 – 18 |
FAT 2 |
19 – 32 |
Root Directory |
33 – 2879 |
Data Area |
또한 내부에 포함된 것으로 보이는 파일을 사용하여 데이터 영역에 하위 디렉토리를 생성할 수 있습니다. 사실, 하위 디렉토리는 이 디렉토리 안에 들어 있는 것처럼 보이는 모든 파일과 각 파일의 시작 클러스터 위치, 날짜, 시간 및 파일 크기 등과 같은 각 파일에 대한 모든 관련 데이터를 나열하는 특수 파일에 불과합니다.
DBR에는 디스크 구조에 대한 몇 가지 중요한 정보도 포함되어 있습니다. 이 정보는 다음과 같이 모든 파티션의 첫 번째 섹터에 있습니다.
- 점프 코드 + NOP
- OEM 이름 및 버전
- 섹터당 바이트 수
- 클러스터당 섹터
- 예약된 섹터
- FAT 사본 수
- 최대 루트 디렉토리 항목(FAT32에는 사용할 수 없음)
- 32MB보다 작은 파티션의 섹터 수(따라서 FAT32에서는 사용할 수 없음)
- 미디어 설명자(하드 디스크의 경우 F8h)
- FAT당 섹터(이전 FAT 시스템에서는 FAT32에서 사용할 수 없음)
- 트랙당 부문
- 헤드 수
- 파티션의 숨겨진 섹터 수
- 파티션된 섹터 수
- FAT당 섹터 수
- FAT 정보 설명자 플래그
- FAT32 드라이브 버전
- 루트 디렉토리 시작의 클러스터 번호
- 파일 시스템 정보 섹터의 섹터 번호
- 백업 부트 섹터의 섹터 번호
- 예약됨
- 파티션의 논리 드라이브 번호
- 확장 서명(29H)
- 파티션 일련 번호
- 파티션의 볼륨 이름
- 지방 이름
- 실행 코드
- 실행 마커 또는 매직 넘버(AAH 55H)
DBR의 처음 3바이트에는 MBR이 이 섹터를 메모리로 로드하고 실행을 전송하기 때문에 정보를 건너뛰고 확장을 가능하게 하는 JMP 명령이 포함되어 있습니다. 일반적으로 이 3바이트는 E9 XX XX(16진수) 또는 EB XX 90(16진수)과 같은 형식의 16진수입니다.
초기 JMP 명령 뒤에 오는 OEM ID는 OEM 식별을 위해 Microsoft에서 예약한 8비트 필드입니다. OEM ID는 부트 레코드를 생성한 프로그램을 설명합니다. 이것은 종종 Windows 95/98/ME의 경우 "MSWIN4.0", OS/2의 경우 "IBM 20.0" 및 "MSDOS5.0"입니다 MS-DOS 4.0 이상.
부트 섹터의 세 번째 주요 구성 요소는 BIOS 매개변수 블록(BPB)입니다. 디스크 매개변수 블록은 DOS에서 매우 중요한 데이터 영역입니다. DOS에서 다음을 찾는 데 도움이 됩니다.
- 섹터당 바이트 수
- 클러스터당 섹터
- 예약된 섹터
- FAT 수
- 루트 디렉토리 항목 수
FAT32 DOS Boot Record Format |
Offset |
Description |
Size |
00H |
Jump Code + NOP |
3 Bytes |
03H |
OEM Name and Version |
8 Bytes |
0BH |
Bytes Per Sector |
2 Bytes |
0DH |
Sectors Per Cluster |
1 Byte |
0EH |
Reserved Sectors |
2 Bytes |
10H |
Number of Copies of FAT |
1 Byte |
11H |
Maximum Root Directory Entries (but Not Available for FAT32) |
2 Bytes |
13H |
Number of Sectors in Partition Smaller than 32MB (Therefore Not Available for FAT32) |
2 Bytes |
15H |
Media Descriptor (F8H for Hard Disks) |
1 Byte |
16H |
Sectors Per FAT (In Older FAT Systems and Not Available for FAT32) |
2 Bytes |
18H |
Sectors Per Track |
2 Bytes |
1AH |
Number of Heads |
2 Bytes |
1CH |
Number of Hidden Sectors in Partition |
4 Bytes |
20H |
Number of Sectors in Partition |
4 Bytes |
24H |
Number of Sectors Per FAT |
4 Bytes |
28H |
Flags (Bits 0-4 Indicate Active FAT Copy) (Bit 7 Indicates whether FAT Mirroring is Enabled or Disabled <Clear is Enabled>) (If FAT Mirroring is Disabled, the FAT Information is only written to the copy indicated by bits 0-4) |
2 Bytes |
2AH |
Version of FAT32 Drive (High Byte = Major Version, Low Byte = Minor Version) |
2 Bytes |
2CH |
Cluster Number of the Start of the Root Directory |
4 Bytes |
30H |
Sector Number of the File System Information Sector (Referenced from the Start of the Partition) |
2 Bytes |
32H |
Sector Number of the Backup Boot Sector (Referenced from the Start of the Partition) |
2 Bytes |
34H |
Reserved |
12 Bytes |
40H |
Logical Drive Number of Partition |
1 Byte |
41H |
Unused (Could be High Byte of Previous Entry) |
1 Byte |
42H |
Extended Signature (29H) |
1 Byte |
43H |
Serial Number or 32 – Bit Binary ID of Partition
(Binary ID of 32 Bits provided by the OS itself) |
4 Bytes |
47H |
Volume Name of Partition |
11 Bytes |
52H |
FAT Name (FAT32 in this case) |
8 Bytes |
5AH |
Executable Code |
420 Bytes |
1FEH |
Executable Marker or Magic Number (AAH 55H) |
2 Bytes |
- 논리 볼륨의 총 섹터(소형, 논리 볼륨 크기가 32MB 이하인 경우)
- 미디어 설명자 바이트
- FA당 섹터 수
이 정보는 FAT 및 기타 중요한 값의 위치를 찾는 데 도움이 됩니다. 여기에 잘못된 정보를 입력하거나 이러한 값이 손상되면 하드 디스크 드라이브에서 부팅할 수 없습니다. 때때로 디스크 매개변수 블록에 잘못된 정보가 있으면 하드 디스크 드라이브와 플로피 디스크 드라이브에서 부팅되지 않습니다.
섹터당 바이트는 거의 항상 512입니다. 그렇지 않은 경우에도 2의 정수 거듭제곱이어야 합니다(예: 64, 128, 256).
클러스터당 섹터 수는 클러스터 크기에 따라 다릅니다. (이 장의 앞부분에 제공된 클러스터 섹션을 참조하십시오). FAT의 복사본 수는 거의 항상 2입니다.
루트 디렉토리 수: 파일 시스템 및 볼륨 크기에 따라 다릅니다. (앞에 제공된 파일 시스템 제한 및 다음에 제공된 루트 디렉토리에 대한 설명 참조).
총 섹터 수: 숨겨진 섹터는 제외됩니다. BPB에서 0이면 확장 부트 레코드 정보의 필드가 사용되며 그 반대의 경우도 마찬가지입니다. 오프셋 26H에서 서명 바이트를 검사하여 확장 정보(DOS 4.0 이상)를 사용할 수 있는지 확인할 수 있습니다.
논리적 DOS 드라이브의 부트 섹터 이전의 모든 섹터는 '숨겨진' 섹터로 간주됩니다. DOS는 숨겨진 섹터를 해석하지 않습니다. 일반 플로피 드라이브에는 0개의 숨겨진 섹터가 있습니다. 하드 드라이브 파티션에는 드라이브에서의 위치를 나타내는 번호가 있습니다. 첫 번째 실린더의 전체 첫 번째 헤드는 실제로 사용되는 첫 번째 섹터일지라도 일반적으로 파티션 테이블용으로 예약되어 있습니다.
미디어 설명자: 미디어 또는 디스크 유형을 나타내는 데 사용됩니다. 일반 값은 확장 DOS 파티션의 경우 0이고 하드 드라이브의 경우 F8H입니다. Media Descriptor Bytes의 값은 다음 표와 같습니다.
Media Descriptors |
Type |
Capacity |
Size and type |
F0H |
2.88 MB |
3.5", 2-Sided, 36 Sectors per Track |
F0H |
1.44 MB |
3.5", 2-Sided, 18 Sectors per Track |
F9H |
720 KB |
3.5", 2-Sided, 9 Sectors per Track |
F9H |
1.2 MB |
5.25", 2-Sided, 15 Sectors per Track |
FDH |
360 KB |
5.25", 2-Sided, 9 Sectors per Track |
FFH |
320 KB |
5.25", 2-Sided, 8 Sectors per Track |
FCH |
180 KB |
5.25", 1-Sided, 9 Sectors per Track |
FEH |
160 KB |
5.25", 1-Sided, 8 Sectors per Track |
F8H |
--------- |
Fixed Disk |
FAT 섹터 수: 계산해야 합니다. FAT의 크기를 계산하는 방법은 장에 주어진 FAT에 대한 설명에 나와 있습니다.
FAT32 파일 시스템의 DBR은 다음 그림에 나와 있습니다.
트랙당 섹터(또는 헤드당 섹터): 헤드당 섹터는 한 헤드 아래 그룹화된 섹터의 수입니다. 마찬가지로 실린더당 헤드는 헤드당 실린더 수를 반영합니다. 이 파티션이 CHS 파티션인 경우 이러한 값은 BIOS에서 반환된 값과 동일해야 합니다. 동일하지 않은 경우 디스크가 잘못 구성되어 파티션을 사용하지 못할 수 있음을 고려해야 합니다.
숨겨진 섹터: 이미 논의한 바와 같이, 이것은 부트 섹터 자체 이전의 볼륨 시작 이전의 물리적 디스크의 섹터 수입니다. 루트 디렉터리 및 데이터 영역에 대한 절대 오프셋을 계산하기 위해 부팅 시퀀스 중에 사용됩니다. 이 파티션의 시작 부분과 파티션 테이블 자체 사이의 섹터 수로 생각하십시오.
이 필드는 파티션 테이블의 "파티션 앞에 있는 섹터 수"와 동일해야 합니다. 보조 파티션이 존재할 수 있으므로 반드시 첫 번째 섹터의 물리적 LBA 주소일 필요는 없습니다.
히든 섹터가 파티션 테이블과 같지 않으면 부트 섹터가 손상되어 파티션을 사용할 수 없는 것으로 간주할 수 있습니다. 또한 상위 단어에는 일반적으로 이전 버전의 DOS에서 쓰레기가 포함되어 있습니다.
부트 섹터가 손상된 것으로 의심되는 경우 위에 나열된 여러 필드를 확인하여 나열된 값이 의미가 있는지 확인할 수 있습니다.
예를 들어, 섹터당 바이트는 대부분의 경우 512입니다. 디스크를 포맷한 운영 체제에 적합한 부트 섹터의 실행 코드 섹션에서 텍스트 문자열을 볼 수도 있습니다.
예를 들어 MS-DOS로 포맷된 FAT 볼륨의 일반적인 텍스트 문자열은 다음과 같습니다. "Invalid system disk.", "Disk I/O error.", "Replace the disk , 다음 아무 키나 누르십시오.", "비시스템 디스크 또는 디스크 오류", "준비되면 교체하고 아무 키나 누르십시오." 및 "디스크 부팅 실패." Windows NT로 포맷된 FAT 볼륨의 텍스트 문자열에는 "BOOT: NTLDR을 찾을 수 없습니다(또는 찾을 수 없음)", "I/O 오류 읽기 디스크가 있습니다." 및 "다른 디스크를 삽입하십시오."
그러나 이 목록을 모든 것을 포함하는 것으로 간주해서는 안 된다는 점을 기억하십시오. 부트 섹터에서 다른 메시지를 찾은 경우 이것이 반드시 부트 섹터에 문제가 있음을 나타내는 것은 아닙니다. MS-DOS와 Windows NT의 다른 버전은 부트 섹터에 약간 다른 메시지 문자열을 가질 수 있습니다.
반면에 텍스트가 전혀 없거나 텍스트가 MS-DOS 또는 Windows NT와 분명히 관련이 없는 경우 부트 섹터가 바이러스에 감염되었거나 일부 다른 형태의 데이터 손상이 발생했을 수 있습니다.
바이러스에 감염된 부트 섹터에서 복구하려면 일반적으로 상용 안티바이러스 프로그램을 사용하는 것이 가장 좋습니다. 많은 바이러스와 트로이 목마는 단순히 부트 섹터에 데이터를 쓰는 것 이상을 수행하므로 부트 섹터를 수동으로 복구하는 것은 바이러스나 트로이 목마를 완전히 제거하지 못하고 경우에 따라 득보다 실이 더 많을 수 있으므로 권장하지 않습니다. 그러나 우리는 이 책의 프로그래밍 섹션에서 DBR을 다룰 것입니다.
부트 섹터가 다른 이유로 손상된 것으로 의심되면 위에서 설명한 필드를 수동으로 수정하여 드라이브를 다시 포맷하지 않고도 부트 섹터 손상을 복구할 수 있습니다. 우리는 이 책에서 회복의 프로그래밍 기술에서 프로그래밍으로 이러한 문제를 극복하려고 노력할 것이다.
파일 할당 테이블(FAT)
DBR 다음은 파일 할당 테이블입니다. FAT(파일 할당 테이블)는 Microsoft 독립 실행형 Disk Basic용 플로피 디스크에 데이터를 저장하기 위해 1977년에 도입되었습니다. FAT는 확장 요구를 수용하기 위해 여러 번 수정되었습니다. 이동식 미디어와 고정 미디어 모두에서 데이터를 관리하기 위한 빠르고 유연한 시스템의 요구 사항을 충족하기 위해 개발되었습니다.
1996년 FAT32는 Windows 95 OSR2와 함께 도입되었습니다. 앞에서 논의한 바와 같이 Windows 98/ME는 하드 드라이브 크기의 FAT32를 지원합니다. 이제 이러한 운영 체제에서는 FAT32 파일 시스템이 일반적으로 사용됩니다.
최초의 DOS FAT 파일 시스템(DOS 1.x)은 12비트 FAT 시스템을 사용했으며 오늘날에도 여전히 플로피 디스크에 사용됩니다. DOS 2.x는 더 큰 볼륨 때문에 16비트 FAT 항목으로 전환된 하드 디스크에 대한 지원을 추가했습니다.
1987년경, DOS 4.0은 파일 시스템의 한계에 대해 이미 논의한 바와 같이 대용량 디스크 지원 문제를 극복하기 위해 32비트 매개변수를 사용하도록 저수준 섹터 처리를 변경했습니다.
FAT는 디스크 드라이브의 전체 표면에 대한 맵을 유지하여 어떤 영역이 비어 있는지, 어떤 영역이 불량인지, 어떤 파일이 어떤 영역을 차지하는지 등을 표시합니다. 디스크 표면에 저장된 일부 데이터에 액세스해야 할 때 , DOS는 데이터를 포함하는 하드 디스크 표면의 영역을 찾기 위해 FAT를 참조합니다.
사용할 FAT의 유형은 하드 디스크 드라이브의 파티션 중에 FDISK 프로그램에 의해 결정됩니다. 그러나 실제 FAT는 DOS의 FORMAT 프로그램에 의해 작성됩니다.
FAT는 디스크 표면의 모든 섹터를 추적하지 않고 대신 "클러스터" 또는 "할당 단위"라고 하는 섹터 그룹의 디스크 영역을 관리합니다(같은 장에서 이전에 논의된 클러스터 참조).
클러스터는 DOS가 파일에 할당하는 하드 디스크 드라이브 공간의 가장 작은 단위이며 드라이브 크기에 따라 하나 이상의 섹터로 구성됩니다. 클러스터 크기는 하드 디스크 드라이브의 상위 레벨 포맷 중에 DOS FORMAT 프로그램에 의해 결정되고 고정됩니다. (이전에 제공된 "클러스터 크기" 토론 참조)
사실 FAT는 전체 볼륨의 클러스터 인덱스입니다. FAT에는 각 클러스터에 대해 하나의 항목이 있습니다. FAT의 처음 두 항목에는 FAT에 대한 정보가 들어 있습니다. FAT의 세 번째 및 후속 항목은 파일에서 사용할 수 있는 첫 번째 클러스터부터 시작하여 디스크 공간 클러스터에 할당됩니다.
FAT는 매우 중요한 항목이기 때문에 DOS는 기본 FAT 또는 FAT1 및 보조 FAT 또는 FAT2의 두 가지 복사본을 유지합니다(보통 두 개의 복사본이 있지만 많은 새 운영 체제에서 두 개 이상의 FAT 복사본을 생성함).
각 FAT는 디스크의 연속 섹터를 차지하며, 첫 번째 FAT 바로 다음에 오는 두 번째 FAT는 첫 번째 FAT가 업데이트될 때 DOS가 두 번째 FAT를 사용하여 문제를 수정하지 않고 대신 두 번째 FAT로 복사하여 파일을 손상시킵니다. 2차 FAT도 진행 중입니다.
이 업데이트는 DOS가 첫 번째 및 두 번째 FAT가 일치하지 않는 것을 발견할 때마다 수행됩니다. 따라서 첫 번째 FAT가 손상된 경우 디스크 편집기 소프트웨어를 사용하고 첫 번째 FAT와 두 번째 FAT를 비교하여 즉시 복구해야 합니다. 이것은 DOS가 손상된 FAT를 두 번째 FAT로 복사하기 전에 수행되어야 합니다.
FAT32가 도입되면서 FAT 항목과 섹터 번호가 모두 32비트입니다. 즉, 이제 FAT32에서 가능한 최대 디스크 크기로 2테라바이트(2,199,023,255,552바이트)를 산출하는 섹터당 512바이트를 곱한 4,294,967,296개의 고유한 32비트 값이 있습니다.
FAT 32에서 각 파일의 디렉토리 항목 크기는 FAT16에서 필요한 2바이트가 아니라 파일의 시작 클러스터 값을 포함하기 위해 4바이트입니다. 더 큰 값은 더 많은 수의 가능한 클러스터를 수용합니다.
전통적으로 각 디렉토리 항목은 32바이트 레코드이며 동일하게 유지됩니다. 디렉터리 레코드 중간에는 Microsoft가 향후 사용을 위해 예약한 10바이트(바이트 12~21)가 있습니다. 이러한 바이트 중 2개는 이제 FAT32에서 시작 클러스터를 지정하는 데 필요한 추가 바이트를 수용하는 데 사용됩니다.
이미 논의한 바와 같이 FAT에는 12비트, 16비트 및 32비트 버전이 있습니다. 32비트 FAT는 최대 30% 더 효율적이고 더 큰 하드 드라이브를 사용할 수 있는 훨씬 더 효율적인 저장을 허용합니다.
운영 체제의 파일 시스템이 파일 내용을 찾기 위해 프로그램에 의해 호출되면 해당 파일의 디렉토리 항목에서 첫 번째 클러스터 값을 읽고 FAT 체인을 찾는 데 사용합니다. FAT 체인은 파일에 속하는 데이터를 포함하는 클러스터 목록입니다.
FAT32 Drive Layout |
Offset |
Description |
Start of Partition |
Boot Sector |
Start of Partition + Number of Reserved Sectors |
FAT Tables |
Start of Partition + Number of Reserved Sector + (Number of Sectors Per FAT * 2)
[Assuming that FAT Mirroring is Enabled, this is almost always true] |
Root Directory |
Start of Partition + Number of Reserved Sectors + (Number of Sectors Per FAT * 2) + Number of Sectors in root directory |
Data Area |
FAT 항목에는 다음을 나타내는 값이 포함될 수 있습니다.
- 주어진 파일에 대한 FAT 체인의 다음 클러스터
- 무료 클러스터, 즉 어떤 파일에서도 사용하지 않는 클러스터
- 배드 섹터 정보, 즉 물리적으로 손상되어 사용해서는 안 되는 하나 이상의 섹터가 포함된 클러스터입니다.
- The final cluster of a file
Entries of FAT Table |
Number (Hex.) |
Description |
0 |
Free cluster |
???? |
Cluster in use, next cluster in chain |
FF0-FF6 / FFF0-FFF6 |
Cluster is reserved |
FF7 /FFF7 |
Cluster contains bad sectors |
FF8-FFF / FFF8-FFFF |
End of file |
각 FAT 항목은 클러스터 주소를 나타내며 파일에 대한 다음 클러스터 주소(FAT 항목)에 대한 포인터를 포함합니다. 파일의 마지막 FAT 항목에는 포인터 대신 최종 클러스터 값이 포함됩니다. FAT의 처음 두 항목에는 FAT에 대한 정보가 들어 있습니다. FAT의 이러한 바이트에는 미디어 설명자 바이트가 포함됩니다. 이 바이트는 이 FAT 항목이 있는 디스크 미디어 유형을 찾는 데 사용할 수 있습니다.
FAT의 세 번째 및 후속 항목은 파일에서 사용할 수 있는 첫 번째 클러스터부터 시작하여 디스크 공간 클러스터에 할당됩니다. FAT 항목은 전달하려는 정보를 기반으로 위의 표에 제공된 값 중 하나를 가질 수 있습니다.
12비트 FAT의 000H 또는 16비트 FAT의 0000H는 이 FAT 위치에 해당하는 클러스터가 할당되지 않았거나 비어 있음을 나타냅니다. 12비트 FAT에서 FF8H에서 FFFH까지 또는 16비트 FAT에서 FFF8H에서 FFFFH까지의 값은 이 클러스터가 파일 클러스터 체인의 마지막 클러스터임을 나타냅니다.
12의 FF0H에서 FF7H까지의 값 – 비트 FAT는 예약된 클러스터를 나타냅니다. 12비트 FAT의 FF7H 또는 16비트 FAT의 FFF7H는 FAT의 위치에 해당하는 클러스터가 불량 클러스터, 즉 기본적으로 불량 섹터를 포함하는 클러스터임을 나타냅니다. 이 클러스터는 데이터 저장에 사용되지 않습니다.
FAT 테이블의 다른 값은 파일 할당 체인의 다음 클러스터에 대한 포인터입니다.
Windows가 부적절함을 감지하는 방법 – 종료
매우 흔한 일이며 Windows를 사용할 때 전원 장애, 소프트웨어 손상, 우발적인 종료 등과 같은 이유로 인해 컴퓨터가 부적절하게 종료된다는 사실을 여러 번 보셨기를 바랍니다. 컴퓨터를 추가로 다시 시작하면 부팅 프로세스 중에 화면에 부적절한 – 종료 메시지가 표시되고 운영 체제가 디스크에서 오류를 검색합니다.
다음 두 그림은 32비트 FAT의 시작 부분의 256바이트를 보여주지만 이에 대해 논의하려면 초기 8바이트만 필요합니다.
사실, Windows 운영 체제가 메모리에 로드되면, 즉 Windows가 시작되면 FAT의 8번째 바이트(또는 오프셋 7H)는 0FH 또는 FFH에서 07H 또는 F7H가 됩니다.
Microsoft는 실행 중인 운영 체제가 포함된 볼륨에 대해서만 바이트 0FH를 사용하고 액세스하는 다른 볼륨에 대해 바이트 FFH를 사용합니다.
Windows가 부팅을 시작하면 8번째 바이트가 07H 또는 F7H로 변경되며 Windows가 제대로 종료된 경우에만 0FH 또는 FFH로 다시 설정됩니다.
정전이 발생하거나 컴퓨터의 전원 스위치가 우발적으로 꺼지거나 일부 소프트웨어 문제로 인해 시스템이 수동으로 재부팅되는 경우 이 바이트는 다음 시간에 Windows 운영 체제에 알리는 07H 또는 F7H로 유지됩니다. 부팅할 때 일종의 부적절한 종료가 발생한 다음 Windows는 디스크 스캔 프로그램(Scandisk)을 사용하여 디스크에 오류가 있는지 확인합니다.
루트 디렉토리
마지막 FAT 다음은 루트 디렉토리입니다. 루트 디렉토리는 하드 디스크 드라이브에 저장된 정보의 목차와 같습니다. 루트 디렉토리의 위치는 FAT 다음에 위치하므로 부트 레코드의 값을 더하여 쉽게 설정할 수 있습니다.
디렉토리 영역은 파일 이름, 파일 생성 날짜 및 시간, 파일 속성, 파일 크기 및 특정 파일의 시작 클러스터에 대한 정보를 유지합니다. 파일에 대한 이 정보를 설명하는 각 디렉토리 항목은 32바이트 정보입니다.
루트 디렉토리에는 루트 디렉토리에서 분기되는 파일 및 디렉토리에 대한 정보가 들어 있습니다. 모든 추가 디렉토리는 루트 디렉토리와 동일한 형식으로 파일로 저장됩니다. 이전에 루트 디렉토리는 크기가 고정되어 있고 디스크의 고정된 위치에 위치했지만 이제는 파일로 처리되므로 필요에 따라 자유롭게 확장할 수 있습니다.
루트 디렉토리에 저장할 수 있는 파일 수는 사용 중인 FAT 유형에 따라 다릅니다. 예를 들어, 12비트 FAT가 있는 3½인치 1.44Mb 플로피 디스크의 경우 224개 항목으로 제한됩니다. 225번째 파일을 저장하려고 하면 DOS에서 "파일 생성 오류"를 표시합니다. 16비트 FAT가 사용되면 루트 디렉토리에 총 512개의 항목이 있을 수 있습니다. 플로피나 하드 디스크의 각 기본 디렉토리는 루트 디렉토리 항목으로도 작동합니다.
다음 표에는 다양한 미디어 및 FAT에 대한 루트 항목의 제한이 나열되어 있습니다.
Media and File System Description |
Maximum Root Directory Entries |
Single-sided 5¼ Inch 180K FDD |
64 |
Double-sided 5¼ Inch 320K FDD |
64 |
Double-sided 5¼ Inch 360K FDD |
112 |
Double-sided 3½ Inch 720K FDD |
112 |
Double-sided 5¼ Inch 1.2-megabyte FDD |
224 |
Double-sided 3½ Inch 1.44-megabyte FDD |
224 |
Double-sided 3½ Inch 1.68-megabyte DMF format disks (This is why Microsoft created CAB Files!) |
16 |
Double-sided 3½ Inch 2.88-megabyte FDD |
240 |
Hard Drives (FAT12 & FAT16) |
512 |
Hard Drives with FAT 32 (As it treats the route directory as a file) |
65,536 |
이것은 16비트 FAT가 하드 디스크 드라이브에 512개 파일만 저장하도록 제한된다는 의미가 아닙니다. 하위 디렉토리를 사용하여 드라이브 크기에 의해서만 제한된 수의 파일을 저장할 수 있습니다.
플로피의 볼륨 레이블은 일반적으로 부트 섹터 내에 저장되지만 하드 드라이브의 볼륨 레이블은 루트 디렉토리 항목으로 저장되며 부트 섹터에 예약된 공간은 공백으로 남겨져 있습니다. DOS의 DIR 명령은 존재하는 경우 디렉토리에 있는 것을 반환하고 그렇지 않은 경우 부트 섹터에 있는 것을 반환합니다.
디렉토리 항목에는 클러스터 체인에 대한 항목과 파일 이름이 포함됩니다. 따라서 가장 중요한 디렉토리 항목은 모든 하위 디렉토리를 가리키는 클러스터 색인을 포함하기 때문에 루트 디렉토리에 있습니다.
모든 디렉토리에는 "."라는 두 개의 항목이 있습니다. 현재 디렉토리(이 하위 디렉토리)의 경우 ".." 상위 디렉토리(이 하위 디렉토리의 상위 디렉토리). 클러스터에 디렉토리가 포함된 경우 항상 클러스터 시작 부분에 위치하므로 이러한 항목을 쉽게 추적할 수 있습니다.
다음 표는 루트 디렉토리에 있는 디렉토리 항목의 형식을 보여줍니다. 다음에 주어진 표는 루트 디렉토리에 있는 파일의 32바이트 디렉토리 항목을 슬라이스하여 다양한 정보를 저장하는 방법을 보여줍니다.
Offset |
Size |
Description |
00H |
8 Bytes |
Filename
(Also see the next table for the special meaning of first character of file name) |
08H |
3 Bytes |
Extension |
0BH |
1 Byte |
File attributes(See The Table Of File Attributes) |
0CH |
10 Bytes |
Reserved |
16H |
2 Bytes |
Time Created or Last Updated (See Date–Time Format Table) |
18H |
2 Bytes |
Date Created or Last Updated (See Date–Time Format Table) |
1AH |
2 Bytes |
Starting or First cluster of file
(The value 0000H is used in Parent Directory ('..') entries to indicate that the Parent Directory is the Root Directory) |
1CH |
4 Bytes |
File size in Bytes. |
파일 이름은 대문자로 된 이름을 포함하며 파일 이름의 크기가 8자보다 작으면 공백은 ASCII 번호 32의 공백 문자로 채워집니다. 확장자 필드에는 파일의 확장자가 대문자로 포함됩니다.
파일 이름이 8자보다 길면 Windows는 긴 파일 이름을 대문자 6자로 자르고 기본 파일 이름 끝에 "~1"을 추가하여 짧은 파일 이름을 만듭니다.
처음 6자리가 동일한 다른 파일 이름이 이미 있는 경우 숫자가 증가합니다. 확장자는 동일하게 유지되며 이전 버전의 Windows 및 DOS에서 잘못된 문자는 밑줄로 대체됩니다.
긴 파일 이름은 0FH로 설정된 속성 바이트로 표시된 특수 형식의 32바이트 LFN(Long File Name) 디렉토리 항목에 저장됩니다. 지정된 파일 또는 하위 디렉토리에 대해 하나 이상의 긴 파일 이름 디렉토리 항목 그룹이 디스크의 단일 8.3 디렉토리 항목 바로 앞에 옵니다.
각 LFN 디렉토리 항목에는 최대 13자의 긴 파일 이름과 전체 긴 파일 이름을 구성하는 데 필요한 만큼의 운영 체제 문자열이 포함됩니다.
이것이 긴 파일 이름이 파일 시스템에서 가능한 최대 루트 디렉토리 항목 수를 줄이는 이유입니다. Windows가 긴 파일 이름을 지원하는 방법은 이 장의 뒷부분에서 자세히 설명합니다.
파일 이름의 첫 번째 바이트에는 파일에 대한 몇 가지 중요한 정보가 포함될 수도 있습니다. 이 바이트가 제공하는 정보는 다음 표에 있는 정보 중 하나일 수 있습니다.
First Character of File Name |
Value |
Meaning |
00H |
Indicates that this directory entry is unused. |
05H |
Indicates that 1st character of filename is character E5H But actually the file has not been deleted. (See the Meaning of E5H) |
E5H |
The file has been Erased and this directory entry is a deleted file’s directory entry. The data area previously occupied by that file is now free for allocation for another new file. |
2EH |
This is a Sub-directory. The cluster number field of this entry will contain the cluster number of the directory. |
2EH 2EH |
Two 2EH in a directory entry indicate the parent directory entry of a Sub–Directory. The cluster number of this entry will contain the cluster number of the parent directory of this directory. The cluster number will be zero 0000H if the parent directory is root directory. |
속성은 8비트 이진 코드 필드입니다. 다음 표는 주어진 파일에 대한 속성 플래그의 상태에 대해 알려줍니다.
Attribute Bits |
Attribute |
Bit |
Binary |
Hex |
Read Only File Flag |
0 |
.......? |
01H |
Hidden File Flag |
1 |
......?. |
02H |
System File Flag |
2 |
.....?.. |
04H |
Volume Label Flag
(Indicates that the entry is a volume label) |
3 |
....?... |
08H |
Sub–directory
(in same format as directory) |
4 |
...?.... |
10H |
Archive Bit
(File Modified Since Last Backup) |
5 |
..?..... |
20H |
Reserved (Contains 0) |
6 |
.0...... |
- |
Reserved (Contains 0) |
7 |
0....... |
- |
하나의 파일은 여러 속성을 가질 수 있습니다. 예를 들어, 단일 파일은 읽기 전용일 뿐만 아니라 숨겨진 파일일 수도 있고 단일 파일에 시스템 파일 및 숨겨진 파일 속성이 둘 다 있을 수 있습니다. (디렉토리 항목의 인코딩에 대해서는 다음에 제공된 예를 참조하십시오.)
시간 및 날짜는 32비트(16비트 시간 및 16비트 날짜)로 특별히 코딩된 필드입니다. 파일을 생성하거나 마지막으로 업데이트한 시간과 파일을 생성하거나 마지막으로 업데이트한 날짜를 구성하기 위한 이러한 비트 인코딩의 구분은 다음 표에 나와 있습니다.
디렉토리 항목의 16번째 및 17번째 바이트인 파일 생성 또는 마지막 업데이트 시간 항목은 위의 표와 같은 형식을 갖습니다. 인코딩은 다음과 같습니다.
- H는 0에서 23 사이의 시간을 나타내는 이진수입니다.
- M은 분을 나타내는 이진수로 0에서 59 사이의 숫자입니다.
- S는 2초 단위로 초 단위의 이진수입니다.
- 디렉터리 항목의 18번째 및
- 19번째 바이트인 파일 생성 또는 마지막 업데이트 항목의 형식은 다음과 같습니다.
- Y는 0에서 127 사이 또는 1980에서 2107 사이의 이진수입니다.
- M은 월의 이진수이며 1에서 12 사이일 수 있습니다.
- D는 날짜의 이진수이며 1에서 31 사이일 수 있습니다.
이 디렉토리 항목은 첫 번째 클러스터 값을 기반으로 FAT 항목과 연결됩니다. DOS가 디렉토리에서 파일의 시작 클러스터 값을 가지고 있으면 DOS는 FAT를 사용하여 전체 파일을 찾을 수 있습니다. 체인의 엔트리 클러스터는 파일을 구성하는 첫 번째 클러스터입니다. 속성의 디렉토리 플래그가 설정된 경우 이 필드는 새 디렉토리 항목을 가리킵니다.
파일 크기 항목은 4바이트입니다. 이를 통해 FAT32가 최대 4,294,967,295바이트(약 4GiB) 파일의 최대 크기를 지원하는 방법을 계산할 수 있습니다. 4바이트는 32비트를 가지며 32비트 바이너리로 구성된 가능한 최대 파일 크기는 다음과 같습니다.
= 11111111 11111111 11111111 11111111 (B) Bytes
= 4,294,967,295 (D) Bytes
~ 4 GiB
따라서 FAT32는 최대 4GiB의 파일 크기를 지원합니다.
파일의 크기와 파일의 시작 클러스터는 파일이 얼마나 많은 클러스터로 구성되어야 하는지를 계산할 수 있기 때문에 손상된 파일을 복구할 때 데이터 복구에 중요한 리소스가 될 수 있습니다.
앞에 주어진 그림은 7개의 다른 파일에 대한 루트 디렉토리 항목을 보여줍니다. 이러한 항목에 대한 인코딩은 다음 표에 나와 있습니다.
긴 파일 이름(LFN)
루트 디렉토리 논의에서 이미 논의한 바와 같이, 이전에는 루트 디렉토리의 크기가 고정되어 있고 디스크의 고정된 위치에 위치했지만 이제는 파일로 취급되므로 필요에 따라 자유롭게 확장할 수 있습니다.
각 긴 파일 이름은 여러 디렉토리 항목을 사용하기 때문에 긴 파일 이름에 매우 중요합니다. 8.3 파일 이름을 사용하는 운영 체제에 긴 파일 이름 지원을 추가하는 것은 11자 이상을 포함하도록 디렉토리 항목을 확장하는 것만큼 간단하지 않습니다.
이 새 운영 체제가 255자 파일 이름을 반환하면 11자 이하로 수신할 것으로 예상되는 많은 이전 응용 프로그램이 충돌합니다. 프로그램이 읽은 파일 이름을 저장하기 위해 메모리를 따로 설정해야 하기 때문입니다. 파일 이름에 대해 16바이트 및 운영 체제가 해당 공간에 32자를 복사한 다음 다른 데이터를 덮어씁니다. 애플리케이션을 중단시키는 확실한 방법은 임의의 데이터를 데이터 공간에 복사하는 것입니다.
이 문제를 극복하기 위해 Windows 95에서 이전 버전의 DOS 및 Windows 응용 프로그램과의 호환성을 유지하면서 긴 파일 이름을 지원하는 문제에 대한 영리한 솔루션을 찾았습니다.
Norton Disk Doctor와 같은 저수준 디스크 유틸리티를 제외한 대부분의 응용 프로그램은 시스템에서 파일 및 하위 디렉터리 이름을 쿼리할 때 디스크에서 디렉터리 항목을 직접 읽는 것이 아니라 운영 체제에 내장된 열거 기능을 사용하여 쿼리합니다. .
디렉토리 항목이 읽기 전용, 숨김, 시스템 및 볼륨 레이블 속성 Bits의 조합으로 표시된다는 것을 알고 있습니다. 디렉토리 항목의 속성 바이트가 0FH 값을 보유하고 있는 경우 모든 기존 버전의 DOS 및 모든 Windows 95 이전 버전의 Windows에 내장된 열거 함수는 해당 디렉토리 항목이 없는 것처럼 해당 디렉토리 항목을 건너뜁니다.
그런 다음 솔루션은 모든 파일과 하위 디렉토리에 대해 두 개의 이름을 저장하는 것이었습니다. 짧은 이름은 모든 응용 프로그램에서 볼 수 있고 긴 이름은 Windows 95(이상) 응용 프로그램과 다시 작성된 응용 프로그램에서만 볼 수 있습니다. 긴 파일 이름에 대한 지원을 추가합니다. 짧은 파일 이름은 기존의 32바이트 디렉토리 항목에 8.3 형식으로 저장됩니다.
우리는 Windows가 긴 파일 이름을 6자리 대문자로 자르고 기본 파일 이름 끝에 "~1"을 추가하여 긴 파일 이름에서 짧은 파일 이름을 생성한다고 이미 논의했습니다.
처음 6자리가 동일한 다른 파일 이름이 이미 있는 경우 숫자가 증가합니다. 확장자는 동일하게 유지되며 이전 버전의 Windows 및 DOS에서 잘못된 문자는 밑줄로 대체됩니다.
긴 파일 이름은 0FH로 설정된 속성 바이트로 표시된 특수 형식의 32바이트 LFN(Long File Name) 디렉토리 항목에 저장됩니다. 지정된 파일 또는 하위 디렉터리에 대해 하나 이상의 긴 파일 이름 디렉터리 항목 그룹이 디스크의 단일 8.3 디렉터리 항목 바로 앞에 옵니다.
각 긴 파일 이름 디렉토리 항목에는 최대 13자의 긴 파일 이름과 전체 긴 파일 이름을 구성하는 데 필요한 만큼의 운영 체제 문자열이 포함됩니다.
긴 파일 이름 디렉토리 항목의 경우 파일 이름은 유니코드 형식으로 저장되며 ASCII의 1바이트와 달리 문자당 2바이트가 필요합니다. 파일 이름 문자는 세 개의 개별 필드에 분산되어 있습니다.
- 처음 10바이트(5자) 길이,
- 두 번째 12바이트(6자),
- 세 번째 4바이트(2자).
- 디렉토리 항목의 첫 번째 바이트의 가장 낮은 5비트는 다른 항목과 관련된 디렉토리 항목의 위치를 식별하는 시퀀스 번호를 보유합니다.
- 동일한 파일과 연결된 긴 파일 이름 디렉터리 항목입니다.
긴 파일 이름에 세 개의 LFN 디렉토리 항목이 필요한 경우 첫 번째 항목의 시퀀스 번호는 1, 두 번째 항목의 시퀀스 번호는 2, 세 번째 항목의 시퀀스 번호는 3이고 세 번째 항목의 첫 번째 바이트의 비트 6이 설정됩니다. 시퀀스의 마지막 항목임을 나타내려면 1로 설정합니다.
속성 필드는 8.3 디렉터리 항목에서와 같이 LFN 디렉터리 항목의 동일한 위치에 나타납니다. 파일 시스템은 속성 바이트를 검사할 때까지 어떤 유형의 디렉터리 항목을 처리하는지 알지 못하기 때문입니다. 시작 클러스터 번호 필드도 같은 위치에 나타나지만 LFN 디렉토리 항목에서 그 값은 항상 0입니다. 유형 표시기 필드는 또한 모든 긴 파일 이름에서 0을 유지합니다.
긴 파일 이름의 문제점 중 하나는 짧은 파일보다 디스크 공간을 더 많이 사용한다는 것입니다. 긴 이름이 서브디렉토리에 저장되어 있을 때는 큰 문제가 되지 않습니다. 디스크 공간이 있는 한 서브디렉토리는 추가된 디렉토리 항목을 수용할 수 있도록 커질 수 있지만 루트 디렉토리에서 사용할 수 있는 최대 디렉토리 항목 수는 고정되어 있고 긴 파일 이름은 낭비되기 때문입니다. 크기가 제한된 루트 디렉토리의 공간.
이제 예를 들어 하드 디스크의 루트 디렉토리에 최대 512개의 디렉토리 항목이 포함되어 있는 경우 128자의 이름에는 11개의 항목이 필요하므로 긴 이름에 10개, 짧은 이름에 1개만 만들 수 있습니다. 각각 128자의 이름이 지정된 경우 루트 디렉토리의 파일 및 하위 디렉토리.
FAT32 시스템에서 루트 디렉토리는 크기가 커질 수 있는 파일로 취급되기 때문에 FAT32 아래의 루트 디렉토리도 커질 수 있기 때문에 FAT32에서도 문제가 사라집니다.
데이터 영역(또는 파일 영역)
루트 디렉토리를 따라 데이터 영역(또는 파일 영역)이 시작됩니다. 오히려 루트 디렉토리 이후 볼륨의 나머지 부분이 데이터 영역이라고 말할 수 있습니다.
데이터 영역은 디스크 표면에 저장된 실제 데이터를 포함합니다. DOS는 데이터 영역의 첫 번째 섹터에 대해 클러스터 번호 2를 사용하므로 다양한 계산을 수행할 때 클러스터 번호가 2부터 시작해야 한다는 점을 염두에 두어야 합니다.
하드 디스크 드라이브를 포맷할 때 DOS의 FORMAT 명령은 데이터 영역의 데이터를 삭제하거나 덮어쓰지 않습니다. FORMAT 명령은 디렉토리 항목과 FAT 항목만 제거하며 실제 데이터 영역은 건드리지 않습니다.
이렇게 하면 실수로 포맷된 플로피 디스크의 모든 경우에 가능하지 않은 실수로 포맷된 하드 디스크 드라이브의 복구가 가능합니다. Windows의 전체 형식과 마찬가지로 플로피의 데이터 영역은 F6H 문자로 채워지고 모든 정보를 덮어씁니다.
DOS는 "마지막 클러스터 사용"(LCU) 포인터라고 하는 16비트/32비트 포인터를 사용하여 마지막으로 사용된 클러스터 번호를 저장합니다. 초기에 이 포인터 값은 0이고 특정 클러스터에 일부 정보가 기록되면 해당 클러스터 번호가 LCU 포인터에 저장됩니다.
그 후 새로운 정보가 기록될 때마다 DOS는 LCU 번호부터 여유 클러스터를 검색합니다. 이렇게 하면 데이터가 사용되지 않은 새 영역에 기록될 때 디스크에 기록된 새 데이터가 연속적으로 유지됩니다.
이제 파일이 디스크의 하나의 인접한 영역에 있으므로 실수로 삭제된 경우 데이터를 이해하는 것이 훨씬 쉬울 것입니다. 디스크 끝에 도달하거나 시스템이 재설정되면 LCU 포인터 값이 0으로 재설정됩니다.
하지만 문제는 여기에서 지속되지 않습니다. 디스크에 새 파일만 만들고 이전에 저장된 파일에서 파일을 삭제하거나 수정하지 않는 것은 실제로 불가능합니다. LCU만 사용하면 파일을 많이 만들고 삭제하는 경우 문제가 발생합니다. 이렇게 하면 새 데이터가 하드 디스크의 내부 트랙으로 점점 더 많이 이동해야 하기 때문입니다.
따라서 디스크에 저장된 파일이 이동되거나 삭제되면 파일이 차지하는 데이터 영역의 클러스터는 이제 데이터 영역에서 사용 가능한 할당되지 않은 클러스터로 설정되고 새 데이터를 쓸 준비가 됩니다. 그들에. 이렇게 하면 운영 체제에서 모든 데이터를 디스크의 내부 트랙으로 이동할 필요가 없습니다.
그러나 파일을 많이 삭제하고 생성하면 디스크의 데이터가 조각화되어 데이터에 조각화가 발생합니다.
단편화되고 조각난 데이터
디스크의 각 파일이 클러스터의 연결 목록으로 저장되어 파일에 포함된 데이터가 디스크의 어느 위치에나 위치할 수 있다는 점에 대해 이미 논의했습니다. 4,096바이트 클러스터를 사용하는 디스크에 10MB 파일이 저장되어 있으면 2,560개의 클러스터를 사용하고 있습니다. 이러한 클러스터는 디스크의 다른 트랙, 다른 플래터에 있을 수 있으며 실제로는 어디든지 있을 수 있습니다.
파일을 디스크 전체에 퍼뜨릴 수 있지만 이는 바람직한 상황과는 거리가 멉니다. 그 이유는 바람직하지 않은 느린 성능입니다. 하드 디스크는 주로 내부에 기계 부품이 있기 때문에 상대적으로 느린 장치입니다. 하드 디스크가 헤드를 다른 트랙으로 이동해야 할 때마다 수천, 수천 개의 프로세서 사이클에 해당하는 시간이 걸립니다.
따라서 각 파일이 디스크 주위에 퍼지는 정도를 최소화하고자 합니다. 이상적인 경우 모든 파일은 실제로 완전히 연속적입니다. 즉, 사용하는 각 클러스터가 디스크에서 차례로 위치하게 됩니다. 이렇게 하면 하드 디스크에 의한 많은 기계적 움직임 없이 필요한 경우 전체 파일을 읽을 수 있습니다.
실제로 파일 시스템은 파일 전체 또는 대부분이 인접한 상태에서 시작하지만 일정 기간 동안 파일을 만들고 삭제한 결과 디스크의 데이터가 점점 더 조각화됩니다.
단편화를 이해하기 위한 간단한 예를 살펴보겠습니다. 아래 표는 12개 클러스터의 사용량을 나타냅니다. 처음에는 테이블이 비어 있습니다.
cluster 1 |
cluster 2 |
cluster 3 |
cluster 4 |
cluster 5 |
cluster 6 |
cluster 7 |
cluster 8 |
cluster 9 |
cluster 10 |
cluster 11 |
cluster 12 |
이제 이 디스크에 파일 A, B, C 및 D의 4개 파일을 생성한다고 가정해 보겠습니다. 파일 A는 클러스터 1개, 파일 B는 4개, 파일 C는 2개, 파일 D는 3개를 사용합니다. 사용 가능한 여유 공간에 저장하고 다음 그림과 같이 모두 연속적으로 시작합니다.
잠시 후 파일 C를 삭제하고 이렇게 하면 파일 C가 차지했던 두 클러스터가 이제 비어 있거나 할당되지 않은 상태가 됩니다. 이렇게 하면 디스크가 다음 그림과 같이 표시됩니다.
이제 3개의 클러스터가 필요한 새 파일 E를 만듭니다. 그러나 디스크에는 3개의 클러스터 길이인 연속 블록이 없기 때문에 이전에 C가 차지했던 공간의 일부를 사용하여 E를 두 개의 조각으로 분할해야 합니다. 이제 디스크는 다음에 주어진 그림과 같이 보일 것입니다. :
일정 기간 후에 파일 A와 E를 삭제하고 5개의 클러스터를 차지하는 파일 F를 생성하겠습니다. 이제 디스크가 아래 그림과 같이 보입니다.
이제 우리는 파일 F가 세 조각으로 나뉘는 것을 볼 수 있습니다. 디스크에 있는 이러한 유형의 데이터를 단편화된 데이터라고 합니다. 위에 주어진 예는 단편화의 매우 단순화된 예입니다. 실제 디스크에는 수천 개의 파일과 수천 개의 클러스터가 있으므로 문제가 확대되기 때문입니다. 이것은 무슨 일이 일어나는지에 대한 일반적인 아이디어를 제공합니다.
조각 모음 프로그램(Microsoft의 DEFRAG 프로그램, Norton의 SpeedDisk와 같은)이 하는 일은 디스크를 재정렬하여 파일을 연속적인 형태로 되돌리는 것입니다. 디스크 조각 모음 유틸리티를 실행하면 우리가 이야기한 디스크의 조각 모음된 데이터가 아래 그림과 같이 표시됩니다.
조각난 데이터와 조각 모음된 데이터는 많은 경우 데이터 복구 중에 매우 중요합니다.
데이터 복구를 위해 충돌한 두 개의 디스크가 있다고 가정해 보겠습니다. 하나는 조각난 데이터이고 다른 하나는 최근에 조각 모음되었습니다. 그리고 파일의 FAT 및 Root 정보가 손상되어 양쪽 디스크 표면에서 데이터를 수집하여 데이터 복구를 수행해야 합니다. 이러한 유형의 경우 복구 비율은 디스크에 있는 데이터 조각 모음에 비례합니다.
분명히 조각 모음된 디스크에서 데이터 복구가 쉽고 데이터 복구 비율도 높지만 반면에 조각난 디스크에서 데이터 복구는 어렵고 시간이 많이 걸리며 복구된 데이터도 실망스러울 것입니다.
데이터 손상의 원인 식별
순서대로 수행하면 부패 영역을 찾는 데 도움이 될 수 있는 몇 가지 특정 단계가 있습니다. 이러한 단계는 다음과 같이 복구 절차와 함께 설명되었습니다.
부팅 가능한 플로피로 시스템 부팅
사용하고 있던 운영 체제의 부팅 가능한 플로피 또는 CD로 시스템을 부팅합니다. 논리 드라이브 C: 또는 D: 또는 무엇이든 읽으십시오. 드라이브에 액세스할 수 있는 경우 드라이브에서 모든 데이터를 복사하기만 하면 됩니다. 이제 디스크가 덜 스트레스를 받으면서 제대로 부팅되지 않는 이유를 알 수 있습니다.
MBR 정보 확인
하드 디스크에서 가장 중요한 첫 번째 데이터 조각은 MBR과 그 안에 포함된 테이블인 파티션 테이블입니다. "TTEDITOR.EXE"라는 이름의 작은 디스크 편집 도구가 이 책에 포함된 디스크에 포함되어 있습니다. 또는 다른 프로그램을 사용하여 하드 디스크를 분석할 수 있습니다.
Diskedit는 데이터 복구 목적으로 디스크를 분석하는 데 가장 적합한 프로그램입니다. 글쎄, 당신이 사용하기 쉽다고 느끼는 프로그램이 당신에게 달려 있습니다. MBR과 특히 파티션 테이블을 읽으십시오.
이 장에서 논의된 MBR에 대한 설명에서 보았듯이 MBR의 후반부에는 문제가 있는 경우 이에 의해 오류 메시지로 표시되는 읽을 수 있는 텍스트가 있습니다. 이러한 문자 메시지는 다음과 같이 표시됩니다.
“Invalid partition table, Setup can not continue”
“Error loading operating system, Setup can not continue”
이러한 오류 메시지를 사용할 수 없으면 MBR이 손상되었음을 나타냅니다. "당신의 시스템은 ....에 의해 해킹당했습니다." 또는 기타 예상치 못한 메시지와 같은 불법 메시지가 대신 표시될 수도 있습니다. MBR에 심각한 문제가 있음을 나타내며, 아마도 바이러스 감염 때문일 가능성이 큽니다.
이제 초기 446바이트 이후에 MBR의 파티션 테이블을 확인하십시오. 파티션 테이블이 비어 있으면 부팅 시 오류 메시지가 표시되지 않습니다. DOS는 파티션되지 않은 드라이브를 무시합니다. A: 드라이브에 부팅 가능한 플로피가 없으면 시스템은 A: 드라이브에 부팅 가능한 플로피를 삽입하도록 요청합니다.
여기서 주목해야 할 중요한 점은 이전에 작동하던 드라이브에서 파티션 테이블이 비어 있으면 안 되므로 무언가가 지워져 있어야 한다는 것입니다. 파티션 테이블이 비어 있으면 백업에서 MBR을 복원합니다.
복구를 성공적으로 완료한 후에도 백업이 되지 않으면 이 섹터에 물리적인 손상이 있는 것입니다. 데이터를 복구하려면 다음 장에서 설명하는 데이터 복구 프로그래밍 기술을 시도해 보십시오. 프로그래머가 전혀 아니라면 좋은 데이터 복구 센터를 방문하는 것이 좋습니다.
MBR 백업이 없는 경우 Diskedit와 같은 일부 디스크 편집 도구를 사용하여 수동으로 파티션 테이블을 작성해 보십시오. 그러나 어떤 경우에는 그렇게 하기가 매우 어렵습니다.
프로그래머가 아니고 백업이 없는 사용자를 위해 데이터 복구 프로젝트 개발 때부터 대학 시절에 사용하던 방법을 사용할 수 있습니다.
당신이 해야 할 일은 디스크 크기가 거의 같고 파티션 수와 가장 중요한 것은 컴퓨터에 있던 운영 체제와 가장 가까운 컴퓨터를 검색하는 것입니다.
그러나 대부분의 경우 완벽하게 작동합니다. 그러나 그렇지 않은 경우 최소한 디스크의 첫 번째 파티션에 액세스하는 데 도움이 될 수 있습니다. 운영 체제도 첫 번째 파티션에 설치되어 있고 다른 정보가 손상되지 않은 경우 정상적으로 부팅됩니다.
MBR이 정상이면 DBR 확인
MBR이 정상이면 DBR(DOS 부트 레코드)을 확인합니다. 이미 논의한 바와 같이 이것은 DOS 파티션의 첫 번째 섹터이며 숨겨진 파일을 로드하고 운영 체제를 부팅하는 작은 프로그램을 포함합니다.
DBR에는 FAT, 루트 디렉터리 클러스터 및 파티션 크기 등에 대한 중요한 정보도 포함되어 있습니다. DBR이 손상되었거나 잘못된 정보가 있는 경우 DBR 정보를 읽기 위해 Diskedit와 같은 유틸리티를 사용하여 백업에서 DBR을 복원하십시오. .
데이터 복구를 위한 모든 전문 소프트웨어는 DBR을 다시 쓸 수 있습니다. 이 책의 다음 장에서 프로그래밍으로 파티션의 DBR을 다시 작성하는 방법에 대해 논의할 것입니다.
또한 적절한 정보를 제공하여 Diskedit의 도움으로 파티션의 DBR을 다시 쓸 수 있습니다.
부패 영역을 찾는 아주 쉬운 방법도 있습니다. 화면에 표시되는 오류 메시지에는 표시되는 특정 원인이 있습니다. 몇 가지 중요한 오류 메시지에 대한 설명은 다음과 같습니다.
Message |
Description |
“Sector not found reading drive” |
This message can appear during any DOS operation. Generally, it is caused either by fading or the loss of a sector ID. |
“Data error reading drive” |
This message can appear during any DOS operation. It is caused by failing the data check – CRC (Cyclic Redundancy Check) or ECC (Error Correction Code). This “Data check” refers to the mechanism used to check whether the data read from the disk is reliable. |
“ 0 hard disk(s) found" |
It is displayed if the hard disk is not detected by the BIOS of the computer. Check the power and data cable connections of the hard disk. If connections are all right, the problem may be due to some hardware error of hard disk. |
“Hard Drive failure, press F1 to continue” |
Same as above |
“Invalid drive specification” |
It is displayed in the condition when either the system does not recognize the hardware, or there is no partition information, or the device driver of the drive is missing. |
“Invalid configuration press F1 to continue” |
If the hard disk is available, Either the battery in the motherboard is dead, and the system has lost its configuration SETUP information or the disk is not responding. |
“Invalid partition table” |
This is the MBR error message. It is displayed when the partition table of the MBR does not have the valid partition information. |
“Error loading operating system” |
This is the MBR error message. It is displayed due to any type of MBR information corruption. |
“Missing operating system” |
Same as above. |
“Disk boot failure” |
It is the DBR error message. Normally, The Hard drive should be accessible if you boot from the floppy. Though it is not bootable but that should not affect the access to the data of the drive. |
“non system disk or disk error” |
Same as above. |
“Bad or missing command interpreter” |
This message is displayed due to Bad or Missing Command Interpreter. For example if the operating do not find the command.com in current path or the command.com is corrupted. |