FAT 파일 시스템 설계

Design of the FAT file system
뚱뚱해요.
개발자Microsoft, SCP, IBM, Compaq, 디지털 리서치, Novell, Caldera
풀네임파일 할당 테이블:
FAT12(12비트판),
FAT16(16비트판),
FAT32 (28비트가 사용되는 32비트 버전),
exFAT(64비트 버전)
소개했다1977년(스탠드 아론 디스크 BASIC-80)
FAT12: 1980년 8월 (SCP QDOS)
FAT16: 1984년 8월 (IBM PC DOS 3.0)
FAT16B: 1987년 11월 (Compaq MS-DOS 3.31)
FAT32: 1996년 8월 (Windows 95 OSR2)
exFAT: 2006년 11월 (Windows Embedded CE 6.0)
파티션 식별자MBR/EBR:
FAT12:0x01e.a.
FAT16:0x040x060x0Ee.a.
FAT32:0x0B0x0Ce.a.
exFAT:0x07e.a.
BDP:
EBD0A0A2-B9E5-4433­87C0-68B6B72699C7
구조물들
디렉토리 내용테이블
파일 할당링크 리스트
불량 블록클러스터 태그 부착
한계
최대 볼륨 크기FAT12: 32 (64 클러스터의 경우 256 )
FAT16: 2 (64 클러스터용 4개)
FAT32: 2 (4 섹터에 대해 16)
최대 파일 크기4,294,967,295 바이트 (4 - 1) (FAT16B 및 FAT32[1] 사용시)
최대 파일 수FAT12: 4,068 (8 클러스터)
FAT16: 65,460 (32 클러스터)
FAT32: 268,173,300 (32 클러스터용)
최대 파일 이름 길이8.3 파일명, 즉 LFN을 사용하는 경우 255자의 UCS-2 문자
특징들
기록된 날짜변경일시, 작성일시(DOS 7.0 이후만), 액세스일시(ACCDATE가 [2]유효하게 되어 있는 경우만), 삭제일시(DELWATCH 2만)
날짜 범위1980-01-01 ~2099-12-31 (2107-12-31)
날짜 해결마지막으로 수정한 시간은 2초입니다.
작성시간 10밀리초,
액세스 날짜로 1일,
삭제 시간 2초
포크비원어민
특성읽기 전용, 숨김, 시스템, 볼륨, 디렉토리, 아카이브
파일 시스템 권한FAT12/FAT16: DR-DOS, PalmDOS, Novell DOS, OpenDOS, FlexOS, 4680 OS, 4690 OS, 동시 DOS, 멀티 사용자 DOS, 시스템 매니저, REAL/32에서만 읽기, 쓰기, 실행, 삭제에 대한 파일, 디렉토리 및 볼륨 액세스 권한(권한만)다중 사용자 보안이 로드된 경우에만 p/Owner 권한 클래스)
FAT32: 부분, DR-DOS, REAL/32 및 4690 OS만 지원
투과적 압축FAT12/FAT16: 볼륨 단위, SuperStor, Stacker, DoubleSpace, DriveSpace
FAT32: 없음
투과적 암호화FAT12/FAT16: 볼륨당 DR-DOS만 지원
FAT32: 없음

FAT 파일 시스템은 특정 유형의 컴퓨터 파일 시스템 아키텍처 및 이를 사용하는 업계 표준 파일 시스템 패밀리입니다.

FAT 파일 시스템은 단순하고 [3]견고한 레거시 파일 시스템입니다.매우 가벼운 구현에서도 뛰어난 성능을 제공하지만 일부 최신 파일 시스템과 동일한 성능, 신뢰성 및 확장성을 제공할 수 없습니다.그러나 현재 개발거의 모든 운영체제와 많은 가정용 컴퓨터, 모바일 장치임베디드 시스템에서 호환성을 이유로 지원되므로 1981년부터 현재까지 거의 모든 유형과 연령대의 컴퓨터와 장치 간의 데이터 교환에 적합한 파일 시스템입니다.

FAT는 1977년에 플로피 디스크에 사용하기 위해 설계되었으며 20년 동안 DOS 및 Windows 9x 시대에 걸쳐 거의 보편적으로 하드 디스크에 적용되어 사용되었습니다.오늘날 FAT 파일 시스템은 여전히 플로피 디스크, USB 스틱, 플래시 및 기타 솔리드 스테이트 메모리 카드와 모듈, 그리고 많은 휴대용 및 임베디드 장치에서 흔히 볼 수 있습니다.DCF[4]1998년부터 디지털 카메라의 표준 파일 시스템으로 FAT를 구현하고 있습니다.FAT는 EFI 시스템 파티션(파티션 타입)에도 사용됩니다.EFI 준거 컴퓨터의 부트 스테이지에 있는 0xEF).

플로피 디스크의 경우 FAT는 ECMA-107[5]ISO/IEC 9293:1994[6](ISO 9293:1987을 대체[7])로 표준화되어 있습니다.이러한 규격은 짧은 8.3 파일 이름만 지원하는 FAT12 및 FAT16을 대상으로 하며, VFAT를 사용하는 긴 파일 이름은 부분적으로 [8]특허가 부여됩니다.구글 특허에 따르면 2019년 '길고 짧은 파일명을 위한 공통 이름공간'(US5758352A)의 상태가 만료돼 특허가 완전히 [9]만료될 가능성이 있다.

기술 개요

파일 시스템의 이름은 파일 시스템이 포맷할 때 정적으로 할당된 인덱스 테이블인 파일 할당 테이블을 자주 사용하는 데서 유래합니다.테이블에는 디스크 스토리지의 연속 영역인 각 클러스터의 엔트리가 포함되어 있습니다.각 항목에는 파일의 다음 클러스터 번호 또는 파일의 끝, 사용되지 않은 디스크 공간 또는 디스크의 특수 예약 영역을 나타내는 마커가 포함됩니다.디스크의 루트 디렉토리에는 그 디렉토리에 있는 각 파일의 첫 번째 클러스터 번호가 포함되어 있습니다.그러면 운영체제는 FAT 테이블을 통과하여 파일 끝에 도달할 때까지 디스크 파일의 각 연속된 부분의 클러스터 번호를 클러스터 체인으로 조회할 수 있습니다.거의 같은 방법으로 서브 디렉토리는 각 파일의 디렉토리 엔트리를 포함하는 특수 파일로 구현됩니다.

원래 8비트 파일 시스템으로 설계되었지만 Disk 드라이브가 발전함에 따라 클러스터의 최대 수가 크게 증가하여 각 클러스터를 식별하는 데 사용되는 비트 수가 증가했습니다.연속되는 FAT 형식의 메이저버전은 테이블 요소 비트 수(12(FAT12), 16(FAT16) 및 32(FAT32)를 따서 명명됩니다.원래의 8비트 FAT 전구체를 제외하고, 이러한 각 변형은 여전히 사용되고 있습니다.FAT 표준은 일반적으로 기존 소프트웨어와의 하위 호환성을 유지하면서 다른 방법으로도 확장되었습니다.

레이아웃

FAT 파티션 또는 디스크의 구조 순서 개요
지역 섹터별 크기 내용물
예약 섹터 (예약 섹터 수) 부트 섹터
FS 정보 섹터(FAT32 한정)
더 많은 예약 섹터(옵션)
FAT 지역 (FAT 수) * (FAT당 섹터 수) 파일 할당 테이블 #1
파일 할당 테이블 #2 ... (옵션)
루트 디렉토리 영역 (루트 엔트리 수 * 32) / (섹터당 바이트 수) 루트 디렉토리(FAT12 및 FAT16 한정)
데이터 영역 (클러스터 수) * (클러스터당 최대) 데이터 영역(파일 및 디렉터리용)...(파티션 또는 디스크의 끝에)

FAT 파일 시스템은 다음 4개의 영역으로 구성됩니다.

예약 섹터
첫 번째 예약된 섹터(논리 섹터 0)는 부트 섹터(볼륨 부트 레코드 또는 단순 VBR이라고도 함)입니다.여기에는 BIOS Parameter Block(BPB; 파라미터 블록)이라고 불리는 영역이 포함되어 있습니다.이 영역에는 기본적인 파일 시스템 정보, 특히 파일 시스템의 유형과 다른 섹션의 위치에 대한 포인터가 포함되어 있으며 일반적으로 운영 체제의 부트 로더 코드가 포함되어 있습니다.
부트 섹터로부터의 중요한 정보는 DOS 및 OS/2에서 드라이브 파라미터 블록(DPB)이라고 불리는 운영체제 구조를 통해 접근할 수 있습니다.
예약된 섹터의 총 개수는 부트 섹터 내의 필드에 나타나며, FAT32 파일 시스템에서는 [10]보통 32개입니다.
FAT32 파일 시스템의 경우 예약된 섹터에는 논리 섹터 1의 파일 시스템 정보 섹터와 논리 섹터 6의 백업 부트 섹터가 포함됩니다.
다른 많은 벤더가 부트스트랩 로더에 대해 싱글 섹터 셋업(논리 섹터 0만)을 계속 사용하고 있는 가운데, FAT32가 도입된 이후, 마이크로소프트의 부트 섹터 코드는 논리 섹터 0과 논리 섹터 2의 서브루틴에 의존해 논리 섹터 0으로 확대되고 있습니다.백업 부트 섹터 영역도 3개의 논리 섹터 6, 7, 8로 구성됩니다.경우에 따라 Microsoft는 확장 부트 로더용으로 예약된 섹터 영역의 섹터 12도 사용합니다.
FAT 지역
일반적으로 디스크 복구 유틸리티에서도 거의 사용되지 않지만 이중화 검사를 위해 파일 할당 테이블의 복사본이 2개 포함되어 있습니다.
파일 및 디렉토리에서 사용되는 클러스터를 나타내는 데이터 영역 맵입니다.FAT12 및 FAT16에서는 즉시 예약된 섹터를 따릅니다.
일반적으로 추가 복사본은 쓰기 시 엄격한 동기화 상태로 유지되며, 읽기 시 첫 번째 FAT에서 오류가 발생한 경우에만 사용됩니다.
맵의 첫 번째 2개의 클러스터(클러스터 0과 1)에는 특별한 값이 포함되어 있습니다.
루트 디렉토리 영역
이것은 루트 디렉토리에 있는 파일 및 디렉토리에 대한 정보를 저장하는 디렉토리 테이블입니다.FAT12 및 FAT16에서만 사용되며, 이 볼륨 작성 시 사전 할당되는 고정 최대 크기를 루트 디렉토리에 적용합니다.FAT32는 루트 디렉토리를 파일 및 기타 디렉토리와 함께 데이터 영역에 저장하므로 이러한 제약 없이 확장할 수 있습니다.따라서 FAT32의 경우 데이터 영역이 여기서 시작됩니다.
데이터 영역
여기에는 실제 파일 및 디렉토리 데이터가 저장되며 파티션의 대부분을 차지합니다.일반적으로 데이터 영역의 사용되지 않는 부분은 IBM 호환 시스템에서 포맷하는 동안 INT 1Eh의 Disk Parameter Table(DPT)에 따라 0xF6의 필러 값으로 초기화되지만 Atari 포트폴리오에서도 사용됩니다.일반적으로 8인치 CP/M 플로피에는 0xE5 [11]값이 미리 포맷되어 있습니다.디지털[12] 리서치를 통해 이 값은 Atari ST 포맷된 [nb 1]플로피에도 사용되었습니다.Amstrad는 대신 0xF4를 사용했습니다.일부 최신 포메터는 0x00의 값을 사용하여 하드 디스크를 지우는 반면, 플래시 메모리에서는 0xFF(프로그램되지 않은 플래시 블록의 기본값)를 사용하여 마모를 줄입니다.후자의 값은 일반적으로 ROM 디스크에서도 사용됩니다(일부 고급 포맷툴에서는 포맷필러 바이트를 설정할 수 있습니다).[nb 2]
파일 및 하위 디렉토리의 크기는 FAT에서 파일 체인에 링크를 추가하는 것만으로 임의로 늘릴 수 있습니다.파일은 클러스터 단위로 할당되므로 1KB 파일32KB 클러스터에 있으면 31KB가 낭비됩니다.
FAT32는 일반적으로 데이터 영역의 첫 번째 클러스터인 클러스터 번호 2에서 루트 디렉토리 테이블을 시작합니다.

FAT는 헤더 내의 모든 엔트리(Atari ST 부트섹터 상의 일부 엔트리 제외)[12] 및 FAT에 리틀엔디안 형식을 사용합니다.클러스터 수에 필요한 수보다 많은 FAT 섹터를 할당할 수 있습니다.대응하는 클러스터가 없는 경우 각 FAT 복사본의 마지막 섹터 끝을 사용하지 않을 수 있습니다.총 섹터 수(부트 레코드에 기재된 바와 같이), 데이터(클러스터 × 클러스터당 섹터 수), FAT(FAT당 FAT × 섹터 수), 루트 디렉토리(FAT32의 경우 n/a) 및 부트 섹터를 포함한 숨겨진 섹터 수보다 클 수 있습니다.이 경우 볼륨 끝에 사용되지 않는 섹터가 발생합니다.파티션에 파일시스템이 점유하는 섹터의 합계수보다 많은 섹터가 포함되어 있는 경우는, 파티션의 마지막에 볼륨 후에 미사용 섹터가 됩니다.

예약 섹터 영역

부트 섹터

플로피 디스크와 같이 파티션이 없는 스토리지 디바이스에서는 부트 섹터(VBR)가 첫 번째 섹터(물리 CHS 주소 0/0/1 또는 LBA 주소 0의 논리 섹터 0)입니다.하드 디스크와 같은 파티션 스토리지 디바이스의 경우 부팅 섹터는 디바이스의 파티션 테이블에 지정된 파티션의 첫 번째 섹터입니다.

DOS 2.0 이후 IBM 호환 x86 시스템에 대해 대부분의 FAT 버전에서 사용되는 부트 섹터의 일반적인 구조는 다음과 같습니다.

바이트 오프셋 길이(바이트) 내용물
0x000 3 점프 명령.부트 섹터가 부트 섹터의 마지막 2바이트(시스템 BIOS 또는 MBR에 있는 대부분의 부트 로더에 의해 테스트됨)에 유효한 시그니처가 존재하며, 이 볼륨이 부트되면 이전 부트 로더는 특정 레지스터 값으로 이 엔트리 포인트에 실행을 전달하고 점프 명령은 나머지(비)를 건너뜁니다.-syslogable) 헤더입니다.볼륨 부트 레코드」를 참조해 주세요.

DOS 2.0 이후부터 유효한 x86 부팅 가능 디스크는 짧은 점프 후에 NOP(opstring sequence 0xEB 0x)로 시작해야 합니다. DOS 3.0 이후[nb 3] 및 DOS 1.1에서는[15][16] 0x90[13][14] 또는 근접 점프(0xE9 0x?0x?)가 표시됩니까?[13][14]대부분의 (Compaq, TeleVideo) DOS 2.x 포맷 디스크 및 일부 (Epson, Oliveetti) DOS 3.1 디스크에서 볼 수 있습니다.하위 호환성이 있는 MS-DOS, PC DOS 및 DR-DOS도 점프(0x69 0x??0x?)[13][14][17]를 사용할 수 있습니다.리무버블 디스크로 이동합니다.하드 디스크에서 DR DOS는 NOP(0x90 0xEB 0x??)[17]로 시작하는 스왑된 JMPS 시퀀스를 추가로 받아들이지만 MS-DOS/PC DOS는 받지 않습니다(Atari ST 호환성에 대해서는 아래 참조).이러한 opstring 패턴의 1개(오프셋 0x015에서의 유효한 미디어 기술자 값의 테스트와 조합)는, DOS 3.3 이후를 나타내는 지표로서 기능합니다(단, 일부 부트 섹터에 BPB에 이은 프라이빗 부트로더 데이터가 포함되어 있기 때문에, 점프 타겟으로부터 정확한 사이즈를 결정할 필요는 없습니다).DOS 1.x(및 일부 DOS 3.0) 볼륨에서는 FAT(논리 섹터 1)의 미디어 바이트를 통해 포맷을 검출하기 위해 DOS 1.x 방식으로 폴백해야 합니다.

0x003 8 OEM 이름(스페이스 0x20으로 채워짐)이 값은 디스크가 포맷된 시스템을 결정합니다.

공식적으로는 OEM 무료라고 문서화되어 있습니다만, MS-DOS/PC DOS(3.1 이후), Windows 95/98/SE/ME 및 OS/2 에서는, 이 필드를 체크하고, 부트 레코드의 그 외의 어느 부분에 의존할 수 있는지와 그 해석 방법을 확인합니다.따라서 OEM 라벨을 임의의 값 또는 가짜 값으로 설정하면 MS-DOS, PC DOS 및 OS/2가 볼륨을 제대로 인식하지 못하고 쓰기 [18][19][20]시 데이터가 손상될 수 있습니다.일반적인 예는 " 입니다.IBM␠␠3.3", "MSDOS5.0", "MSWIN4.1", "IBM␠␠7.1", "mkdosfs␠", 및 "FreeDOS␠".

일부 벤더는 이 엔트리에 라이센스 정보 또는 액세스 키를 저장합니다.

Windows 95/98/SE/ME의 볼륨 트래커는 OEM 라벨을 "로 덮어씁니다.?????IHC"서명 ("에서 남은 부분)"␠OGACIHC읽기 전용으로 보이는 디스크 액세스(예: "Cicago")에서도DIR A:미디어가 쓰기 금지되어 있지 않은 경우).상기의 특정의 값에 의존하기 때문에, 실제의 BPB 형식이나 컨텐츠에 따라서는, 미디어에 결함이 없고, 다른 operating system에서도 문제없이 읽어낼 수 있는 경우에도, MS-DOS/PC DOS 및 OS/2가 미디어를 인식하지 못하고 에러 메세지가 표시되는 일이 있습니다.Windows 9x 에서는 문제가 없는 디스크로 인식되지만 디스크 시리얼 번호 등 오래된 BPB 사양으로 포맷되었을 때 존재하지 않거나 사용되지 않는 의미 없는 파라미터에 대해 이상한 값을 지정합니다(DOS 5.0 이후 포맷된 디스크 및 Windows 9x 에서는 OEM 라벨을 덮어쓴 후의 OEM 라벨만 해당).?????IHC라고 보고하겠습니다.0000-0000또는 다른 시스템에서 [21]포맷된 디스크를 사용할 경우 디스크 일련 번호 필드에 저장되는 다른 값).이는 이동식 디스크 드라이브에만 적용됩니다.

일부 부트 로더는 여기서 검출된 특정 값(NEWLDR 오프셋 0x018 등)에 따라 조정하거나 부트 섹터에 대한 제어를 거부합니다.

Wang Professional 컴퓨터의 부팅 ROM은 OEM 라벨의 처음 4글자가 " "일 경우에만 디스크를 부팅 가능한 것으로 간주합니다.Wang". 마찬가지로 Philips의 ROM BIOS:YES는 OEM 라벨의 처음 4글자가 " "일 경우에만 디스크에서 부팅됩니다.:YES".

FAT32 EBPB에서 섹터 오프셋 0x042의 시그니처가 0x29이고, 양쪽 합계 섹터 엔트리가 0일 경우 파일 시스템엔트리는 64비트 합계 섹터 카운트엔트리로 기능할 수 있으며 OEM 라벨엔트리는 오프셋 0x052의 통상 엔트리 대신 대체 파일시스템 타입으로 사용할 수 있다.

마찬가지로 이 엔트리가 "로 설정되어 있는 경우EXFAT␠␠␠「Sector Offset 0x040 ~0x077 에 있는 exFAT BPB 의 사용 상황을 나타내고 있습니다만, NTFS 볼륨은 「」를 사용하고 있습니다.NTFS␠␠␠␠NTFS BPB를 나타냅니다.[22]

0x00B 다르다 BIOS 파라미터 블록(13, 19, 21 또는 25바이트), 확장 BIOS 파라미터 블록(32바이트 또는 51바이트) 또는 FAT32 확장 BIOS 파라미터 블록(60바이트 또는 79바이트). 크기와 내용은 운영체제 및 버전에 따라 다릅니다.아래를 참조하십시오.
다르다 다르다 파일 시스템 및 운영 체제 고유의 부트 코드입니다.대부분 [E]BPB 바로 뒤에 시작되지만 [E]B의 끝 사이에 추가 "프라이빗" 부트 로더 데이터가 저장되는 경우가 있습니다.PB 및 부트코드의 시작.따라서 오프셋 0x001에서의 점프를 사용하여 정확한 [E]B를 확실하게 도출할 수 없습니다.원본 PB 형식

(최소한 DOS 3.31 BPB와 조합하여 일부 GPT 부트 로더(BootDuet 등)는 0x1FA-0x1FD를 사용하여 첫 번째 2-132 섹터 외부에 있는 볼륨에 대해 숨겨진 섹터의 상위4바이트를 저장합니다.이 위치에는 다른 부트섹터의 코드나 기타 데이터가 포함되어 있을 수 있으므로 0x1F9~0x1FD가 모두0을 포함하지 않을 경우 기입되지 않을 수 있습니다).

0x1FD 1 물리 드라이브 번호(DOS 3.2~3.31 부트 섹터만 해당).OS/2 1.0 및 DOS 4.0에서는 이 엔트리가 섹터 오프셋 0x024(EBPB의 오프셋 0x19)로 이동했습니다.대부분의 Microsoft 및 IBM 부트 섹터는 오프셋 0x1FC에서 0x00 값을 유지하고 0x1FE에서 시그니처의 일부가 아니지만 그 이후로는 0x1FD 값을 유지합니다.

이것이 부트 볼륨에 속해 있는 경우 DR-DOS 7.07 확장 MBR을 구성하여(NEWLDR 오프셋 0x014 참조) 이 엔트리를 부트 시 제공된 DL 값 또는 파티션 테이블에 저장된 값으로 동적으로 업데이트할 수 있습니다.따라서 VBR 코드가 DL 값을 무시하더라도 대체 드라이브를 부팅할 수 있습니다.

0x1FE 2 부트 섹터 시그니처(0x55 0xAA).[10][nb 4]이 시그니처는 IBM PC와 호환되는 부팅 코드를 나타내며 시스템 BIOS 또는 MBR에 있는 대부분의 부팅 로더에 의해 테스트된 후 부팅 섹터의 부팅 코드로 실행됩니다(예: 원래 IBM[23] PC ROM-BIOS에 의해 테스트되지 않음).이 시그니처는, 특정의 파일 시스템 또는 operating system을 나타내는 것은 아닙니다.이 시그니처는 모든 FAT 포맷 디스크(예를 들어 DOS 1.x[15][16] 또는 비x86 부팅 가능 FAT 볼륨)에 존재하지 않기 때문에 OS는 볼륨 로그인 시 이 시그니처에 의존해서는 안 됩니다(3.3 이전 MS-DOS/PC DOS의 오래된 문제는 이 시그니처를 체크했지만 DR-DOS는 그렇지 않습니다).쓰기 부트 섹터에 적어도x86 호환 더미 부트로더 스터브가 포함되어 있지 않은 경우 포맷툴은 이 시그니처를 기술하지 마십시오.최소한 CPU를 엔드리스 루프(0xF4 0xEB 0xFD)로 정지하거나 INT 19h 및 RETF(0xCD 0x190xCB)를 발행해야 합니다.단, 시그니처로서 다른 opcode를 DOS 테스트하기 때문에, 이러한 opstring은 섹터 오프셋 0x000에서는 사용하지 말아 주세요.많은 MSX-DOS 2 플로피는 섹터 오프셋 0x000에서 0xEB 0xFE 0x90을 사용하여 MS-DOS/PC DOS에서 인식되는 opcode 패턴을 유지하면서 꽉 막힌 루프로 CPU를 포착합니다.

이 시그니처는 섹터 크기가 512 이상인 고정 섹터 오프셋 0x1FE에 배치해야 합니다.물리 섹터의 사이즈가 큰 경우는, 물리 섹터의 마지막에 반복할 수 있습니다.

Atari ST는 부트 섹터의 256개의 빅 엔디안 워드에 대한 체크섬이 0x1234[24][nb 5]같을 경우 디스크를 Atari 68000 부터블 디스크로 간주합니다.부트 로더 코드가 IBM과 호환되는 경우 부트 섹터 상의 체크섬이 실수로 이 체크섬과 일치하지 않도록 하는 것이 중요합니다.이 경우 미사용 비트(부트 코드 영역 전 또는 후 등)를 변경하여 이 조건이 충족되지 않도록 할 수 있습니다.

드물게 디스크 이미지에서 반대 시그니처 0xAA 0x55가 관찰됩니다.이는 포맷툴에 [nb 4]구현이 실패했을 가능성이 있지만 다른 엔디안을 사용하여 플랫폼 간에 전송 중에 발생한 디스크이미지의 스왑된 바이트 순서를 나타낼 수도 있습니다.BPB 값 및 FAT12, FAT16 및 FAT32 파일 시스템은 리틀 엔디안 표현만을 사용하도록 설계되었으며 빅 엔디안 값을 사용하는 변형 모델의 구현은 알려진 바 없습니다.

FAT 형식의 Atari ST 플로피는 부트 섹터 레이아웃이 매우 유사합니다.

바이트 오프셋 길이(바이트) 내용물
0x000 2 점프 명령.원래의 Atari ST 부트 섹터는 68000 BRA로 시작합니다.S 명령(0x60 0x?).[12] PC 운영 체제와의 호환성을 위해 Atari ST는 TOS 1.4 이후 디스크0xE9 0x로 포맷했습니까?대신.
0x002 6 OEM 이름 (스페이스 0x20으로 채워짐) (예: " )Loader(0x4C 0x6F 0x61 0x64 0x65 0x72) (Atari ST 부트로더를 포함한 볼륨).위의 PC 포맷 디스크에 대한 OEM 이름 주의사항을 참조하십시오.이 엔트리의 오프셋과 길이는 PC 포맷 디스크의 엔트리와는 다릅니다.
0x008 3 Atari[12] ST가 디스크 변경을 감지하는 데 사용하는 디스크 일련 번호(기본값: 0x00 0x00 0x00). (Windows 9x 볼륨 추적기는 항상 "를 저장합니다.)IHC" 를 참조하십시오.디스크 내용이 외부에서 변경된 경우 이 값을 변경해야 합니다. 그렇지 않으면 Atari ST가 다시 삽입할 때 변경 내용을 인식하지 못할 수 있습니다.이 항목은 PC 포맷 디스크의 OEM 이름 필드와 겹칩니다.최대한의 호환성을 얻으려면 여기서 특정 패턴을 일치시켜야 할 수 있습니다.상기를 참조해 주십시오.
0x00B 19 DOS 3.0 BIOS 파라미터 블록 (리틀 엔디안 형식)
0x01E 다르다 프라이빗 부트 섹터 데이터(빅엔디안리틀엔디안이 혼재)
다르다 다르다 파일 시스템 및 운영 체제 고유의 Atari ST 부트 코드.코드 로드 위치와 관련하여 어떠한 가정도 해서는 안 되며, 이는 재배치할 수 있어야 합니다.운영체제(TOS)를 로드하는 경우.IMG[12])에 장애가 발생하면 코드가 68000 RTS(빅엔디안 바이트시퀀스 0x4E 0x75[nb 4] opcode 0x4E75) 명령으로 Atari ST BIOS로 돌아가 모든 레지스터는 변경되지 않습니다.
0x1FE 2 체크섬Atari ST 68000 실행 가능 부트 섹터 [24]코드를 나타내려면 이 단어를 포함한 256개의 빅 엔디안 워드에 대한 16비트 체크섬이 매직0x1234와 일치해야 합니다.이 체크섬 엔트리를 사용하여 체크섬을 [nb 5]적절히 정렬할 수 있습니다.

논리 섹터 크기가 512바이트보다 클 경우 나머지는 체크섬에 포함되지 않고 일반적으로 0으로 [24]채워집니다.만약 0x55 0xAA[nb 4]여기에 서명되어 있지 않기 때문에 일부 PC운영 체제로 인해 FAT형식 지정된 플로피 디스크를 받아들이지 않는다를 위해 보장하기 위해서 이 곳에서(거나 비벼 끄다 IBM호환되는 부트 로더 추가)과 민간 데이터나 부트 코드 지역이나 일련 번호에 사용하지 않는 단어를 사용하여 0x55 0xAA하는 것이 바람직하다. 확인.sum 0x1234가[nb 5] 일치하지 않습니다(공유 Fat 코드 오버레이가 IBM PC와 Atari ST 실행 파일인 경우는 제외).

FAT12 형식의 MSX-DOS 볼륨은 매우 유사한 부트 섹터 레이아웃을 가지고 있습니다.

바이트 오프셋 길이(바이트) 내용물
0x000 3 더미 점프 명령(예: 0xEB 0xFE 0x90).
0x003 8 OEM 이름(스페이스 0x20으로 채워짐)
0x00B 19 DOS 3.0 BPB
0x01E 다르다(2) Z80 프로세서의 MSX-DOS 1 코드 엔트리 포인트(MSX 부트 코드).부트 섹터에 제어를 넘길 때 MSX-DOS 1 머신이 점프하는 위치입니다.이 위치는 DOS 3.2 이후의 BPB 형식이나 IBM PC 호환 부트 섹터의 x86 호환 부트 섹터 코드와 중복되며, 여기에서 CPU를 꽉 조이는 등의 특별한 예방 조치를 취하지 않으면 MSX 머신에서 크래시가 발생합니다(JR 0x01E의 경우 opstring 0x18 0xFE).
0x020 6 MSX-DOS 2 볼륨 시그니처"VOL_ID".
0x026 1 MSX-DOS 2 undelete 플래그(디폴트: 0x00).이 경우, 「」인 경우,VOL_ID시그니처는 섹터 오프셋 0x020에 존재합니다.이 플래그는 볼륨에 삭제 취소 가능한 삭제된 파일이 저장되어 있는지 여부를 나타냅니다(디렉토리 엔트리의 오프셋 0x0C 참조).
0x027 4 MSX-DOS 2 디스크 일련 번호(기본값: 0x000000).이 경우, 「」인 경우,VOL_ID시그니처는 섹터 오프셋0x020 에 존재하며, MSX-DOS 2 는 미디어의 변경을 검출하기 위한 볼륨시리얼 번호를 여기에 격납합니다.
0x02B 5 예약되어 있다
0x030 다르다(2) Z80 프로세서의 MSX-DOS 2 코드 엔트리 포인트(MSX 부트 코드).부트 섹터에 제어권을 넘길 때 MSX-DOS 2 머신이 점프합니다.이 위치는 DOS 4.0 / OS/2 1.2 또는 IBM PC 호환 부트 섹터의 x86 호환 부트 섹터 코드 이후의 EBPB 형식과 중복되며, 여기에서 CPU를 꽉 조이는 등의 특별한 예방 조치가 취해지지 않는 한 MSX 머신에 크래시가 발생합니다(JR 0x030의 경우 opstring 0x18 0xFE).
0x1FE 2 서명

BIOS 파라미터 블록

DOS 2.0 이후 FAT 버전에서 사용되는 BIOS 파라미터 블록(BPB)의 첫 25바이트의 공통 구조(섹터 오프셋 0x00B ~0x017 바이트는 DOS 2.0 이후 저장되지만 DOS 3.2 이전에서는 항상 사용되지 않으며 DOS 3.0 이후에서는 0x018 ~0x01B 값이 사용됩니다).

섹터 오프셋 BPB 오프셋 길이(바이트) 내용물
0x00B 0x00 2 논리 섹터당 바이트 수.가장 일반적인 값은 512입니다.일부 운영 체제는 다른 섹터 크기를 지원하지 않습니다.단순성과 성능을 극대화하기 위해 논리 섹터 크기는 Disk의 물리적 섹터 크기와 동일하지만 경우에 따라서는 더 크거나 더 작을 수 있습니다.

최대 65,535개의 논리 섹터를 가진 부팅 불가능한 FAT12/FAT16 볼륨의 최소 허용치는 32바이트, 65,535개가 넘는 논리 섹터의 경우 64바이트입니다.최소 실용적인 값은 128입니다.일부 DOS 3.31 이전 버전의 OEM DOS에서는 논리 섹터 크기가 최대 8192바이트로 분할된 FAT에 사용되었습니다.Atari ST GEMDOS는 512에서 4096 [24]사이의 논리 섹터 크기를 지원합니다.DR-DOS는 [nb 6]최대 32KB의 논리 섹터 크기로 FAT12/FAT16 볼륨을 부팅하고 섹터당 최대 1024바이트의 물리 섹터를 지원하는 INT 13h 구현을 지원합니다.표준 FAT32 볼륨의 최소 논리 섹터 크기는 512바이트이며, FS 정보 섹터를 지원하지 않으면 128바이트로 줄일 수 있습니다.

플로피 드라이브 및 컨트롤러는 128, 256, 512 및 1024바이트(PC/AX 등)의 물리 섹터 크기를 사용합니다.Atari Portfolio는 64KB보다 큰 볼륨의 경우 512, 32KB보다 큰 볼륨의 경우 256바이트, 작은 볼륨의 경우 128바이트의 섹터 크기를 지원합니다.광자기 드라이브는 512, 1024 및 2048바이트의 섹터 크기를 사용했습니다.2005년 일부 Seagate 커스텀 하드 디스크는 기본 512바이트가 [25]아닌 1024바이트의 섹터 크기를 사용했습니다.고급 포맷 하드 디스크는 2010년부터 섹터당 4,096바이트(4Kn)를 사용하지만 과도기 동안 512바이트 섹터(512e)를 에뮬레이트할 수도 있습니다.

Linux(확장판 Android)는 파일 시스템 유틸리티의 Man 페이지에 공식 문서화된 최대 32KB의 훨씬 큰 논리 섹터 크기를 지원합니다.

0x00D 0x02 1 클러스터당 논리 섹터 수.허용되는 값은 1, 2, 4, 8, 16, 32, 64 및 128입니다.일부 MS-DOS 3.x 버전은 최대 4KB의 클러스터 크기만 지원했지만 최신 MS-DOS/PC DOS 및 Windows 95는 최대 32KB의 클러스터 크기를 지원합니다.Windows 98/SE/ME도 64KB의 클러스터 크기를 부분적으로 지원하지만 이러한 디스크에서 일부 FCB 서비스를 사용할 수 없으며 다양한 애플리케이션이 작동하지 않습니다.Windows NT 패밀리와 PTS-DOS 등의 일부 대체 DOS 버전은 64KB 클러스터를 완전히 지원합니다.

대부분의 DOS 기반 운영 체제에서는 섹터 크기가 512바이트를 초과하는 경우에도 최대 클러스터 크기는 32KB(또는 64KB)로 유지됩니다.

논리 섹터 크기가 1KB, 2KB 및 4KB인 경우 Windows NT 4.0은 128KB의 클러스터 크기를 지원하는 반면, 2KB 및 4KB 섹터의 경우 클러스터 크기가 256KB에 달할 수 있습니다.

일부 버전의 DR-DOS는 섹터/클러스터 값 0을 사용하여 섹터당 512바이트의 128KB 클러스터를 제한적으로 지원합니다.

이 값이 0으로 잘못 지정되면 MS-DOS/PC DOS는 부팅 시 정지됩니다.[26]: INT 21h AX=53h

0x00E 0x03 2 예약된 논리 섹터의 수입니다.파일 시스템 이미지의 첫 번째 FAT 앞에 있는 논리 섹터 수입니다.이 섹터의 경우 최소 1개, 보통 FAT32의 경우 32개(확장 부트 섹터, FS 정보 섹터 및 백업 부트 섹터의 경우)

DR-DOS 7.0x FAT32 포맷된 볼륨은 싱글 섹터 부트 섹터, FS 정보 섹터 및 백업 섹터를 사용하기 때문에 DR-DOS로 포맷된 볼륨 중에는 4의 값을 사용하는 것이 있습니다.

0x010 0x05 1 파일 할당 테이블의 수.거의 항상 2, RAM 디스크는 1을 사용할 수 있습니다.대부분의 MS-DOS/PC DOS 버전은 3개 이상의 FAT를 지원하지 않습니다.일부 DOS 운영 체제는 내장 디스크 드라이버에서 2개의 FAT만 지원하지만 나중에 로드되는 블록 장치 드라이버에 대해서는 다른 FAT 수를 지원합니다.

이 엔트리에서 2개의 FAT를 선언하는 볼륨은 TFAT 볼륨으로 취급되지 않습니다.값이 2와 다를 경우 일부 Microsoft 운영 체제에서 볼륨을 TFAT 볼륨으로 마운트하고 첫 번째 FAT의 두 번째 클러스터(클러스터 1)를 사용하여 TFAT 상태를 확인하려고 시도할 수 있습니다.

0x011 0x06 2 FAT12 또는 FAT16 루트 디렉토리 엔트리의 최대수.루트 디렉토리가 통상의 데이터 클러스터에 격납되어 있다.FAT32의 경우는 0.FAT32 EBPB의 오프셋0x02C 를 참조해 주세요.

FAT32 EBPB가 없는 값 0(오프셋 0x042에 시그니처 0x29 또는 0x28이 없음)도 일부 비표준 FAT12 및 FAT16 실장에서는 가변 사이즈의 루트디렉토리를 나타내는 경우가 있습니다.이러한 루트디렉토리는 [27]FAT의 클러스터1 엔트리에 저장됩니다.단, 이 확장은 메인스트림 [27]운영체제시스템에서는 지원되지 않습니다.이는 유지 보수 플래그, 현재 체인 끝 마커 또는 TFAT 확장에 클러스터 1 엔트리를 사용하는 다른 용도와 경합할 수 있기 때문입니다.

디렉토리 엔트리가 32바이트를 차지하기 때문에 디렉토리 엔트리가 항상 완전한 논리 섹터를 소비하도록 이 값을 조정해야 합니다.MS-DOS/PC DOS에서는 이 값이 16의 배수여야 합니다.플로피 디스크에서 지원되는 최대값은 240,[13] 하드 디스크에서 MS-DOS/PC DOS에서 지원되는 최대값은 [13]512입니다.DR-DOS는 부트 파일이 첫 번째 2048 루트 디렉토리 엔트리에 있는 경우 FAT12/FAT16 볼륨에서 부팅할 수 있도록 지원합니다.

0x013 0x08 2 논리 섹터의 합계.FAT32의 경우 0입니다. (0인 경우 오프셋 0x020에서 4바이트 값을 사용합니다.)
0x015 0x0A 1 미디어 기술자(비교: FAT ID):[28][29][30][nb 3]
0xE5
  • 8 인치 (200 mm)싱글사이드, 양쪽에 77 트랙, 트랙마다 26 섹터, 섹터당 128 바이트 (250.25 KB) (DR-DOS만 해당)
0xED
  • 5.25인치(130mm) 양면, 1면당 80트랙, 9섹터, 720KB(Tandy 2000 한정)[20]
0xEE
  • 비표준 커스텀 파티션(비표준 BPB 형식 사용 또는 48비트/64비트 어드레싱 등 특수 미디어 액세스 필요)용으로 지정됨. 0xF8에 대응하지만 설계상 인식되지 않는 시스템에서 인식되지 않음.FAT ID와 동일할 필요는 없으며 클러스터 엔드 오브 체인 마커(DOS용으로 예약되어 있지 않음)
0xEF
  • 비표준 커스텀 슈퍼플로피 형식용으로 지정. 0xF0에 대응하지만 설계상 시스템에 의해 인식되지 않음.값은 FAT ID와 동일할 필요가 없으며 클러스터 엔드 오브 체인 마커로 사용되지 않음(DR-DOS용으로 예약됨)
0xF0[5][6][7]
  • 3.5인치(90mm) 양면, 측면당 80트랙, 트랙당 18 또는 36섹터(1440KB, "1.44MB" 또는 "2.88MB")
  • BPB에서 지오메트리가 정의되어 있는 커스텀 플로피 및 슈퍼플로피 형식과 함께 사용하도록 지정되었습니다.
  • 테이프등의 [31]다른 미디어 타입에도 사용됩니다.
0xF4
0xF5
0xF8
  • 고정 디스크(일반적으로 하드 디스크의 파티션)(DOS 2.0 [33][34]이후)
  • BPB에서 지오메트리가 정의되어 있는 분할된 고정 미디어 또는 이동식 미디어에 사용하도록 지정됩니다.
  • 3.5인치 싱글사이드, 1면당 80트랙, 1트랙당 9섹터(360KB) (MS-DOS 3.1[14] 및 MSX-DOS)
  • 5.25인치 양면 80트랙, 트랙당 9섹터 (720KB) (Sanyo 55x DS-DOS 2.11 한정)[20]
  • 싱글사이드(Altos MS-DOS 2.11만)[32]
0xF9[5][6][7]
  • 3.5인치 양면, 양면 80트랙, 트랙당 9섹터 (720KB) (DOS 3.2 이후)[33]
  • 3.5인치 양면, 1면당 80트랙, 1면당 18섹터(1440KB) (DOS 3.2만 해당)[33]
  • 5.25인치 양면 80트랙, 트랙당 15섹터(1200KB, '1.2MB'로 불림) (DOS 3.0 [33]이후)
  • 싱글사이드(Altos MS-DOS 2.11만)[32]
0xFA
  • 3.5인치 및 5.25인치 싱글사이드, 측면당 80트랙, 트랙당 8섹터(320KB)
  • RAM 디스크 및 ROM 디스크(Columbia Data[35] Products 및 HP 200LX 등)에도 사용
  • 하드디스크(Tandy MS-DOS만 해당)
0xFB
  • 3.5인치 및 5.25인치 양면, 측면당 80트랙, 트랙당 8섹터(640KB)
0xFC
  • 5.25인치 싱글사이드, 1면당 40트랙, 1트랙당 9섹터(180KB) (DOS 2.0 [33]이후)
0xFD
  • 5.25인치 양면, 1면당 40트랙, 1트랙당 9섹터(360KB) (DOS 2.0 [33]이후)
  • 8인치 양면, 측면당 77트랙, 트랙당 26섹터, 섹터당 128바이트(500.5KB)
  • (8 인치 양면, (싱글 및 더블 밀도) (DOS [33]1)
0xFE
  • 5.25인치 싱글사이드, 1면당 40트랙, 1트랙당 8섹터(160KB) (DOS 1.[33][36]0 이후)
  • 8인치 싱글사이드, 측면당 77트랙, 트랙당 26섹터, 섹터당 128바이트(250.25KB)[32][36]
  • 8인치 양면, 측면당 77트랙, 트랙당 8섹터, 섹터당 1024바이트(1232KB)[36]
  • (8 인치 싱글 사이드, 싱글 및 더블 밀도(DOS [33]1)
0xFF
  • 5.25인치 양면, 1면당 40트랙, 1면당 8섹터(320KB) (DOS 1.1 [33][36]이후)
  • 하드디스크(Sanyo 55x DS-DOS 2.11 한정)[20]

이 값은 각 FAT 복사본의 첫 번째 바이트에 저장된 미디어 기술자(클러스터 0의 엔트리)를 반영해야 합니다.DOS 3.2 이전의 일부 운영체제(86-DOS, MS-DOS/PC DOS 1.x 및 MSX-DOS 버전 1.0)에서는 부트 섹터 파라미터를 모두 무시하고 FAT의 첫 번째 바이트부터 미디어 디스크립터 값을 사용하여 내부적으로 정의된 파라미터 템플릿 중에서 선택합니다.DOS 4.0 [13]이후 0xF0 이상이어야 합니다.

이동식 드라이브의 경우 DR-DOS는 이 값이 0xF0 [13]이상인 경우 BPB가 있는 것으로 가정하지만 고정 Disk의 경우 BPB가 있는 것으로 가정하려면 0xF8이어야 합니다.

당초, 이러한 값은 비트플래그로 사용하는 것을 의도하고 있었습니다.BPB 형식이 인식되지 않고 0xF8 또는 0xFA에서 0xFF MS-DOS/PC DOS 미디어 기술자가 없는 이동식 미디어에서는 비트1을 8섹터 포맷이 아닌 트랙 포맷별로 9섹터 포맷을 선택하기 위한 플래그로 취급하고 비트0을 [14]양면 미디어로 지정합니다. 0x00 ~0xEF 0xF1 ~0xF7은 예약되어 있으므로 사용하지 마십시오.

0x016 0x0B 2 FAT12/FAT16의 파일 할당 테이블당 논리 섹터. FAT32는 이 값을 0으로 설정하고 오프셋 0x024의 32비트 값을 대신 사용합니다.

DOS 3.0 BPB:

다음의 확장 기능은 DOS 3.0 이후에 문서화되어 있습니다만, DOS 2.11 [32]의 일부의 문제에 의해서 이미 서포트되고 있습니다.MS-DOS 3.10 은 DOS 2.0 포맷을 서포트하고 있습니다만, DOS 3.0 포맷도 사용할 수 있습니다.

섹터 오프셋 BPB 오프셋 길이(바이트) 내용물
0x00B 0x00 13 DOS 2.0 BPB
0x018 0x0D 2 INT 13h CHS [10]지오메트리를 가진 디스크의 트랙당 물리 섹터. 예를 들어 "1.20 MB"(1200 KB) 플로피의 경우 15입니다.

0 엔트리는 이 엔트리가 예약되어 있지만 사용되지 않음을 나타냅니다.

0x01A 0x0F 2 INT 13h CHS [10]지오메트리를 가진 디스크의 헤드 수(예: 양면 플로피용 2).

7.10까지의 MS-DOS/PC DOS의 모든 버전에 버그가 있으면 256 헤드의 CHS 지오메트리에서는 이러한 운영체제가 크래시 됩니다.따라서 거의 모든 BIOS에서 최대 255 헤드만을 선택합니다.

0 엔트리는 이 엔트리가 예약되어 있지만 사용되지 않음을 나타냅니다.

0x01C 0x11 2 이 FAT 볼륨을 포함하는 파티션 앞에 숨겨진 섹터의 수입니다.분할되지 않은 미디어에서는 이 필드는 항상 0이어야 합니다.이 DOS 3.0 엔트리는 DOS 3.31 이후 BPB의 오프셋0x01C에서 동일한 엔트리와 호환되지 않습니다.

오프셋 0x013의 논리 섹터 엔트리가 0인 경우에는 사용하지 마십시오.

DOS 3.2 BPB:

공식적으로는 MS-DOS 3.20은 여전히 DOS 3.0 형식을 사용하지만,SYS그리고.FORMAT는 이미 6바이트 긴 포맷을 지원하도록 조정되었습니다(모든 엔트리가 사용되지 않았습니다).

섹터 오프셋 BPB 오프셋 길이(바이트) 내용물
0x00B 0x00 19 DOS 3.0 BPB
0x01E 0x13 2 숨겨진 섹터를 포함한 논리 섹터의 합계.이 DOS 3.2 엔트리는 DOS 3.31 이후 BPB의 오프셋0x020과 같은 엔트리와 호환되지 않습니다.

오프셋 0x013의 논리 섹터 엔트리가 0인 경우에는 사용하지 마십시오.

DOS 3.31 BPB:

공식적으로 DOS 3.31과 함께 소개되고 DOS 3.2에서 사용되지 않는 일부 DOS 3.2 유틸리티는 이미 이 새로운 형식을 인식하도록 설계되었습니다.공식 문서에서는 오프셋 0x013의 논리 섹터 엔트리가 0인 경우에만 이러한 값을 신뢰할 것을 권장합니다.

섹터 오프셋 BPB 오프셋 길이(바이트) 내용물
0x00B 0x00 13 DOS 2.0 BPB
0x018 0x0D 2 INT 13h CHS [10]지오메트리를 가진 디스크의 트랙당 물리 섹터. 예를 들어 "1.44 MB"(1440 KB) 플로피일 경우 18개입니다.더 이상 CHS 액세스를 지원하지 않는 드라이브에 사용되지 않습니다.DOS 3.0 이후 사용 가능한 엔트리와 동일합니다.

0 엔트리는 이 엔트리가 예약되어 있지만 사용되지 않음을 나타냅니다.값 0은 LBA만의 액세스를 나타낼 수 있지만 일부 부트 로더에서는 0에 의한 분할 예외가 발생할 수 있습니다.이는 CHS 지오메트리를 합리적으로 에뮬레이트할 수 없는 경우 여기에 중성값 1을 저장함으로써 회피할 수 있습니다.

0x01A 0x0F 2 INT 13h CHS [10]지오메트리를 가진 디스크의 헤드 수(예: 양면 플로피용 2).더 이상 CHS 액세스를 지원하지 않는 드라이브에 사용되지 않습니다.DOS 3.0 이후 사용 가능한 엔트리와 동일합니다.

7.10까지의 MS-DOS/PC DOS의 모든 버전에 버그가 있으면 256 헤드의 CHS 지오메트리에서는 이러한 운영체제가 크래시 됩니다.따라서 거의 모든 BIOS에서 최대 255 헤드만을 선택합니다.

0 엔트리는 이 엔트리가 예약되어 있지만 사용되지 않음을 나타냅니다.값 0은 LBA만의 액세스를 나타낼 수 있지만 일부 부트 로더에서는 0에 의한 분할 예외가 발생할 수 있습니다.이는 CHS 지오메트리를 합리적으로 에뮬레이트할 수 없는 경우 여기에 중성값 1을 저장함으로써 회피할 수 있습니다.

0x01C 0x11 4 이 FAT 볼륨을 포함하는 파티션 앞에 숨겨진 섹터의 수입니다.분할되지 [5][6][7]않은 미디어에서는 이 필드는 항상 0이어야 합니다.이 DOS 3.31 엔트리는 DOS 3.0~3.3 BPB의 오프셋0x01C의 동일한 엔트리와 호환되지 않습니다.적어도 0을 유지하거나 오프셋 0x013의 논리 섹터 엔트리가 0이면 신뢰할 수 있습니다.

부트 시에 선택된 Advanced Active Partition(AAP; 어드밴스드액티브 파티션)에 속하는 경우 확장 MBR에 의해 BPB 엔트리가 동적으로 갱신되어 파티션테이블의 "상대 섹터" 값이 반영됩니다.이 값은 AAP 또는 NEWLDR MBR의 오프셋0x1B6에 저장되어 있기 때문에 운영체제시스템에서 부트할 수 있습니다.

(일부 GPT 부트 로더(BootDuet 등)는 부트 섹터 오프셋 0x1을 사용합니다.FA – 0x1FD: 첫 번째 2-132 섹터 외부에 있는 볼륨의 64비트 숨김 섹터 값의 상위4 바이트를 저장합니다).

0x020 0x15 4 논리 섹터의 합계(65535보다 큰 경우는 오프셋 0x013 참조).이 DOS 3.31 엔트리는 DOS 3.2-3.3 BPB의 오프셋0x01E의 동일한 엔트리와 호환되지 않습니다.공식적으로는 오프셋 0x013의 논리 섹터 엔트리가 0인 경우에만 사용해야 하지만 일부 운영 체제(일부 이전 버전의 DR DOS)에서는 더 작은 디스크에도 이 엔트리를 사용합니다.

파티션 미디어의 경우, 이것과 0x013 의 엔트리가 모두 0(일부 DOS 3.x FAT16 볼륨에서 볼 수 있음)인 경우, 많은 운영 체제(MS-DOS/PC DOS 포함)가 대신 MBR 의 대응하는 파티션의 엔트리(오프셋 0xC)로부터 값을 가져옵니다.

시그니처 0x29FAT32 EBPB를 사용하는 볼륨에서 이러한 엔트리가 모두 0인 경우, 4,294,967,295(2-132) 제한을 초과하는 값(32비트 클러스터 엔트리가 있는 일부 DR-DOS 볼륨)은 대신 오프셋 0x052로 64비트 엔트리를 사용할 수 있습니다.

간단한 수식은 볼륨의 지정된 클러스터 번호를 변환합니다.CN논리적인 섹터 번호로LSN다음과 같습니다.[5][6][7]

  1. 결정 (1회)SSA=RSC+FN×SF+ceil((32×RDE)/SS)(예약 섹터 수)RSC오프셋 0x00E에 저장되며, FAT의 수FN오프셋 0x010에서 FAT당 섹터는SF오프셋 0x016(FAT12/FAT16) 또는 0x024(FAT32)에서는 루트 디렉토리 엔트리가RDE오프셋 0x011에서 섹터 크기SS오프셋 0x00B에서ceil(x)정수로 반올림합니다.
  2. 결정하다LSN=SSA+(CN−2)×SC클러스터당 섹터 수:SC는 오프셋 0x00D에 저장됩니다.

분할되지 않은 미디어에서는 볼륨의 숨겨진 섹터 수가 0이므로LSN그리고.LBA볼륨의 논리 섹터 크기가 기본 미디어의 물리적 섹터 크기와 동일한 한 주소가 동일하게 됩니다.이러한 조건에서는, 다음의 2개의 서버간에 간단하게 번역할 수 있습니다.CHS주소 및LSNs또, 다음과 같이 합니다.

LSN=SPT×(HN+(NOS×TN))+SN−1트랙당 섹터 수SPT오프셋 0x018에 저장되며 변의 수는NOS오프셋 0x01A에 있습니다.트랙 번호TN, 헤드 번호HN, 및 섹터 번호SN실린더 헤드 섹터에 대응합니다.이 공식은 기존의 CHS에서 LBA로의 변환을 나타냅니다.

확장 BIOS 파라미터 블록

OS/2 1.0 및 DOS 4.0 이후 FAT12 및 FAT16에서 사용된 추가 구조(EBPB라고도 함) (섹터 오프셋 0x024 이하 바이트는 DOS 3.31 BPB와 동일)

섹터 오프셋 EBPB 오프셋 길이(바이트) 내용물
0x00B 0x00 25 DOS 3.31 BPB
0x024 0x19 1 물리 드라이브 번호(INT 13h에 따라 (첫 번째) 리무버블 미디어의 경우 0x00, (첫 번째) 고정 디스크의 경우 0x80).BIOS에 따라 가능한 물리 드라이브의 값은 0x00-0x7E0x80-0xFE입니다.0x7F0xFF는 리모트 또는 ROM 부트 등의 내부 목적을 위해 예약되며 디스크에서는 발생하지 않습니다.MS-DOS/PC DOS 부트로더와 같은 일부 부트 로더는 운영체제를 로드할 때 이 값을 사용하고 다른 부트 로더는 이 값을 완전히 무시하거나 기본 부트 로더에 의해 DL 레지스터에 제공된 드라이브 번호를 사용합니다(예를 들어 많은 BIOS 및 MBR).SYS 명령에 의해 엔트리가 변경되거나 부트 섹터 코드가 기본이 아닌 대체 물리 디스크에서 운영 체제를 로드하도록 하기 위해 이전 부트스트랩로더에 의해 동적으로 수정될 수 있습니다.

섹터 오프셋 0x1FD의 DOS 3.2~3.31 부트 섹터에서만 유사한 엔트리가 존재했습니다.

이것이 부트 볼륨에 속해 있는 경우 DR-DOS 7.07 확장 MBR을 설정하여(NEWLDR 오프셋 0x014 참조) 이 EBPB 엔트리를 부트 시 제공된 DL 값 또는 파티션 테이블에 저장된 값으로 동적으로 업데이트할 수 있습니다.따라서 VBR 코드가 DL 값을 무시하더라도 대체 드라이브를 부팅할 수 있습니다.

0x025 0x1A 1 예약 완료
  • 일부 MS-DOS/PC DOS 부트 코드에서는 오프셋 0x024에서 가정된 16비트 워드의 INT 13h 현재 헤드 하이 바이트의 스크래치 패드로 사용됩니다.일부 DR-DOS FAT12/FAT16 부트 섹터에서는 이 엔트리를 스크래치 패드로도 사용합니다.다만, 용도는 다릅니다.
  • VGA-Copy는 이 위치에 시스템의 ROM-BIOS 상의 CRC를 저장합니다.
  • 일부 부팅 관리자는 이 항목을 사용하여 OS/2와 같은 운영 체제에 볼륨 발생에 필요한 드라이브 문자를 전달하기 위해 비트 7을 설정하고 드라이브 번호를 비트 6-0(C: = 값 0, D: = 값 1, ...)으로 지정합니다.이것은 보통 부트 섹터의 메모리 내 이미지에만 영향을 미치기 때문에 다른 용도와의 호환성 문제는 발생하지 않습니다.
  • CHKDSK 플래그에 사용되는 Windows NT에서는 (비트 7-2는 항상 지워지고 비트 1: 디스크 I/O 오류 발생, 불량 섹터 발생 가능성, 다음 부팅 시 표면 스캔 실행, 비트 0: 볼륨은 "더럽고" 셧다운 전에 올바르게 마운트 해제되지 않음), 다음 부팅 [34]시 CHKDSK를 실행합니다.포맷 [5][6][7]도구를 사용하여 0으로 설정해야 합니다.참고 항목: FAT의 두 번째 클러스터 엔트리의 비트플래그.
0x026 0x1B 1 확장 부트 시그니처(OS/2 1.2 및 DOS 4.0 이후) 다음 3개의 엔트리를 가진 EBPB가 존재함을 나타내려면 0x29[5][6][7][28] 해야 합니다.일부 OS/2 1.0-1.1 및 PC DOS 3.4 디스크에서는 0x28 이 될 수 있습니다.이는 시리얼 번호만 이어지는 EBPB 형식의 이전 형식을 나타냅니다.MS-DOS/PC DOS 4.0 이후, OS/2 1.2 이후, 및 Windows NT 패밀리는 양쪽의 시그니처를 적절히 인식합니다.)
0x027 0x1C 4 볼륨 ID(일련 번호)

일반적으로 시리얼 번호 "xxxx-xxxx"는 상위 워드의 경우 INT 21h/AH=2Ah(시스템 [nb 7]날짜 가져오기) 및 INT 21h/AH=2Ch(시스템 [nb 7]시간 가져오기)에 의해 반환된 DX 값과 하위 워드의 경우 두 CX 값 모두 16비트가 더해져 생성됩니다.또는 일부 DR-DOS 디스크 유틸리티는/#시리얼 번호 대신 월, 일, 시간 및 분에 대해 BCD로 인코딩된8비트 값에서 사람이 읽을 수 있는 타임스탬프 "mmdd-hhmm" 빌드를 생성하는 옵션입니다.

0x02B 0x20 11 파티션 볼륨 라벨, 공백(0x20)으로 패딩. 예: "NO␠NAME␠␠␠␠「파일 시스템의 디렉토리 볼륨 라벨을 변경하는 소프트웨어도 이 엔트리를 갱신할 필요가 있습니다만, 모든 소프트웨어에서 갱신할 수 있는 것은 아닙니다.파티션 볼륨 라벨은 볼륨을 마운트하지 않고도 액세스할 수 있으므로 일반적으로 파티션 도구에 표시됩니다.OS/2 1.2 및 MS-DOS 4.0 이후 지원.

0x026 의 시그니처가 0x28 로 설정되어 있는 경우는 사용할 수 없습니다.

이 영역은 DOS 3.2~3.3의 부트 섹터에서 INT 1Eh 포인터를 사용하여 ROM 테이블을 취득하는 대신 Disk Parameter Table(DPT; 디스크 파라미터 테이블)의 개인 복사본을 저장하기 위해 사용되었습니다.대부분의 외관적인 파티션라벨에 이 위치를 재사용함으로써 일부 오래된 시스템 유틸리티가 이전 DPT에 패치를 적용하려고 할 경우 문제가 최소화되었습니다.

0x036 0x2B 8 공백(0x20)으로 패딩된 파일 시스템 유형. 예: "FAT12␠␠␠", "FAT16␠␠␠", "FAT␠␠␠␠␠"

이 엔트리는 표시만을 목적으로 하며 운영 체제에서 파일 시스템의 유형을 식별하기 위해 사용해서는 안 됩니다.그럼에도 불구하고 이 값은 때때로 제3자 소프트웨어에 의해 식별 목적으로 사용되므로 공식적으로 사용되는 값과 달라서는 안 됩니다.OS/2 1.2 및 MS-DOS 4.0 이후 지원.

0x026 의 시그니처가 0x28 로 설정되어 있는 경우는 사용할 수 없습니다.

FAT32 확장 BIOS 파라미터 블록

기본적으로 FAT32는 28바이트를 EBPB에 삽입한 후 FAT12 및 FAT16의 나머지 26바이트(경우에 따라서는 7바이트)를 삽입합니다.Microsoft 및 IBM 운영 체제는 사용된 BPB 형식이나 지정된 파일 시스템 유형이 아닌 클러스터 수에 따라 볼륨에서 사용되는 FAT 파일 시스템의 유형을 결정합니다. 즉, 기술적으로 FAT12 및 FAT16 볼륨에도 "FAT32 EBPB"를 사용하고 소규모 FAT32 볼륨에도 DOS 4.0 EBPB를 사용할 수 있습니다.이러한 볼륨은 Windows 운영체제에 의해 몇 가지 이상한 [nb 8]상황에서 생성되므로 운영체제는 이러한 하이브리드 형식에 대응할 수 있도록 준비해야 합니다.

섹터 오프셋 FAT32 EBPB 오프셋 길이(바이트) 내용물
0x00B 0x00 25 DOS 3.31 BPB
0x024 0x19 4 파일 할당 테이블당 논리 섹터(DOS 2.0 BPB의 오프셋 0x0B의 이전 엔트리에 대응).

이 엔트리의 오프셋0x026 바이트는, FAT32 대응이 아닌 operating system에서 EBPB 형식의 오역을 피하기 위해서, 0x28 또는 0x29가 되지 말아 주세요.

다행히 정상적인 상황(섹터 크기 512바이트)에서는 FAT32 파일 시스템의 클러스터 수가 최대 0xffffff6 = 268435446이므로 이 문제가 발생할 수 없습니다.하나의 Fat 섹터는 512 / 4 = 128개의 클러스터 설명자를 수용합니다.따라서 최대 ceil(268435446/128) = 2097152 = 0x200000 섹터만 필요하므로 FAT 섹터 수의 세 번째 바이트는 최대 0x20으로, 이는 금지된 0x28 및 0x29 값보다 작습니다.

0x028 0x1D 2 드라이브 설명/미러링 플래그(비트 3-0: 비트 7이 [10]설정되어 있는 경우 활성 FAT의 제로 베이스 수).비트 7이 클리어인 경우 모든 FAT는 정상적으로 미러링 됩니다.기타 비트는 예약되어 있으며 0이어야 합니다).

듀얼 LBA 및 CHS를 지원하는 DR-DOS 7.07 FAT32 부트 섹터는 비트 15-8을 사용하여 액세스 플래그와 메시지의 일부를 저장합니다.이러한 비트에는 비트 패턴 0110:111b(소문자 'o', CHS 액세스용으로 설정된 비트13) 또는 0100:111b(대문자 'O', LBA 액세스용으로 지워진 비트13)가 포함됩니다.바이트는 잠재적인 "No"IBMB"의 두 번째 문자에도 사용됩니다.IO 'COM' 오류 메시지(오프셋 0x034 참조)는 대문자와 소문자의 혼합으로 표시되므로 실패한 액세스유형을 나타냅니다.포맷 툴이나 DR SYS 타입 이외의 툴에서는 이러한 비트가 클리어 되는 경우가 있습니다만, 그 외의 디스크툴에서는 비트15 ~ 8은 변경되지 않습니다.

0x02A 0x1F 2 버전(0.0으로 정의)버전 번호의 높은 바이트는 오프셋 0x02B에 저장되고 낮은 바이트는 오프셋 0x02A[10]저장됩니다.FAT32 구현에서는 버전 번호를 알 수 없는 볼륨 마운트를 거부해야 합니다.
0x02C 0x21 4 루트 디렉토리 시작의 클러스터 번호. 일반적으로 잘못된 섹터가 없는 경우 2(첫[37] 번째 클러스터)입니다.(Microsoft의 FAT32 실장에서는 디렉토리당 65,535 엔트리의 인위적인 제한이 부과되고 있습니다만, 많은 서드파티 실장에서는 그렇지 않습니다).

클러스터 값 0은 공식적으로 허용되지 않으며 올바른 루트 디렉터리 시작 클러스터를 나타낼 수 없습니다.일부 비표준 FAT32 구현에서는 FAT16 볼륨에서 예상되는 고정 크기의 루트 디렉토리를 검색하기 위한 표시기로 간주될 수 있습니다. 오프셋 0x011을 참조하십시오.

0x030 0x25 2 FS 정보 섹터의 논리 섹터 번호입니다.일반적으로 3개의 FAT32 부트 섹터 중 두 번째 섹터입니다.

일부 FAT32 구현에서는 이 엔트리에 0xFFFF[26](또는 0x0000) 값을 지정함으로써 FS Information Sector를 옵션으로 만들 때 Microsoft 사양의 약간의 변경을 지원합니다.논리 섹터 0은 유효한 FS 정보 섹터가 될 수 없지만 FS 정보 섹터는 많은 부트[citation needed] 섹터에서 사용되는 것과 동일한 시그니처를 사용하기 때문에 파일시스템 구현에서는 논리 섹터 0을 FS 정보 섹터로 사용하지 않고 그 특정 볼륨에서 지원되지 않는 것으로 간주하지 마십시오.FS 정보 섹터가 없으면 FAT32 볼륨의 최소 허용 논리 섹터 크기를 128바이트로 줄일 수 있습니다.

0x032 0x27 2 3개의 FAT32 부트 섹터 복사본의 첫 번째 논리 섹터 번호(통상은 6).[10]

DR-DOS 7.0x FAT32로 포맷된 볼륨은 단일 섹터 부트 섹터를 사용하기 때문에 DR-DOS로 포맷된 일부 볼륨은 2의 값을 사용합니다.

0x0000[10](및/또는 0xFFF[26]) 값은 예약되어 있으며 사용 가능한 백업 섹터가 없음을 나타냅니다.

0x034 0x29 12 예약됨(MS-DOS에서 필러 바이트 0xF6[nb 2] 아티팩트로 포맷하도록 변경할 수 있음)FDISK포맷 툴을 사용하여0 으로 초기화할 필요가 있지만 나중에 파일시스템 구현이나 디스크툴을 사용하여 변경할 수 없습니다.)

DR-DOS 7.07 FAT32 부트 섹터는 이러한 12바이트를 사용하여 "파일명을 저장합니다.IBMBIO␠␠COM「파일 로드(최초 29,696바이트 또는 실제 파일 사이즈, 작은 것) 및 부트 섹터에 의해 실행되며, 그 후에 끝 NUL(0x00) 문자가 계속됩니다.[nb 9]이것도 실제 부트 파일명과 액세스 방법을 나타내는 에러 메시지의 일부입니다(오프셋 0x028 참조).

0x040 0x35 1 FAT12/FAT16용 CF 0x024 (물리 드라이브 번호)

exFAT BPB는 섹터오프셋 0x040 ~0x077에 배치되어 있으며, 이 엔트리를 포함한 표준 FAT32 EBPB의 나머지 엔트리와 모두 겹칩니다.OEM 라벨의 시그니처를 통해 검출할 수 있습니다.EXFAT␠␠␠" 섹터 오프셋 0x003에 있습니다.이 경우 0x00B ~0x03F의 바이트는 보통 0x00으로 설정됩니다.

0x041 0x36 1 FAT12/FAT16용 Cf. 0x025 (다양한 용도로 사용, FAT12/FAT16 참조)

MS-DOS FDISK로 파티셔닝한 후 포맷 필러 바이트 0xF6[nb 2] 아티팩트를 유지할 수 있지만 아직 포맷되지 않았습니다.

0x042 0x37 1 FAT12/FAT16의 경우 Cf. 0x026 (확장 부트시그니처, 0x29)

대부분의 FAT32파일 시스템 구현은 일련 번호( 없으며 볼륨 레이블과 파일 시스템 형식 항목)다음을 FAT32EBPB의 줄인 형태를 나타내는 것인데, 이 19은 대부분 사용되지 않는 바이트를 몇가지 시나리오에서 다른 목적에 봉사할 것, 구현 0x2을 받아들여야 한다 0x28[22]의 대안 서명을 지지하지 않는다.8대체 시그니처와 폴백하여 EBPB가 아닌 파일시스템 내의 디렉토리 볼륨라벨을 사용하여 잠재적인 확장자와의 호환성을 확보합니다.

0x043 0x38 4 FAT12/FAT16의 경우 0x027 (볼륨 ID)
0x047 0x3C 11 FAT12/FAT16용 Cf. 0x02B (볼륨 라벨)

오프셋 0x042의 시그니처가 0x28로 설정되어 있는 경우는 사용할 수 없습니다.

0x052 0x47 8 FAT12/FAT16용 CF 0x036 (파일 시스템 타입, 공백(0x20)으로 패딩)FAT32␠␠␠").

0x042 의 시그니처가 0x28 로 설정되어 있는 경우는 사용할 수 없습니다.

시그니처 0x29FAT32 EBPB를 사용하는 볼륨에서 오프셋 0x0200x013의 논리 섹터 합계 엔트리가 모두 0인 경우, 4,294,967,295(2-132) 섹터보다 많은 볼륨(32비트 클러스터 엔트리가 있는 일부 DR-DOS 볼륨)에서는 대신 이 엔트리를 64비트 합계 논리 섹터 엔트리로서 사용할 수 있습니다.이 경우 섹터 오프셋 0x003의 OEM 라벨을 새로운 스타일의 파일시스템 타입으로 취득할 수 있습니다.

예외

3.2 이전 버전의 DOS는 BPB가 존재하더라도 FAT12 디스켓 포맷을 결정하기 위해 BPB의 미디어 기술자 바이트 또는 첫 번째 FAT의 클러스터 0의 FAT ID 바이트에 전적으로 또는 부분적으로 의존했습니다.발견된 FAT ID와 감지된 드라이브 유형에 따라 BPB에 [nb 3]실제로 저장된 값을 사용하는 대신 다음 BPB 프로토타입 중 하나를 사용합니다.

원래, FATID모든 비트 비트 2을 제외하고 세트랑 비트 플래그 80트랙(40트랙 vs.)형식을 나타내기 위해, 좀 19부문(8부문 대)포맷을 표시하고 비트 0은 세로 방향(대에서 양면)format,[14]을 나타내기 위해 해결되지만 이 계획 모든 OEM에 의해고 구식이 적용되지 않았 해결을 의미했다. intr하드 디스크와 고밀도 포맷의 중복 배제.또, 86-DOS 와 MS-DOS 로 서포트되고 있는 다양한 8 인치 포맷은, 이 스킴에 적합하지 않습니다.

FAT ID(BPB 오프셋 0x0A에서 [29][30]미디어 ID와 비교) 0xFF 0xFE 0xFD 0xFC 0xFB 0xFA 0xF9 0xF8 0xF0 0xED 0xE5
크기 8" 5.25" 8" 8" 5.25" 8" 8" 5.25" 5.25" 5.25" / 3.5" 5.25" / 3.5" 5.25" 3.5" 3.5" 5.25" 5.25" / 3.5" 3.5" 3.5" 3.5" 5.25" 8"
밀도 ? DD 48tpi SD DD DD 48tpi SD SD DD 48tpi DD 48tpi ? ? HD 96 tpi DD 135 tpi HD 135 tpi QD 96tpi ? DD HD 135 tpi ED QD 96tpi SD
변조 ? MFM FM MFM MFM FM FM MFM MFM MFM MFM MFM MFM MFM MFM MFM MFM MFM MFM MFM FM
포맷된 용량(KB) ? 320 250 ('구형')[32][36] 1200 160 250 ('신규')[32][36] 500 360 180 640 320 1200 720 1440 720 360 360 1440 2880 720 243 / 250
실린더(CHS) 77 40 77 77 40 77 77 40 40 80 80 80 80 80 80 80 80 80 80 80 77
물리 섹터/트랙
(BPB 오프셋 0x0D)
? 8 26 8 8 26 26 9 9 8 8 15 9 18 9(8[35]) 9 9 18 36 9(8[35]) 26
헤드 수
(BPB 오프셋 0x0F)
? 2 1개[32][36] 2[14][29][36] (1) 1 1개[14][32][36] 2개[29] 2 1 2 1 2 2 2 2 1 1 2 2 2 1
바이트 페이로드/물리 섹터 ? 512 128 1024 512 128 128 512 512 512 512 512 512 512 512 512 512 512 512 512 128
바이트/논리 섹터
(BPB 오프셋 0x00)
? 512 128 1024 512 128 128 512 512 512 512 512 512 512 512 512 512 512 512 512 128
논리 섹터/클러스터
(BPB 오프셋 0x02)
? 2 4 1 1 4 4 2 1 2 1[29](2)[14] 1 2 1 ? 2 ? 1 2 ? 4
예약된 논리 섹터
(BPB 오프셋 0x03)
? 1 1개[32][36] 1 1 4개[32][36] 4 1 1 1 1 1 1 (2) 1 1 1 1 1 1 ? 1
FAT 수
(BPB 오프셋 0x05)
? 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
루트 디렉토리 엔트리
(BPB 오프셋 0x06)
? 112(7 섹터) 68(17 섹터) 192(6 섹터) 64(4 섹터) 68(17 섹터) 68(17 섹터) 112(7 섹터) 64(4 섹터) 112(7 섹터) 112(7 섹터) 224(14 섹터) 112(7 섹터) 224(14 섹터) ? 112(7 섹터) ? 224(14 섹터) 240(15 섹터) ? 64(16 섹터)
논리 섹터의 합계
(BPB 오프셋 0x08)
? 640 2002년[32][36] 1232[29][36] (616[14]) 320 2002년[14][32][36] 4004[29] 720 360 1280 640 2400 1440 2880 ? 720 ? 2880 5760 ? 2002
논리 섹터 / FAT
(BPB 오프셋 0x0B)
? 1 6개[32][36] 2 1 6개[32][36] 6시?[29] 2 2 2 2[29] (1 )[14] 7 3 9 (7) ? 2 ? 9 9 ? 1
숨김 섹터
(BPB 오프셋 0x11)
? 0 3[29] (0[14]) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ? 0
클러스터 총수 ? 315 497 1227 313 ? 997이요?[29] 354 351 ? ? 2371 713 2847? ? ? ? 2847 2863 ? ?
논리 섹터 순서 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
섹터 맵핑 ?
섹터+헤드+트랙+
섹터+헤드+트랙+
섹터+헤드+트랙+
섹터+헤드+트랙+
섹터+트랙+
섹터+헤드+트랙+
섹터+헤드+트랙+
섹터+헤드+트랙+
섹터+헤드+트랙+
섹터+트랙+
섹터+헤드+트랙+
섹터+헤드+트랙+
섹터+헤드+트랙+
?
섹터+트랙+
섹터+트랙+
섹터+헤드+트랙+
섹터+헤드+트랙+
?
섹터+트랙+
제1물리 섹터(CHS) ? 1 1 1 1 1 1 1 1 ? ? 1 1 1 ? 1 ? 1 1 ? 1
DRIVER.SYS /F:n ? 0 3 4 0 ? 3 0 0 ? ? 1 2 7 ? ? ? 7 9 ? 3
BPB 존재감 ? ? ? ? ? ? ? ? ? ? ? 네. 네. 네. ? ? ? 네. 네. ? ?
지지하다 ?
DOS 1.1[36]
DOS 1.0[32][36]
DOS 2.0
DOS 1.0[36]
무슨 일입니까?[32][36]
DOS 2.0
DOS 2.0
DOS 2.0
? ?
DOS 3.0
DOS 3.2
DOS 3.2만
(DR-DOS)
산요 55x
DS-DOS 2.11만
MS-DOS 3.1[14]
MSX-DOS
DOS 3.3
DOS 5.0
Tandy 2000 한정
DR-DOS만

Microsoft 에서는, FAT ID 0xFE 의 2 개의 8 인치 형식을 단일 밀도 주소 마크를 읽어 보는 것으로 구별하는 것을 추천합니다.에러가 발생했을 경우는, 배지 밀도가 [30]2배로 되어 있을 필요가 있습니다.

이 표에는 86-DOS에서 지원되는 호환성이 없는8인치 및 5.25인치 FAT12 플로피 포맷이 다수 나열되어 있지 않습니다.디렉토리 엔트리의 크기(16바이트와 32바이트) 또는 예약된 섹터 영역 범위(몇 개의 전체 트랙과 1개의 논리 섹터만)가 다릅니다.

Ablot PC 및 F1e용[38] MS-DOS에서 사용되는 315KB FAT12 형식의 싱글사이드 구현은 해당 컴퓨터의 비IBM 호환 BIOS에 맞게 부트 섹터 레이아웃이 달랐습니다.점프 명령과 OEM 이름은 생략되었으며 MS-DOS BPB 파라미터(표준 부트섹터의 오프셋 0x00B-0x017)는 오프셋 0x050에 있습니다.Portable, F1, PC duo 및 Xi FD는 [38]대신 비표준 양면 720KB FAT12 형식을 지원했습니다.부트 섹터 레이아웃과 미디어 ID의 차이로 인해 이러한 포맷은 다른 많은 운영 체제와 호환되지 않습니다.이러한 형식의 지오메트리 파라미터는 다음과 같습니다.

  • 315KB: 논리 섹터당 바이트 수: 512바이트, 클러스터당 논리 섹터 수: 1, 예약된 논리 섹터 수: 1, 루트 디렉토리 엔트리 수: 128, 총 논리 섹터 수: 630, FAT ID: 0xFC, FAT당 논리 섹터 수: 2, 트랙당 물리 섹터 수: 9, 헤드 수:[38][39] 1
  • 720KB: 논리 섹터당 바이트 수: 512바이트, 클러스터당 논리 섹터 수: 2, 예약된 논리 섹터 수: 1, 루트 디렉토리 엔트리 수: 176, 총 논리 섹터 수: 1440, FAT ID: 0xFE, FAT당 논리 섹터 수: 3, 트랙당 물리 섹터 수: 9, 헤드 수: [38]2

이후 버전의 살구 MS-DOS는 표준 부트 섹터뿐만 아니라 살구 섹터에서도 디스크를 읽고 쓸 수 있게 되었습니다.이러한 포맷은 Act 시리즈용 DOS Plus 2.1e/g에서도 지원되고 있습니다.

BBC Master 512용 DOS Plus 어댑테이션은 기존의 부트 섹터를 전혀 사용하지 않는 80 트랙, 양면, 2 밀도 5.25인치 드라이브에서 2개의 FAT12 포맷을 지원했습니다.800KB 데이터 디스크는 부트 섹터를 생략하고 [39]FAT의 단일 복사본으로 시작합니다.논리 섹터 0에서 재배치된 FAT의 첫 번째 바이트를 사용하여 디스크 용량을 확인했습니다.640KB의 부트 디스크는 부트 로더가 포함된 소형 ADFS 파일 시스템으로 시작되었으며, 그 다음에 단일 [39][40]FAT가 이어졌습니다.또, 640 KB 의 형식은, 0 으로 시작하는 물리적인 CHS 섹터 번호(공통으로서 1이 아님)와 sector-track-head(공통으로서 [40]sector-head-track이 아님)의 순서로 섹터를 증가시키는 것에 의해서 다릅니다.FAT는 다음 트랙의 시작 부분에서 시작되었습니다.이러한 차이로 인해 다른 운영 체제에서는 이러한 형식을 인식할 수 없습니다.이러한 형식의 지오메트리 파라미터는 다음과 같습니다.

  • 800KB: 논리 섹터당 바이트 수: 1024바이트, 클러스터당 논리 섹터 수: 1, 예약된 논리 섹터 수: 0, 루트 디렉토리 엔트리 수: 192, 총 논리 섹터 수: 800, FAT ID: 0xFD, FAT당 논리 섹터 수: 2, 트랙당 물리 섹터 수: 5, 헤드 수: [39][40]2
  • 640KB: 논리 섹터당 바이트 수: 256바이트, 클러스터당 논리 섹터: 8, 예약된 논리 섹터: 16, FAT 수: 1, 루트 디렉토리 엔트리: 112, 총 논리 섹터: 2560, FAT ID: 0xFF, FAT당 논리 섹터: 2, 트랙당 물리 섹터: 16, 헤드 수: [39][40]2

마스터 512용 DOS Plus는 논리 섹터 1의 FAT 첫 번째 바이트를 사용하여 180KB 또는 360KB포맷된 표준 PC 디스크에 액세스할 수도 있습니다.

DEC Rainbow 100(모든 종류)은 80트랙 싱글사이드 쿼드밀도 5.25인치 드라이브에서 1개의 FAT12 포맷을 지원했습니다.처음 2개의 트랙은 부트로더용으로 예약되어 있었지만 MBR이나 BPB는 포함되어 있지 않았습니다(MS-DOS는 대신 정적 메모리 내 BPB를 사용했습니다).부트 섹터(트랙 0, 사이드 0, 섹터 1)는 DI 0xF3으로 시작하는 Z80 코드입니다.8088 부트스트랩은 Z80에 의해 로드되었습니다.트랙 1, 사이드 0, 섹터 2는 미디어/FAT ID 바이트 0xFA로 시작합니다.포맷되지 않은 디스크는 대신 0xE5를 사용합니다.파일 시스템은 트랙 2, 사이드 0, 섹터 1에서 시작됩니다.루트 디렉토리에는 2개의 FAT 복사본과 96개의 엔트리가 있습니다.또한 2:1 섹터 인터리빙을 실행하기 위한 물리적 트랙과 논리적 트랙 매핑이 있습니다.디스크는 예약된 트랙 다음에 각 트랙에서 1~10의 순서로 물리 섹터로 포맷되었지만, 1~10의 논리 섹터는 물리 섹터 1, 6, 2, 7, 3, 8, 4, 9, 5, [41]10에 저장되었습니다.

FS 정보 부문

FAT32에서는 특정[42] 작업의 액세스 시간(특히 빈 공간 확보)을 단축하기 위해 "FS 정보 섹터"가 도입되었습니다.FAT32 EBPB 부트레코드에서 지정된 논리 섹터 번호(0x030)에 있습니다(보통은 논리 섹터 1, 부트레코드 직후).

바이트 오프셋 길이(바이트) 내용물
0x000 4 FS 정보 섹터 시그니처(0x52 0x62 0x61 0x41 = "RRaA")

FS Information Sector가 논리 섹터 1에 있는 한, 이 시그니처는 FAT12 및 FAT16 파일시스템(예약 섹터가 1개만 있는 경우)에서 FAT32 볼륨 마운트를 시도하지 않습니다.클러스터 0 및 클러스터 1의 이 예측되기 때문입니다.는 이 시그니처로는 충족되지 않는 특정 비트패턴을 따릅니다

0x004 480 Reserved(바이트 값은 포맷 에 0x00으로 설정해야 하지만 신뢰할 수 없으며 나중에 변경되지 않아야 함)
0x1E4 4 FS 정보 섹터 시그니처(0x72 0x72 0x41 0x61 = "rrAa")
0x1E8 4 볼륨에서 마지막으로 알려진 사용 가능한 데이터 클러스터 수 또는 알 수 없는 경우 0xFFFFFF.포맷 중에는 0xFFFFFF로 설정하고 나중에 운영체제에 의해 갱신해야 합니다.모든 시나리오에서 정확하다고 전적으로 신뢰할 수는 없습니다.이 값을 사용하기 전에 운영체제는 이 값이 볼륨의 클러스터 수보다 작거나 같은지 확인해야 합니다.
0x1EC 4 가장 최근에 할당된 데이터 클러스터의 수입니다.포맷 중에는 0xFFFFFF로 설정하고 나중에 운영체제에 의해 갱신해야 합니다.0xFFFF의 경우 시스템은 클러스터 0x00000002에서 시작됩니다.모든 시나리오에서 정확하다고 전적으로 신뢰할 수는 없습니다.이 값을 사용하기 전에 운영 체제는 이 값이 볼륨에서 유효한 클러스터 번호인지 확인해야 합니다.
0x1F0 12 Reserved(바이트 값은 포맷 에 0x00으로 설정해야 하지만 신뢰할 수 없으며 나중에 변경되지 않아야 함)
0x1FC 4 FS 정보 섹터 시그니처(0x00 0x55 0xAA)[10][nb 4] (4바이트 모두 일치해야 이 섹터의 내용이 유효한 포맷으로 간주됩니다.)

섹터의 데이터는 오래된 것으로, 현재의 미디어 컨텐츠를 반영하고 있지 않을 가능성이 있습니다.이는 모든 운영체제가 이 섹터를 업데이트 또는 사용하는 것은 아니기 때문입니다.또, 업데이트 한다고 해도, 볼륨을 올바르게 마운트 해제하지 않고 미디어를 이젝트했을 경우나, 전원 장해 후에 미디어가 이젝트 되었을 때는, 컨텐츠가 무효가 되기 때문입니다.따라서 operating system은 먼저 클러스터 1의 FAT 엔트리 또는 FAT32 EBPB에 있는 옵션의 셧다운 상태 비트 플래그를 검사하고 FS 정보 섹터에 저장된 데이터가 이전에 볼륨이 올바르게 마운트 해제되지 않았음을 나타내는 경우 무시해야 합니다.이로 인해 첫 번째 빈 공간 쿼리 또는 데이터 클러스터 할당 속도 저하 이외의 문제는 발생하지 않습니다. 플래그멘테이션을 참조하십시오.

이 섹터가 FAT32 볼륨에 있는 경우 최소 허용 논리 섹터 크기는 512바이트이고 그렇지 않은 경우 128바이트입니다.일부 FAT32 구현에서는 오프셋 0x030의 엔트리에 0xFFFF[26](또는 0x0000) 값을 지정함으로써 FS 정보 섹터를 옵션으로 함으로써 Microsoft 사양의 약간의 변화를 지원합니다.

파일 할당 테이블

클러스터 맵

볼륨의 데이터 영역은 연속된 공간의 작은 블록인 동일한 크기의 클러스터로 분할됩니다.클러스터 크기는 사용하는 FAT 파일 시스템의 유형과 드라이브의 크기에 따라 달라집니다.일반적으로 클러스터 크기는 2 ~[43]32 KiB입니다.

각 파일은 크기에 따라 하나 이상의 클러스터를 차지할 수 있습니다.따라서 파일은 클러스터 체인(단일 링크 목록이라고 함)으로 표시됩니다.이러한 클러스터는 디스크 표면에 서로 인접한 위치에 저장되지 않고 데이터 영역 전체에 걸쳐 단편화되는 경우가 많습니다.

FAT 파일시스템의 각 버전은 FAT 엔트리에 다른 크기를 사용합니다.수치가 작을수록 FAT는 작아지지만 대규모 클러스터에 할당해야 하므로 큰 파티션의 공간이 낭비됩니다.

FAT12 파일시스템은 FAT 엔트리당 12비트를 사용합니다.따라서 2개의 엔트리는 3바이트에 걸쳐 있습니다.이는 항상 리틀엔디안입니다.이 3바이트를 1개의 리틀엔디안 24비트 수치로 간주할 경우 최하위 12비트는 첫 번째 엔트리(클러스터 0 등)를 나타내고 최상위 12비트는 두 번째 엔트리(클러스터 1)를 나타냅니다.즉, 행 내 첫 번째 클러스터의 하위 8비트는 제1바이트에 격납되어 있는 반면, 상위 4비트는 제2바이트의 하위 4비트는 제2바이트의 상위 8비트에 격납부된 후속 클러스터의 하위 4비트는 두 번째 바이트의 상위 8비트에 저장된다.

여러 클러스터 체인으로 시작하는 FAT12 테이블 예시
오프셋 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
+0000 F0 FF FF 03 40 00 05 60 00 07 80 00 FF AF 00 14
+0010 C0 00 0D E0 00 0F 00 01 11 F0 FF 00 F0 FF 15 60
+0020 01 19 70 FF F7 AF 01 FF 0F 00 00 칠십 FF 00 00 00
  • FAT ID/Endianness 마커(예약된 클러스터 #0 내). 0xF0은 파티셔닝되지 않은 슈퍼플로피 드라이브의 볼륨을 나타냅니다(파티셔닝된 디스크의 경우 0xF8이어야 함).
  • 체인 끝 표시기/유지보수 플래그(예약 클러스터 #1)
  • 프래그먼트화되지 않은 파일용 두 번째 체인(7개의 클러스터) (여기서 #2, #3, #4, #5, #6, #7, #8)
  • 세 번째 체인(7개의 클러스터)으로 분할된 파일(여기서 #9, #A, #14, #15, #16, #19, #1A)
  • 4번째 체인(7개의 클러스터)은 프래그먼트화되지 않은 파일(여기서 #B, #C, #D, #E, #F, #10, #11)에 대응합니다.
  • 빈 클러스터(여기서 #12, #1B, #1C, #1E, #1F)
  • 서브 디렉토리의 5번째 체인(1 클러스터) (여기서 #13)
  • 불량 클러스터(3개 클러스터)(여기서 #17, #18, #1D)

FAT16 파일시스템은 FAT 엔트리당 16비트를 사용하기 때문에 1개의 엔트리는 리틀엔디안 바이트 순서로 2바이트에 걸쳐 있습니다.

여러 클러스터 체인으로 시작하는 FAT16 테이블 예시
오프셋 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
+0000 F0 FF FF FF 03 00 04 00 05 00 06 00 07 00 08 00
+0010 FF FF 0A 00 14 00 0C 00 0D 00 0E 00 0F 00 10 00
+0020 11 00 FF FF 00 00 FF FF 15 00 16 00 19 00 F7 FF
+0030 F7 FF 1A 00 FF FF 00 00 00 00 F7 FF 00 00 00 00

FAT32 파일시스템은 FAT 엔트리당 32비트를 사용하기 때문에 1개의 엔트리는 리틀엔디안 바이트 순서로 4바이트에 걸쳐 있습니다.각 엔트리의 4개의 상위 비트는 다른 목적으로 예약되어 있습니다.포맷 중에 클리어되므로 변경하지 마십시오.엔트리를 28비트클러스터 주소로 해석하기 전에 이들 엔트리를 마스킹해야 합니다.

여러 클러스터 체인으로 시작하는 FAT32 테이블 예시
오프셋 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
+0000 F0 FF FF 0F FF FF FF 0F FF FF FF 0F 04 00 00 00
+0010 05 00 00 00 06 00 00 00 07 00 00 00 08 00 00 00
+0020 FF FF FF 0F 0A 00 00 00 14 00 00 00 0C 00 00 00
+0030 0D 00 00 00 0E 00 00 00 0F 00 00 00 10 00 00 00
+0040 11 00 00 00 FF FF FF 0F 00 00 00 00 FF FF FF 0F
+0050 15 00 00 00 16 00 00 00 19 00 00 00 F7 FF FF 0F
+0060 F7 FF FF 0F 1A 00 00 00 FF FF FF 0F 00 00 00 00
+0070 00 00 00 00 F7 FF FF 0F 00 00 00 00 00 00 00 00
  • 루트 디렉토리의 첫 번째 체인(1클러스터), FAT32 BPB의 엔트리로 지정(여기서 #2)
  • 프래그먼트화되지 않은 파일용 두 번째 체인(6개의 클러스터) (여기서 #3, #4, #5, #6, #7, #8)

파일 할당 테이블(FAT)은 예약된 섹터 영역 바로 뒤에 이어지는 연속된 섹터 수입니다.볼륨의 각 클러스터에 매핑되는 항목 목록을 나타냅니다.각 엔트리는 다음 5가지 중 하나를 기록합니다.

  • 사슬의 다음 군집의 군집 번호
  • 사슬의 끝을 나타내는 클러스터 체인(EOC)의 특별한 끝
  • 불량 집단을 표시하기 위한 특별 항목
  • 클러스터가 사용되지 않음을 나타내는 0

초기 버전의 DOS가 파일 시스템을 인식하려면 시스템이 볼륨에서 부팅되었거나 볼륨의 FAT가 볼륨의 두 번째 섹터(물리 CHS 주소 0/0/2 또는 LBA 주소 1)에서 시작되어야 합니다. 즉, 부트 섹터 직후에 시작됩니다.운영체제는 유효한 BPB가 없는 DOS 1.0-1.1 FAT 디스켓의 FAT 클러스터 0 엔트리에서 FAT ID를 찾기 위해 FAT의 유선 위치를 가정합니다.

특별 엔트리

FAT의 처음 2개의 엔트리는 특별한 값을 저장합니다.

첫 번째 엔트리(FAT의 클러스터 0)는 MS-DOS 1.20PC DOS 1.1 이후의 FAT ID(0xF1-0xF7 예약 0xF0-0xFF)를 비트7-0으로 유지하고 있습니다.이것은 부트 섹터의 BPB에도 오프셋되어 있습니다.이 엔트리의 나머지 4비트(FAT12의 경우), 8비트(FAT16의 경우) 또는 20비트(FAT32)는 항상 1입니다.이들 값은 엔트리가 값 0을 유지하는 모든 데이터 클러스터의 "트랩 올" 엔드 오브 체인 마커로도 기능하도록 배열되었습니다.또한 0xFF(및 0x00) 이외의 FAT ID의 경우 파일 시스템 드라이버에 의해 사용되는 올바른 니블 및 바이트 순서를 결정할 수 있지만 FAT 파일 시스템은 공식적으로 리틀 엔디안 표현만을 사용하고 엔디안 값을 사용하는 바리안트 구현은 알려져 있지 않습니다.86-DOS 0.42 ~ MS-DOS 1.14 까지는 FAT ID 대신 유선 드라이브 프로파일을 사용했지만 이 바이트를 사용하여 86-DOS 0.42 이전에 사용되었기 때문에 32바이트 또는 16바이트 디렉터리 엔트리로 포맷된 미디어를 구분했습니다.

두 번째 엔트리(FAT의 클러스터 1)에는 포메이터가 사용하는 클러스터 체인 종료 마커가 명목상 저장되지만 일반적으로는 0xFF/0xFFFF/0x0FFFF가 유지됩니다.즉, FAT32 볼륨의 비트 31~28을 제외하고, 이러한 비트는 항상 설정됩니다.다만, 일부의 Microsoft operating system에서는, 볼륨이 실행중의 operating system을 보관 유지하는 볼륨이 아닌 경우는, 이러한 비트를 설정합니다(즉,[44] 여기서는 0x0FFFFFF 대신에 0xFFFFFF 를 사용합니다).(대체 엔드 오브 체인 마커와 조합하여 최소 허용 엔드 오브 체인 마커 0xFF8 / 0xFF8 / 0x에 대해 최소 비트 2.0이 0이 될 수 있습니다.FFFFF8. 클러스터 0xFF0/0xFF0/0x의 경우 비트3도 예약해야 합니다.FFFFF0 이후는 공식적으로 예약되어 있습니다.일부 운영체제시스템에서는 이들 비트가 설정되어 있지 않으면 일부 볼륨을 마운트할 수 없는 경우가 있습니다.따라서 디폴트 엔드 오브 체인마커를 변경하지 마십시오.DOS 1과 DOS 2의 경우 엔트리는 향후 사용을 위해 예약된 것으로 문서화되었습니다.

DOS 7.1 이후 이 클러스터 엔트리의 최상위2비트는 FAT16 및 FAT32의 현재 볼륨상태를 나타내는 옵션비트 플래그를 2개 보유할 수 있지만 FAT12 볼륨에서는 보유할 수 없습니다.이러한 비트 플래그는 모든 운영 체제에서 지원되는 것은 아니지만, 이 기능을 지원하는 운영 체제에서는 이러한 비트가 셧다운되고 시작 시 가장 중요한 비트가 지워집니다.
볼륨을 마운트할 때 비트 15(FAT16 위) 또는 비트 27(FAT32 [45]위)가 설정되어 있지 않은 경우, 셧다운 또는 이젝트 전에 볼륨이 올바르게 마운트 해제되지 않았기 때문에 알 수 없고 "더러운" 상태입니다.[31]FAT32 볼륨에서는 FS 정보 섹터가 오래된 데이터를 보유할 수 있으므로 사용하지 마십시오.운영체제는 일반적으로 볼륨 무결성을 확인하고 재정립하기 위해 다음[nb 10][45] 부팅 시(리무버블 미디어 삽입 시 제외)에 SCANDISK 또는 CHKDSK실행합니다.
비트 14(FAT16의 경우) 또는 비트 26(FAT32의 [45]경우)을 클리어하면 OS 부팅 [45]시 디스크 I/O 오류가 발생하여 불량 섹터의 가능성이 있습니다.이 확장을 인식하는 운영 체제에서는 다음 부팅 [31][45]시 표면 스캔(SCANDISK)을 수행하기 위한 권장 사항으로 해석됩니다.(오프셋 0x1A의 FAT12/FAT16 EBPB 또는 오프셋 0x36의 FAT32 EBPB에도 같은 비트플래그가 존재합니다.볼륨을 마운트한 후에는 파일 시스템 드라이버가 클러스터 1 엔트리에 액세스할 수 있지만 볼륨이 마운트되지 않은 경우에도 EBPB 엔트리를 사용할 수 있으므로 디스크 블록 디바이스 드라이버나 파티션 툴에서 사용하기 쉽습니다.)

BPB의 FAT 수가 2로 설정되어 있지 않은 경우 첫 번째 FAT(클러스터 1)의 두 번째 클러스터 엔트리는 TFAT 인식 운영 체제의 TFAT 볼륨 상태를 반영할 수도 있습니다.해당 FAT 내의 클러스터 1 엔트리가 값 0을 유지하고 있는 경우, 이는 두 번째 FAT가 마지막으로 알려진 유효한 트랜잭션 상태를 나타내며 첫 번째 FAT를 통해 복사해야 함을 나타낼 수 있습니다.또한 모든 비트가 설정되어 있는 경우에는 첫 번째 FAT를 두 번째 FAT를 통해 복사해야 합니다.

일부 비표준 FAT12/FAT16 구현에서는 클러스터 1 엔트리를 사용하여 가변 크기 루트 디렉토리(일반적으로[37] 2)의 시작 클러스터를 저장합니다.이 문제는 BPB 내의 루트디렉토리 엔트리의 가 0을 유지하고 있는데 FAT32 EBPB가 발견되지 않은 경우(오프셋0x042에서 [27]시그니처 0x29 또는 0x28이 없는 경우) 발생할 수 있습니다.그러나 이 확장은 클러스터 1 엔트리의 다른 사용 가능성과 충돌하므로 메인스트림 운영 [27]체제에서는 지원되지 않습니다.이 확장이 0xFEF 미만인 FAT12 및 0x3FEF 클러스터 미만인 FAT16 볼륨에 대해서만 허용되는 경우 대부분의 경합을 배제할 수 있습니다.

처음 2개의 FAT 엔트리는 특별한 값을 저장하기 때문에 데이터 클러스터 0 또는1은 존재하지 않습니다.첫 번째 데이터 클러스터(FAT12/FAT16의 경우 루트 디렉토리 다음)는 클러스터 [37]2로, 데이터 영역의 시작을 나타냅니다.

클러스터 값

FAT 엔트리 값:

FAT12 FAT16 FAT32 묘사
0x000 0x0000 0x?0000000 Free Cluster(프리 클러스터). 또한 DOS에서 FAT12/FAT16 [11][13]볼륨에 있는 루트 디렉토리의 서브 디렉토리의 ".." 엔트리에 있는 상위 디렉토리를 시작하는 클러스터를 나타냅니다.

그렇지 않으면 이 값이 클러스터 체인(예를 들어 길이가 제로인 디렉토리 엔트리 또는 삭제된 파일 등)에서 발생할 경우 파일시스템 실장에서는 이를 체인 끝 [14]마커와 같이 취급해야 합니다.

0x001 0x0001 0x00001 내부용으로 예약되어 있습니다.MS-DOS/PC DOS는 파일 할당 중에 클러스터 체인을 구축할 때 이 클러스터 값을 일시적으로 비프리 클러스터 표시기로 사용합니다(이 프로세스 [11][13]도중 크래시 또는 전원 장애가 발생한 경우에만 디스크에서 볼 수 있습니다).

이 값이 온디스크클러스터 체인으로 발생하는 경우 파일시스템 구현에서는 이 값을 체인 끝 마커와 같이 취급해야 합니다.

0x002 - 0xFEF 0x0002 - 0xFFEF (0x0002 - 0x7FF) 0x?00002 - 0x?FFFFFF 데이터 클러스터로 사용되며 값은 다음 클러스터를 가리킵니다.MS-DOS/PC DOS에서는 최대 0xFEF/0xFFFF/0x0FFFF의 값을 사용할 수 있지만, Atari GEMDOS에서는 최대 0x7FFFF의 값만 FAT16 볼륨에서 사용할 수 있습니다.
0xFF0[nb 11]~0xFF5(0xFF1~0xFF5) 0xFF0 - 0xFF5 0x?FFFF0 - 0x?FFFF5 일부 [46]컨텍스트에서 예약되거나 일부 비표준 시스템에서는 데이터 클러스터로도 사용됩니다[5][6][7][10][47].데이터 클러스터로 이런 가치들이 사용할 것 볼륨 크기이지만, 그 가치 기존의 볼륨에 발생하면 파일 시스템 일반적인 데이터 클러스터로 cluster-chains(이상적으로 추가적인 정신 상태 점검을 적용하는), MS-DOS, PCDOS와 DR-DOS do,[13]해 비슷한 파일에 대해 그렇지 않으면 수입을 올려 피해야 한다 그들을 다루어야 한다 피해야 한다..

MS-DOS/PC DOS 3.3 이상에서는 FAT12(FAT16 또는 FAT32는 제외) 볼륨에서 0xFF0[nb 11][13] 값을 0xFF8-0xFF[13]유사한 추가 체인 끝 마커로 취급합니다.MS-DOS/PC DOS와의 호환성을 위해 파일 시스템은 FAT12 볼륨의 클러스터 체인으로 데이터 클러스터 0xFF0을 사용하지 않도록 해야 합니다(즉, 0xFF7과 유사한 예약된 클러스터로 취급합니다). (NB)클러스터 번호의 낮은 바이트와 FAT ID 및 미디어 기술자 값이 일치하기 때문에 이러한 클러스터 값이 예약됩니다).

0xFF6 0xFFF6 0x?FFFF6 예약 완료.[5][6][7][10][28][47] 사용하지 마십시오. (NB. IBM 호환 컴퓨터의 기본 형식 필러 값 0xF6에 해당합니다.)이 값을 데이터 클러스터로 사용하는 볼륨을 생성해서는 안 됩니다.그러나 이 값이 기존 볼륨에서 발생하는 경우 파일 시스템은 해당 볼륨을 클러스터 체인의 일반 데이터 클러스터로 취급해야 합니다(추가 온전성 검사 적용). 그렇지 않으면 파일에 할당하지 [14]않도록 해야 합니다.
0xFF7 0xFFF7 0x?FFFF7 클러스터 또는 예약된 클러스터에 불량 섹터가 있습니다(DOS 2.0 이후).

FAT12 및 FAT16 파일 시스템의 최대 클러스터 수에 대한 컷오버 값은 가능한 최대 데이터 클러스터 값(각각 0xFF50xFF5)[13]이 항상 이 [13]값보다 작도록 정의됩니다.따라서, 이 값 보통 cluster-chains에 나더라도, FAT12 볼륨에 DOS2.0으로 나쁜 클러스터 매직이나 16비트 파일 할당 표의 도스 3.0,[14]과 0xFFF7을 소개가 될 수 있었어 비표준 다 빈치의 도입 전부터 0xFF7가 될 수 있었어 비표준 데이터로, 정상적인 데이터 클러스터로, 치료를 받을 수 있는 경우 발생할 수 없다.있을DOS 7.10이 탑재된 FAT32가 도입되기 전에 FAT16 볼륨에서 클러스터화되었습니다.이론적으로 0x0FFFF7은 FAT32 볼륨에서 유효한 클러스터 체인의 일부가 될 수 있지만 디스크 유틸리티는 FAT32 볼륨을 생성하지 않도록 해야 합니다.이 경우 이 상태가 발생할 수 있습니다.파일 시스템은 [14]이 클러스터를 파일에 할당하지 않도록 해야 합니다.

디스크 유틸리티는 FAT에서 이 값을 유지하는 "분실 클러스터" 복원을 시도하지 않고 불량 클러스터로 간주해야 합니다.

0xFF8 - 0xFF (옵션으로 0xFF0,[nb 11] 참고 참조) 0xFF8 - 0xFFFF 0x?FFFF8 - 0x?FFFFFF 파일의 마지막 클러스터(EOC).파일 시스템 구현에서는 이러한 모든 값을 동시에 체인 [14]끝 마커로 취급해야 합니다.대부분의 파일 시스템 구현(86-DOS, MS-DOS, PC DOS 및 DR-DOS 포함)에서는 파일 할당 시 파일 종료 마커로 0xFFFF[14]/0xFFFF[14]/0x0FFFFFF를 사용하지만 2.5.40 이전 버전의 Linux에서는 0xFF8/0xFFFF/0x0FFFF/0F를 사용합니다.mkdosfs 버전(dosfstools 3.0.26)에서는 FAT32 볼륨의 루트 디렉터리에 0x0FFFF8을 계속 사용하는 반면 일부 디스크 복구 및 조각 모음 도구는 세트의 다른 값을 사용합니다(예: SCANDISK에서는 0xFF8/0xFF8/0x0FF8을 대신 사용할 수 있습니다).마이크로 소프트의 Standalone디스크 베이직이 다른 엔드 표지에 원래 8비트 FAT구현에(0xC0..0xCD)부문의 수(0~13) 지난 클러스터 파일에 의해 점령된 지역에 다 쓰일 것을 나타내는 데 사용되었다, 다른 엔드 표지 도스에 media,[14]의 현재 사용 중인 끝 표지 indi을 가진 다양한 유형을 나타내기 위해 쓰여졌는지도 있었다.고양이단, 클러스터 1 엔트리에서 이 개념은 실제로 널리 사용되고 있지 않은 것 같습니다.또, 일부의 시나리오에서는, 클러스터 1에 보존되어 있는 값의 하위 비트가 설정되어 있지 않은 경우, 볼륨이 일부의 operating system에 의해서 인식되지 않는 경우가 있습니다.또한 일부 장애가 있는 파일 시스템 구현에서는 0xFF/0xFF/0x만 허용합니까?유효한 체인 끝 마커로서의 FFFFF.

파일 시스템 구현 cluster-chains의 최대 허용 클러스터 가치는 장정의 실제 크기와 뿐만 아니라 보다 높은 값들은end-of-chain 마커 치료에 의해 측정된다.( 같은 번호의 낮은 바이트 개념적으로 FATID와 미디어 설명자 값에 상응합니다;[14]노트 a를 참조하십시오 클러스터 값을 확인해야 하boveMS-DOS/PC DOS의 경우 FAT12 볼륨에서 0xFF0[nb 11] 특별히 사용합니다.)[13]

FAT32는 클러스터 번호에 28비트를 사용합니다.32비트 FAT 엔트리의 나머지 4비트는 보통 0이지만 예약되어 있으므로 그대로 두어야 합니다.표준 준거 FAT32 파일시스템 드라이버 또는 유지보수 툴은 상위 4비트를 0으로 할 필요가 없습니다.또, 이러한 비트가 다른 목적으로 사용될 가능성이 있는 장래의 확장에 대응하기 위해서, 클러스터 번호를 평가하기 전에, 그것들을 떼어낼 필요가 있습니다.새 클러스터를 할당할 때 파일 시스템 드라이버에 의해 지워지지 않고 다시 포맷할 때 지워져야 합니다.

크기 제한

FAT 파일 시스템의 FAT12, FAT16, FAT16B 및 FAT32는 클러스터 수와 클러스터당 섹터 수(1, 2, 4, ..., 128)에 따라 명확한 제한이 있습니다.섹터당 512바이트의 일반적인 값의 경우:

FAT12 요건: 1,024 클러스터마다 FAT 복사본당 3개의 섹터
FAT16 요건: 256 클러스터마다 FAT 복사본당 1개의 섹터
FAT32 요건: 128 클러스터마다 FAT 복사본당 1개의 섹터

FAT12 범위: 1~4,084 클러스터: FAT 복사당 1~12 섹터
FAT16 범위: 4,085 ~65,524 클러스터: FAT 복사당 16 ~256 섹터
FAT32 범위 : 65,525 ~268,435,444 클러스터 : FAT 복사당 512 ~2,097,152 섹터

FAT12 최소값 : 클러스터당 섹터x 1 클러스터 = 512 바이트 (0.5 KB)
FAT16 최소값 : 클러스터당 1 섹터 × 4,085 클러스터 = 2,091,126 바이트 (2,042.5 KB)
FAT32 최소값 : 클러스터당 1 섹터 × 65,525 클러스터 = 33,548,800 바이트 (32,762.5 KB)

FAT12 최대값 : 클러스터당 64 섹터 × 4,084 클러스터 = 133,824,127 바이트 (최대 127 MB)
[FAT12 최대값: 클러스터당 128 섹터 × 4,084 클러스터 = 267,694,024 바이트 (최대 255 MB)]

FAT16 최대값 : 클러스터당 64 섹터 × 65,524 클러스터 = 2,440,090,432 바이트 (1024,047 MB)
[FAT16 최대값: 클러스터당 128 섹터 × 65,524 클러스터 = 4,294,180,864 바이트 (1024,095 MB)]

FAT32 최대값 : 클러스터당8 섹터 × 268,435,444 클러스터 = 1,099,511,578,624 바이트 (1024 GB)
FAT32 최대값 : 클러스터당 16 섹터 × 268,173,557 클러스터 = 2,440,877,978,944 바이트 (8046 GB)
[FAT32 최대값 : 클러스터당 32 섹터 × 134,134,181 클러스터 = 2,134,949,333,504 바이트 (10247,GB)]
[FAT32 최대값 : 클러스터당 64 섹터 × 67,092,469 클러스터 = 2,440,486,024,192 바이트 (1024,047 GB)]
[FAT32 최대값: 클러스터당 128 섹터 × 33,550,420 클러스터 = 2,440,754,099,200 바이트(1,047 GB)]

범례: 268435444+30x0FFFF7입니다.FAT32 버전 0은 32비트 클러스터 번호에서 28비트만 사용하고 클러스터 번호 0x0FFFF7은 불량 클러스터 또는 파일 끝에 플래그를 지정하며 클러스터 번호 0은 사용 가능한 클러스터에 플래그를 지정하고 클러스터 번호 1은 사용되지 [37]않습니다.마찬가지로 65524+3은 FAT16의 경우 0xFF7, FAT12의 경우 4084+3은 0xFF7입니다.클러스터당 섹터 수는 1바이트당 2개의 피팅 거듭제곱이며, 가장 작은 값은 1(0x01)이고, 가장 큰 값은 128(0x80)입니다.각 괄호 안의 행은 비정상 클러스터 크기 128을 나타냅니다.FAT32의 경우 클러스터 크기 32 또는 [49]64가 필요 이상으로 큽니다.

각 FAT32 엔트리는 32비트(4바이트)를 차지하기 때문에 최대 클러스터 수(268435444)에는 섹터 크기 512바이트의 2097152 FAT 섹터가 필요합니다.2097152는 0x200000으로 이 값을 저장하려면 2바이트가 넘어야 합니다.따라서 FAT32는 FAT16B 배리언트에 도입된 섹터의 총수에 대한 32비트 값 직후에 FAT32 부트 섹터에 새로운 32비트 값을 도입했습니다.

DOS 4.0에서 도입된 부트레코드 확장자는 매직40(0x28) 또는 41(0x29)부터 시작됩니다.통상, FAT 드라이버는, FAT12, FAT16, 및 FAT32 를 구별하기 위해서 클러스터의 수만을 조사합니다.부팅 레코드에서 FAT 배리언트를 식별하는 판독 가능한 문자열은 무시됩니다.이는 DOS 4.0 이후에 포맷된 미디어에만 존재하기 때문입니다.

클러스터당 디렉토리 엔트리의 수를 결정하는 것은 간단합니다.각 엔트리는 32바이트를 차지하므로 섹터 크기 512바이트에 대해 섹터당 16개의 엔트리가 생성됩니다.DOS 5RMDIR/RD명령어는 첫 번째 "를 삭제합니다..(이 디렉토리)와..서브디렉토리에 직접 (부모 디렉토리) 엔트리가 있기 때문에 FAT12의 경우 RAM 디스크의 섹터 사이즈 32가 가능하지만 클러스터당 2개 이상의 섹터가 필요합니다.DOS 4 확장이 없는 FAT12 부트 섹터는 최초로 불필요한 FAT16B 32비트 수의 숨겨진 섹터가 생기기 전에 29바이트가 필요합니다.이것에 의해, (RAM 디스크상의) 부트 코드에 3바이트가 남고, 모든 부트 섹터의 마지막에 매직 0x55 0xAA가 남습니다.Windows NT에서 지원되는 최소 섹터 크기는 128입니다.

Windows NT 운영체제에서는FORMAT명령어 옵션/A:128K그리고./A:256K최대 클러스터 크기에 대응합니다.0x80(128) 섹터 사이즈가 각각 1024 및 2048이다.공통 섹터 크기 512의 경우/A:64K클러스터당 128개의 섹터를 출력합니다.

각 ECMA-107[5] 및 ISO/IEC 9293의[6][7] 두 에디션 모두 최대 클러스터 수를 지정합니다. MAX공식에 의해 결정되다MAX=1+trunc((TS-SSA)/SC)및 클러스터 번호를 예약합니다.MAX+1최대 4086 (0xFF6, FAT12), 이후 65526 (0xFF6, FAT16)까지 지원.

Microsoft의 EFI FAT32 사양에서는[10] 클러스터가 4085개 미만인 FAT 파일시스템은 FAT12, 클러스터가 65,525개 미만인 FAT 파일시스템은 FAT16, FAT32로 되어 있습니다.FAT의 선두에 있는 클러스터0의 엔트리는 BPB의 미디어 기술자 바이트와 동일해야 합니다.한편 클러스터 1의 엔트리는 클러스터 체인(0xFF, 0xFFFF 또는 0x0FFFFFF)의 포메터에 의해 사용되는 체인 끝 값을 반영합니다.클러스터 번호0 및 1의 엔트리는 FAT12의 경우에도 바이트 경계로 끝납니다(예: 0xF9).미디어 기술자 0xF9의 FFFF.

첫 번째 데이터 클러스터는 [37]2이며, 그 결과 마지막 클러스터가 됩니다.MAX번호를 취득하다MAX+1따라서 데이터 클러스터 번호는 2...4085(0xFF5), FAT12는 2...65525(0xFF5), FAT32는 2...268435445(0x0FFF5)가 됩니다.

따라서 향후 표준화를 위해 예약된 값은 0xFF6(FAT12)과 0xFF6(FAT16)뿐입니다.이하에 기술한 바와 같이, 「4085 미만」은 Linux 의 [47]실장에도 사용되고 있습니다.또,[10] Microsoft 의 FAT 사양에서는 다음과 같이 기술하고 있습니다.

...<라고 하는 것은,<=>를 의미하는 것은 아닙니다.또, 번호가 올바른 것에 주의해 주세요.FAT12의 첫 번째 번호는 4085, FAT16의 두 번째 번호는 65525입니다.이 숫자와 "<" 기호는 틀리지 않습니다.

단편화

FAT 파일 시스템에는 새로 쓴 파일이 파티션에 [50]흩어지는 것을 방지하는 내장 메커니즘이 포함되어 있지 않습니다.파일이 자주 생성 및 삭제되거나 파일의 길이가 자주 변경되는 볼륨에서 미디어는 시간이 지남에 따라 점점 더 단편화됩니다.

FAT 파일 시스템의 설계로 디스크 구조의 조직 오버헤드가 발생하지 않거나 단편화 양이 증가하여 사용 가능한 스토리지 공간을 줄이는 일은 없지만, 외부 단편화에서는 fragment화되므로 fragment화된 파일의 읽기 및 쓰기에 필요한 시간은 operating system이 클러스터를 따라야 하기 때문에 증가합니다.FAT 체인(특히 대용량에서 먼저 메모리에 부품을 로드해야 함) 및 미디어 전체에 걸쳐 물리적으로 분산된 해당 데이터를 읽어냄으로써 로우 레벨 블록 디바이스 드라이버가 멀티 섹터 디스크 I/O를 수행하거나 더 큰 DMA 전송을 시작할 가능성을 줄이므로 I/O 프로토콜 오버헤드가 효과적으로 증가합니다.또한 디스크 드라이브 내에서의 암 이동 및 헤드셋 시간.또, operating system이 파일을 검색하거나 클러스터를 해방하는 시간이 길어지기 때문에, fragment화의 증가에 수반해, 파일의 처리 속도가 저하합니다.

HPFSexFAT 등 다른 파일 시스템에서는 사용 가능한 클러스터를 나타내는 빈 공간 비트맵을 사용합니다.이 비트맵은 사용 가능한 인접 영역을 찾기 위해 신속하게 검색할 수 있습니다.또 다른 솔루션은 Unix 파일시스템에서와 같이 모든 빈 클러스터를 1개 이상의 목록으로 링크하는 것입니다.대신 FAT를 어레이로 스캔하여 사용 가능한 클러스터를 찾아야 합니다.이 때문에 큰 디스크에서는 퍼포먼스가 저하될 수 있습니다.

실제로 큰 서브 디렉토리에서 파일을 찾거나 FAT 볼륨의 빈 디스크 공간을 계산하는 작업은 디렉토리 테이블 또는 전체 FAT를 선형적으로 읽어야 하므로 가장 많은 리소스를 필요로 하는 작업 중 하나입니다.FAT12 및 FAT16 볼륨에서는 클러스터의 총량과 FAT16 엔트리의 크기가 아직 작았기 때문에 FAT12 및 FAT16 볼륨에서는 대부분의 경우 보다 정교한 디스크 구조를 도입하면 실제 모드 운영 체제의 복잡성과 메모리 사용 공간도 증가한다는 점을 고려할 때 이 문제는 여전히 허용될 수 있습니다.ng FAT가 원래 설계 및 최적화되어 있는 최소 총 메모리 요건이 128KB 이하(DOS 등)인 시스템.

FAT32의 도입으로 특히 매우 큰 볼륨에서 긴 탐색 및 스캔 시간이 더욱 명확해졌습니다.Microsoft의 Raymond Chen이 Windows에서 작성하는 FAT32 파티션의 최대 크기를 제한하기 위해 제시한 근거는 ""를 실행하는 데 필요한 시간"입니다.DIRoperation: 항상 빈 디스크 [51]영역을 마지막 행으로 표시합니다.클러스터 수가 증가함에 따라 이 행을 표시하는 데 시간이 점점 더 걸렸습니다.따라서 FAT32는 특수한 파일 시스템 정보 섹터를 도입했습니다.이 섹터는 이전에 계산한 빈 용량이 전원을 껐다 켜도 유지되기 때문에 FAT32 포맷 미디어를 먼저 마운트 해제하지 않고 이젝트하거나 시스템이 정상적으로 종료되지 않고 꺼졌을 때만 빈 공간 카운터를 다시 계산할 필요가 있습니다.운영체제를 다운시킵니다.이는 ATX 스타일 이전의 PC, 일반 DOS 시스템 및 일부 배터리 구동식 소비자 제품에서 주로 볼 수 있는 문제입니다.

대규모 FAT 파티션에 의해 강제되는 대규모 클러스터 크기(16KB, 32KB, 64KB)에서는 클러스터 오버행으로 인한 파일 슬랙으로 인한 디스크 공간 낭비 형태의 내부 플래그멘테이션도 문제가 되기 시작합니다(특히 작은 파일이 매우 많은 경우).

FAT 파일 시스템 드라이버, 블록 디바이스 드라이버 및 디스크 툴의 구현에 대한 다양한 최적화와 조정은 온디스크 [52][53]구조의 레이아웃을 변경하지 않고 파일 시스템 고유의 설계로 인한 성능 병목 현상을 대부분 극복할 수 있도록 고안되었습니다.이러한 방법은 온라인 방식과 오프라인 방식으로 나눌 수 있으며, 처음부터 파일 시스템의 단편화를 방지하고 기존 단편화에 보다 효과적으로 대처하기 위한 방법을 도입하며, 온디스크 구조를 재정렬 및 최적화함으로써 작동합니다.최적화를 실시하면, FAT 볼륨의 퍼포먼스는, 실제의 시나리오에서는 보다 고도의 파일 시스템의 퍼포먼스에 도달할 수 있는 것과 동시에, 매우 작은 시스템이나 낡은 시스템에서도 액세스 할 수 있는 메리트를 유지할 수 있습니다.

DOS 3.0 이후에서는 삭제된 파일의 디스크 공간을 즉시 새로운 할당에 재사용하는 것이 아니라 이전에 삭제한 파일의 디스크 공간도 사용하기 전에 이전에 사용되지 않은 공간을 찾습니다.이렇게 하면 삭제된 파일의 무결성을 가능한 한 오래 유지할 수 있을 뿐만 아니라 할당된 디스크 공간이 항상 fragment화되지 않기 때문에 파일 할당 속도를 높이고 조각화를 방지할 수 있습니다.도스는 지난 할당된 클러스터에 기억에 각각 탑재된 볼륨에 대한 포인터를 유지하여, 만약 FAT의 끝에 도달한 경우가 여전히 도스 2.x.[20]에 의해 행해졌다 자유 공간을 찾고 이 위치 위로 대신 FAT의 시작에서 이런 수행, 이것이 주변으로 FA의 시작점에 수색을 계속한다는 것은 마무리 하겠다고.T마n 빈 공간이 발견되거나 빈 [20]공간이 발견되지 않고 원래 위치에 다시 도달할 때까지.이러한 포인터는 부트업 [20]후에 FAT의 시작을 가리키도록 초기화되지만 FAT32 볼륨에서는 DOS 7.1 이상이 FS 정보 섹터에서 마지막 위치를 가져오려고 시도합니다.다만, operating system으로서 애플리케이션이 일시 파일을 삭제해 재작성하는 경우가 많은 경우는,[20] 결과적으로 보다 많은 fragment화를 일으키는 무효 데이터의 정합성을 유효하게 유지하려고 하는 경우, 이 메카니즘은 무효가 됩니다.일부 DOS 버전에서는 이 문제를 피하기 위해 임시 파일을 작성하기 위해 특수 API 함수를 사용할 수 있습니다.

또한 삭제된 파일의 디렉토리 엔트리는 DOS 3.0 [11]이후 0xE5로 마크됩니다.DOS 5.0 이후에서는 이전에 사용되지 않았던 디렉토리 엔트리가 테이블 내에서 모두 사용되고, 그렇지 않으면 시스템이 테이블 [13]자체를 확장해야 하는 경우에만 이러한 엔트리를 재사용하기 시작합니다.

DOS 3.3 이후 운영체제는 파일 조작의 퍼포먼스를 향상시키는 수단을 제공합니다.FASTOPEN다양한 형식의 목록(MS-DOS/PC DOS) 또는 해시 테이블(DR-DOS)에서 최근에 연 파일 또는 디렉토리의 위치를 추적함으로써 파일 검색 및 열기 시간을 크게 줄일 수 있습니다.DOS 5.0 이전에는 이러한 메커니즘을 파일 시스템 또는 디스크 드라이버를 바이패스하는 디스크 조각 모음 소프트웨어와 함께 사용할 때 특히 주의해야 합니다.

Windows NT는 FAT 상의 파일에 디스크 공간을 미리 할당하여 큰 인접 영역을 선택하지만, 장애가 발생하면 추가된 파일이 이전에 비해 크게 나타나며, 마지막에 랜덤 데이터가 많이 표시됩니다.

다른 고도의 메커니즘은 기동 시 또는 필요에 따라 큰 부분 또는 완전한 FAT를 읽고 처리할 수 있으며, 온디스크 구조와 [52][53]다른 볼륨 파일 구조의 메모리 내 트리 표현을 동적으로 구축할 수 있습니다.빈 클러스터가 많은 볼륨에서는 FAT 자체의 이미지보다 메모리를 더 적게 사용할 수 있습니다.특히 고도로 단편화되거나 꽉 찬 볼륨에서는 FAT의 이미지가 메모리에 저장되더라도 실제 FAT에 대한 선형 스캔보다 검색 속도가 훨씬 빨라집니다.또, 섹터나 트랙 레벨이 아니고, 논리적으로 높은 레벨의 파일이나 클러스터 체인으로 동작하는 것으로, 우선 어느 정도의 파일 플래그멘테이션을 회피하거나, 백그라운드내의 이름이나 액세스 패턴에 근거해 로컬의 파일 조각 모음이나 디렉토리 엔트리의 재정렬을 실시할 수 있게 됩니다.

FAT 파일시스템의 단편화에 관한 문제의 일부도, 기반이 되는 블록 디바이스 드라이버의 퍼포먼스 제한에 기인하고 있습니다.이러한 문제는 섹터 버퍼링 및 트랙 블록/디버깅에 사용할 수 있는 메모리가 적기 때문에, 보다 알기 쉬워집니다.

싱글태스킹 DOS에는 멀티섹터 읽기 및 트랙 블로킹/디버깅을 위한 프로비저닝이 있었지만 운영체제 및 기존 PC 하드디스크 아키텍처(한 번에 1개의 미처리 입출력 요구만 있고 DMA 전송 없음)에는 비동기적으로 다음 d를 프리페치함으로써 플래그멘테이션을 완화할 수 있는 메커니즘이 포함되어 있지 않았습니다.응용 프로그램이 이전 청크를 처리하는 동안 ata가 생성되었습니다.이러한 기능은 나중에 사용할 수 있게 되었습니다.최신 DOS 버전에서는 미리보기 섹터 버퍼링도 지원되며 물리 섹터 또는 논리 섹터 레벨에서 동작하는 동적 로딩 가능한 디스크 캐싱 프로그램도 포함되어 있습니다.대부분 EMS 또는 XMS 메모리를 사용하여 적응형 캐싱 전략을 제공하거나 DPMS 또는 Cloaking을 통해 보호 모드로 실행하여 성능을 향상시킵니다.기존 DOS API가 아닌 선형 메모리의 캐시된 데이터에 직접 액세스함으로써 얻을 수 있습니다.

Microsoft 소프트웨어(있는 경우)에서는 전원 장애 또는 크래시 시 데이터 손실 문제를 고려하여 기본적으로 쓰기 캐싱이 활성화되지 않은 경우가 많았습니다. 애플리케이션과 시스템 간의 하드웨어 보호 부족으로 인해 캐싱이 더 쉬워졌습니다.

디렉토리 테이블

디렉토리 테이블은 디렉토리(폴더라고도 함)를 나타내는 특수한 파일 형식입니다.86-DOS 0.42 [54]이후 각 파일 또는 (MS-DOS 1.40 및 PC DOS 2.0 이후) 서브디렉토리는 표에서 32바이트 엔트리로 표시됩니다.각 엔트리는 이름, 확장자, 속성(아카이브, 디렉토리, 숨김, 읽기 전용, 시스템 및 볼륨), 파일/디렉토리 데이터의 첫 번째 클러스터의 주소, 파일/디렉토리 크기, 날짜[54] 및 (PC DOS 1.1 이후) 마지막 수정 시간을 기록합니다.이전 버전의 86-DOS에서는 16바이트 디렉토리 엔트리만 사용되었으며 16MB보다 큰 파일은 지원되지 않으며 [54]최종 수정 시간도 지원되지 않습니다.

특별한 루트 디렉토리 영역 위치를 차지하는 FAT12 및 FAT16 파일시스템의 루트 디렉토리 테이블을 제외하고 모든 디렉토리 테이블은 데이터 영역에 저장됩니다.데이터 영역에 저장된 디렉토리의 실제 엔트리 수는 FAT 체인에 다른 클러스터를 추가하면 증가할 수 있습니다.

FAT 파일시스템 자체는 서브디렉토리를 할당할 수 있는 빈 클러스터가 있는 한 서브디렉토리 트리의 깊이에 제한을 두지 않지만 MS-DOS/PC DOS의 내부 CDS(Current Directory Structure)는 디렉토리의 절대 경로를 66자로 제한합니다(드라이브 문자를 포함하지만 제외).NUL 바이트 [5][6][7]딜리미터)에 의해, 서포트되고 있는 서브 디렉토리의 최대 깊이가 32로 제한됩니다.동시 DOS, 멀티유저 DOS 및 DR DOS 3.31 ~ 6.0(1992-11 업데이트까지 포함)은 작업 디렉토리에 대한 절대 경로를 내부적으로 저장하지 않으므로 이 제한을 [55]나타내지 않습니다.Atari GEMDOS에도 동일하게 적용되지만 Atari Desktop은 8개 이상의 하위 디렉터리 수준을 지원하지 않습니다.대부분의 응용 프로그램은 이 확장을 인식하며 최대 127바이트의 경로를 지원합니다.FlexOS, 4680 OS 및 4690 OS는 최대 127바이트의 길이를 지원하므로 최대 [56]60레벨까지 확장할 수 있습니다.PalmDOS, DR DOS 6.0(BDOS 7.1 이후), Novell DOS 및 OpenDOS는 MS-DOS 호환 CDS를 지원하므로 MS-DOS/PC DOS와 동일한 길이 제한이 있습니다.

엔트리 앞에는 VFAT Long Filename(LFN; 긴 파일 이름)을 지원하기 위한 "fake entries"가 붙을 수 있습니다.자세한 내용은 아래를 참조하십시오.

DOS 쇼트 파일명의 유효한 문자는 다음과 같습니다.

  • 대문자AZ
  • 숫자09
  • 공간(기본 이름 또는 확장자 중 하나에서 후행 공간은 파일 이름의 일부가 아니라 패딩으로 간주됩니다. 또한 공간이 있는 파일 이름은 적절한 이스케이프 시스템이 없기 때문에 Windows 95 이전 DOS 명령줄에서 쉽게 사용할 수 없습니다.)또 다른 예외는 내부 명령어입니다.MKDIR/MD그리고.RMDIR/RDDR-DOS에서 단일 인수를 허용하므로 공백이 입력됩니다.
  • ! # $ % & ' ( ) - @ ^ _ ` { } ~
  • 문자 128 ~ 228
  • 문자 230 ~ 255

여기에는 다음 ASCII 문자는 포함되지 않습니다.

  • " * / : < > ? \
    Windows/MS-DOS에는 셸 이스케이프 문자가 없습니다.
  • + , . ; = [ ]
    긴 파일 이름에서만 허용
  • 소문자az
    로서 저장됨AZ; 긴 파일명으로 사용할 수 있습니다.
  • 제어 문자 0 ~ 31
  • 문자 127(DEL)

문자 229(0xE5)는 자유 입력 마커로 사용되기 때문에 DOS 1 및 2의 파일 이름에서 첫 번째 문자로 사용할 수 없습니다.DOS 3.0 이후에서는 이 제한을 피하기 위해 특별한 케이스가 추가되었습니다.

Atari의 GEMDOS 에서는 다음의 추가 문자를 사용할 수 있습니다만, MS-DOS/PC DOS 와의 호환성을 위해서 사용하지 말아 주세요.

  • " + , ; < = > [ ]

세미콜론(;)는 DR DOS 3.31 이후, PalmDOS, Novell DOS, OpenDOS, Concurrent DOS, Multiuser DOS, System Manager 및 REAL/32 의 파일명에서는 사용하지 말아 주세요.파일명과 디렉토리 패스워드를 지정하는 구문과 모순될 수 있습니다....\DIRSPEC.EXT;DIRPWD\FILESPEC.EXT;FILEPWD". 운영체제는 파일 이름에서 세미콜론 1개(및 DR-DOS 7.02 이후)와 보류중인 패스워드를 삭제한[55] 후 디스크에 저장합니다.(명령어 프로세서 4DOS는 목록에 세미콜론을 사용하며 와일드카드를 지원하는 패스워드로 보호된 파일에는 세미콜론을 2배로 해야 합니다.)[55]

앳사인 문자(@)는 많은 DR-DOS, PalmDOS, Novell DOS, OpenDOS 및 Multiuser DOS, 시스템 매니저 및 REAL/32 명령어 및 4DOS에서 파일 목록에 사용되며 파일 이름에 [55]사용하기 어려울 수 있습니다.

Multiuser DOS 및 REAL/32에서 느낌표(!)는 하나의 [55]명령줄에서 여러 명령을 구분하는 데 사용되므로 유효한 파일 이름이 아닙니다.

IBM 4680 OS 및 4690 OS에서는 파일 이름에 다음 문자를 사용할 수 없습니다.

  • ? * : . ; , [ ] ! + = < > " - / \

또한 다음 특수문자는 호스트명령어 프로세서(HCP) 및 입력 시퀀스테이블 빌드파일명과 경합하기 때문에 파일명의 첫 번째, 네 번째, 다섯 번째 및 여덟 번째 문자에는 사용할 수 없습니다.

  • @ # ( ) { } $ &

DOS 파일명은 현재 OEM 문자 세트에 포함되어 있습니다.특정 코드 페이지에 대해 한 가지 방식으로 처리되는 문자가 다른 코드 페이지에 대해 다르게 해석될 경우 놀라운 효과가 발생할 수 있습니다(DOS 명령).CHCP파일 이름 문자로서의 소문자 및 대문자, 정렬 또는 유효성에 관한 것.

디렉토리 엔트리

Microsoft 가 긴 파일명과 작성/액세스 타임 스탬프의 서포트를 추가하기 전에, 디렉토리 엔트리의 바이트 0x0C~0x15 는, 다른 operating system에 의해서 추가의 메타데이터를 보존하기 위해서 사용되었습니다.특히, 디지털 리서치 패밀리의 operating system에는, 파일 패스워드, 액세스권, 오너 ID, 및 파일 삭제 데이터가 격납되어 있었습니다.Microsoft의 새로운 확장 기능은 기본적으로 이러한 확장과 완전히 호환되지는 않지만, 대부분은 서드파티제의 FAT 구현(적어도 FAT12 및 FAT16 볼륨)에서 공존할 수 있습니다.

루트 디렉토리 영역과 서브 디렉토리 양쪽의 32 바이트디렉토리 엔트리의 형식은 다음과 같습니다(8.3 파일명 참조).

바이트 오프셋 길이(바이트) 내용물
0x00 8 짧은 파일 이름(스페이스로 채워짐)

첫 번째 바이트에는 다음과 같은 특수 값을 사용할 수 있습니다.

가치 묘사
0x00 엔트리를 사용할 수 있으며 이후 엔트리는 사용되지 않습니다.또한 DOS가 디렉토리 테이블을 스캔할 때 엔드 마커 역할을 합니다.(MS-DOS 1.25 및 PC DOS 2.0 이후로는 이전 버전의 MS-DOS, PC DOS 또는 86-DOS가 아닙니다.대신 이러한 엔트리는 할당된 엔트리로 간주됩니다.따라서 볼륨이 PC DOS 1.0/1.1에서도 액세스 가능한 상태로 유지되어야 하는 경우 이 값을 엔드 마커로 사용하지 마십시오.[nb 12][57][58][59]
0x05 선두 문자는 실제로는 0xE5 입니다.(DOS 3.0 이후)

DR DOS 6.0 이후(Palm 포함)DOS, Novell DOS 및 OpenDOS 0x05는 DELWATCH에서 삭제 보류 중인 파일에도 사용됩니다.삭제 추적 큐에서 삭제되면 지워진 파일의 첫 번째 문자가 0xE5로 바뀝니다.

0x2E '도트' 엔트리, 다음 중 하나." 또는..(MS-DOS 1.40 및 PC DOS 2.0 이후)
0xE5 엔트리가 이미 삭제되었거나 사용할 [nb 12][57][58][59]수 있습니다.파일 삭제 취소 유틸리티는 삭제 취소 프로세스의 일부로 이 문자를 일반 문자로 대체해야 합니다.'0x05'도 참조해 주세요.

이 목적으로 86-DOS에서 0xE5 값이 선택되었습니다.이는 8인치 CP/M 플로피가 이 값을 채운 상태로 미리 포맷되어 있기 때문에 [11][nb 1]개봉 즉시 파일을 저장할 수 있기 때문입니다.

5.0보다 이전 버전의 DOS에서는 디렉토리 테이블의 상단에서 하단으로 디렉토리 테이블의 스캔이 시작됩니다.파일 삭제의 성공 가능성을 높이기 위해서, DOS 5.0 이후에서는, 마지막에 기입된 디렉토리 엔트리의 위치를 기억해, 디렉토리 테이블 스캔의 개시점으로 사용합니다.

0x08 3 짧은 파일 확장자(스페이스로 채워짐)
0x0B 1 파일 속성
조금 마스크 묘사
0 0x01 읽기 전용. (DOS 2.0 이후) 이 비트가 설정되어 있는 경우, operating system에서는 변경을 위해서 파일을 열 수 없습니다.

기입되지 않는 파일(실행 가능 파일, 공유 라이브러리, 데이터 파일)에 이 비트를 의도적으로 설정하면 멀티태스킹, 멀티유저 또는 네트워크 환경에서 이러한 환경에서 동작하도록 특별히 설계되지 않은 애플리케이션(공유 대응이 아닌 프로그램)을 사용한 동시 파일 액세스에 관한 문제를 회피할 수 있습니다.

DCF 디지탈카메라 파일시스템 규격에서는 Read Only 속성을 사용하여 디렉토리 또는 개개의 파일(DCF 오브젝트)을 [4]삭제로부터 「보호되고 있다」라고 마크할 수 있습니다.

1 0x02 숨김 일반 디렉터리 보기에서 파일 또는 디렉터리를 숨깁니다.

DR DOS 3.31 이후, Palm 아래DOS, Novell DOS, OpenDOS, Concurrent DOS, 멀티 사용자 DOS, REAL/32, 비밀번호로 보호된 파일 및 디렉토리에도 숨겨진 속성이 있습니다.[55]패스워드 인식 운영체제는 이 비트가 설정되어 있는 경우에도 패스워드로 보호된 파일을 디렉토리 뷰에서 숨기지 마십시오.패스워드 보호 메커니즘은 DR-DOS 7.03을 포함하도록 설정되어 있는 숨김 속성에 의존하지 않지만, 숨김 속성이 설정되어 있는 경우 패스워드로 보호된 파일에 대해서는 지워지지 않습니다.

2 0x04 시스템. 파일이 시스템에 속하며 파일 시스템을 우회하는 절대 주소 지정(부트 로더, 커널 이미지, 스왑 파일, 확장 속성 등)을 사용하여 파일에 대한 참조가 있을 수 있으므로 물리적으로 이동할 수 없음을 나타냅니다.
3 0x08 볼륨 라벨 (MS-DOS 1.28 및 PC DOS 2.0 이후)보통 볼륨의 루트 디렉토리에만 존재하는 옵션의 디렉토리 볼륨 라벨을 나타냅니다.VFAT LFN과 관련된 문제를 피하기 위해 볼륨 라벨은 디렉토리 내의 첫 번째 엔트리(예약된 엔트리 이후)여야 합니다.이 볼륨 라벨이 없는 경우 일부 시스템이 대신 파티션 볼륨 라벨을 표시하기 위해 폴백될 수 있습니다.부팅 불가능한 블록 디바이스 드라이버에는 EBPB가 존재하지 않습니다.d 부트 섹터 쓰기 보호 기능에서는 쓰기 불가능할 수 있습니다.이 볼륨 라벨이 있는 경우에도 FDISK와 같은 파티션 툴에서는 파티션 볼륨라벨이 대신 표시될 수 있습니다.엔트리가 디렉토리 엔트리를 점유하고 있지만 연관된 파일이 없습니다.볼륨 레이블의 파일 크기 항목은 0입니다.

DELWATCH에서 보류 중인 삭제 파일 및 디렉토리는 삭제되거나 [55]삭제 취소될 때까지 볼륨 속성이 설정됩니다.

4 0x10 서브 디렉토리. (MS-DOS 1.40 및 PC DOS 2.0 이후) 이 엔트리와 관련된 클러스터 체인이 파일이 아닌 서브 디렉토리로 해석되는 것을 나타냅니다.하위 디렉토리의 파일 크기 항목은 0입니다.
5 0x20 아카이브. (DOS 2.0 이후) 일반적으로 파일이 생성 또는 수정되는 즉시 파일을 "더러운" 상태로 표시하도록 운영체제에 의해 설정되며, 파일이 "순수한" 상태를 나타내도록 백업 소프트웨어에 의해 리셋됩니다.
6 0x40 디바이스(내부적으로 filespec에 있는 문자 디바이스 이름으로 설정되지만 디스크에는 없는 디바이스)는 디스크툴로 변경할 수 없습니다.
7 0x80 예약됨. 디스크 도구로 변경할 수 없습니다.

DR DOS 6.0 이후(Palm 포함)DOS, Novell DOS 및 OpenDOS 볼륨 속성은 DELWATCH에서 삭제 보류 중인 파일 및 디렉토리에 대해 설정됩니다.

MS-DOS 7.0 이후 VFAT파일 이름 항목을 지정하는 데 0x0F라는 특성 조합이 사용됩니다. 이전 버전의 DOS에서는 볼륨 속성이 볼륨 레이블로 설정된 첫 번째 항목을 받아들이기 때문에 이 항목을 디렉토리 볼륨 레이블로 착각할 수 있습니다.포맷 프로세스의 일부로서 디렉토리 볼륨라벨을 적용하면, 이 문제를 회피할 수 있습니다.이 때문에 일부 디스크 툴은 명시적으로 dummy를 씁니다.NO␠NAME␠␠␠␠사용자가 볼륨 [nb 13]라벨을 지정하지 않은 경우 디렉토리 볼륨 라벨.일반적으로 볼륨 레이블에는 시스템 특성이 동시에 설정되지 않으므로 볼륨 레이블과 VFAT LFN 항목을 구분할 수 있습니다.특성 조합 0x0F는 DELWATCH에서 유효한 보류 중인 삭제 파일의 일부로 발생할 수 있지만 FAT12 및 FAT16 볼륨에서 VFAT LFN 항목은 항상 0x1A의 클러스터 값을 0x000000으로 설정하고 0x1C의 길이 항목은 항상 0x0000000000이 아닌 0x1A의 항목입니다.LWATCH. 이 검사는 FAT32 볼륨에서 작동하지 않습니다.

0x0C 1
  • CP/M-86 DOS Plus는 사용자 속성 F1'~F4'를 저장합니다.([60]BDOS 4.1을 탑재한 DOS Plus 1.2는 FAT12 또는 FAT16 [61]미디어가 아닌 CP/M 미디어에서만 비밀번호를 지원합니다.DOS Plus 2.1은 파티션 유형이 0xF2인 논리 세그먼트 FAT를 지원했지만 FAT16B 및 FAT32 볼륨은 이러한 운영 체제에서 지원되지 않았습니다.파티션이 FAT16B로 변환되어도 32MB를 넘지 않기 때문에 FAT32와 경합하지 않습니다.IFS, FAT16+ 또는 FAT32+는 같은 타입의 볼륨에서는 발생할 수 없습니다.
조금 마스크 묘사
7 0x80 F1': 기본 열린[55] 규칙 수정
6 0x40 F2': 부분 닫기[55] 기본값
5 0x20 F3': 체크섬[55] 닫기 오류 무시
4 0x10 F4': 체크섬[55] 비활성화
3 0x08 예약필
2 0x04 삭제에는 패스워드가 필요합니다.
1 0x02 쓰기에는 암호가 필요합니다.
0 0x01 읽기에는 패스워드가 필요합니다.
  • MSX-DOS 2: 삭제된 파일의 경우 파일 이름의 원래 첫 번째 문자입니다.다른 다양한 운영 체제의 동일한 기능에 대해서는 섹터 오프셋 0x026의 MSX 부트 섹터에서 활성화된 경우 오프셋 0x0D를 참조하십시오.MSX-DOS는 FAT12 볼륨만 지원하지만 FAT16 볼륨에 대한 타사 확장이 있습니다.따라서 이 사용법은 FAT32와 경합하지 않습니다.아래는 IFS 및 FAT32+입니다.CP/M-86 및 DOS Plus에서의 사용자 속성 사용과도 충돌하지 않습니다.이러한 속성은 삭제된 파일에 더 이상 중요하지 않기 때문입니다.
  • Windows NT 이후 버전에서는 비트3 및 4를 사용하여 케이스 정보를 인코딩합니다(VFAT 참조).그 이외의 경우 [62]0 입니다.
  • DR-DOS 7.0x는 1997년부터 내부용으로 3 및 4 이외의 비트를 예약했습니다.포맷 도구를 사용하여 값을 0으로 설정해야 하며 디스크 도구를 사용하여 값을 변경할 [55]수 없습니다.
  • OS/2 및 eComStation의 FAT32 볼륨에서는 서드파티제의 FAT32가 사용됩니다.IFS 드라이버는, 이 엔트리를 마크 바이트로서 사용하고, 여분의 「」의 존재를 나타냅니다.␠EA.␠SF파라미터가 있는 확장 속성을 보관하고 있는 파일/EAS. 버전 0.70 ~0.96에서는 매직값 0x00(EA 없음), 0xEA(일반 EA), 0xEC(중요 EA)[63]가 사용되었으며 2003-09 이후 버전 0.97에서는 0x00, 0x40(일반 EA) 및 0x80(중요 EA)이 Windows [64][65]NT와의 호환성을 위해 비트플래그로 사용되고 있습니다.
0x0D 1
  • Novell DOS, OpenDOS 및 DR-DOS 7.02 이상에서 삭제된 파일의 첫 번째 문자입니다.DELPURGE에 의해 설정된 값 0xE5(229)는 UNDELETE에 의한 삭제 회복을 금지하고, 값 0x00은 사용자에게 누락된 첫 번째 파일 이름 문자를 [55]요구하는 기존의 삭제 취소가 허용됩니다.S/DOS 1 및 PTS-DOS 6.51 이후도 이 기능을 지원합니다.SAVENAME=ON를 참조해 주세요.SYS. MSX-DOS의 동일한 기능에 대해서는 오프셋 0x0C를 참조하십시오.
  • 시간 생성, 정밀 해상도: 10 ms 단위, 0 ~199 의 값(DOS 7.0 및 VFAT 이후).

삭제된 파일에 대해 작성 시간이 더 이상 중요하지 않으므로 작성 시간 ms와 파일 char를 두 번 사용해도 경합이 발생하지 않습니다.

0x0E 2
  • DR DOS 3.31 이후 (팜 포함)DOS, Novell DOS 및 OpenDOS[60] 및 Concurrent DOS, Multuser DOS, System Manager 및 REAL/32에서, FlexOS, 4680 OS, 4690 OS에서 제로 이외의 값은 보호된 파일, 디렉토리 또는 볼륨 [55]라벨의 패스워드 해시를 나타냅니다.해시는 비밀번호의 처음 8자부터 계산됩니다.파일 조작을 실행할 때 오프셋0x14에 저장되어 있는 접근권 비트맵에 따라 패스워드가 필요한 경우 시스템은 해시를 현재 설정되어 있는 글로벌패스워드의 해시 코드에 대조하려고 합니다.PASSWORD /G또는 이 작업이 실패하면 운영체제에 전달된 filespec에서 세미콜론으로 구분된 비밀번호를 추출하여 여기에 저장되어 있는 해시 코드와 대조합니다.파일이 삭제되었다가 나중에 [55]삭제 취소되어도 설정된 비밀번호는 유지됩니다.
  • 시간(이후 도스 7.0에 virtualFAT가상 FAT)를 만듭니다.그 시간, 그리고 두번째 다음과 같은 비트 맵에 따라 인코딩된다:습니다.

비트 묘사
15-11 몇시간(0–23)
10-5 몇분(0–59)
4-0 Seconds/2(0–29)
한초 2두번째 결의안에만 기록된다.파일 제작을 위해 Finer 해상도 offset 0x0D에서 발견된다.

만약 비트 15-11<>를 사용하여 23일이나 비트 10-5<>를 사용하여 59세, 비트 1점 차이>29여기 있을 때나 비트 12-0에 offset 0x14고 이것은FAT32 볼륨이나 볼륨 OS/2 확장 특성을 사용하여, 그렇지 않으면 그것은 꿈은 파일 만든 시간을 가정할 수 있고 이 출품작은 암호 해시를 보유하는 접근 비트 맵을 가지고 있다.

0x10 2
  • 엔트리 0x10에 FlexOS, 4680 OS와 4690 OS가게는 단어의 크기는 사상 최대.[60]이것은 주로 그들의 특별한database-like 파일 형식에 대한 사용된다 임의 파일, 직접 파일, 키 파일을 순차 파일.만약 기록을 0사이즈(기본)또는 1로 설정되어 있으면 운영 체제 1바이트의 파일에 읽기/쓰기 작업의 기록적인 경계의 확인을 수행하지 않는 기록 입상,.[66]
  • DELWATCH 2와 높은 노벨 도스 7OpenDOS 7.01과 DR-DOS 7.02와 높은으로, 이 출품작 계류 중인 delete파일과 디렉터리에 마지막으로 수정한 시간 스탬프 저장하는 데 사용됩니다.[55][60]때 파일이나 숙청undeleted은 Cleared.오프셋 0x0E는 형식 설명은 을 참조하십시오.
  • 날짜(이후 도스 7.0에 virtualFAT가상 FAT)를 만듭니다.년, 월 및 날짜는 다음 비트맵에 따라 인코딩됩니다.

비트 묘사
15-9 연도(0 = 1980 、 119 = 2099 、 DOS / Windows에서 지원, 이론적으로 최대 127 = 2107)
8-5 월 (1 ~ 12)
4-0 요일(1~31)

기존 파일의 생성 날짜 사용은 동시에 사용되지 않으므로 삭제된 파일의 마지막 수정 시간과 충돌하지 않습니다.같은 이유로 기존 파일의 레코드 크기와 삭제된 파일의 마지막 수정 시간의 사용량은 경합하지 않습니다.생성 날짜와 레코드 크기를 동시에 사용할 수는 없지만 파일 생성 시에만 저장되며 나중에 변경되지 않으므로 경합은 FlexOS, 4680 OS 및 4690 OS 시스템에서 외부 운영 체제에서 생성된 파일에 액세스하는 경우와 해석하려는 시스템에서 발생할 수 있는 표시 또는 파일 정렬 문제로 제한됩니다.레코드 크기를 생성 시간으로 지정합니다.경합을 피하기 위해 작성일 저장소는 해당 날짜의 지원 운영 체제의 옵션 기능으로 해야 합니다.

0x12 2
  • FlexOS, 4680 OS, 4690 OS, 멀티 유저 DOS, 시스템 매니저, REAL/32, DR DOS 6.0 이후(다중 유저 시큐러티가 유효)에는, 이 필드를 사용해 오너 ID 를 [55]보존합니다.오프셋 0x12 에는 파일 작성자의 [60]그룹 ID, 0x13 이 저장됩니다.
멀티 유저 버전에서는, 시스템 액세스에 어카운트명과 패스워드를 사용해 로그 온 할 필요가 있습니다.시스템은 이전에 설정 및 보존된 인가 정보와 상속 규칙에 따라 실행 중인 애플리케이션에 그룹 ID와 사용자 ID를 할당합니다.4680 OS 및 4690 OS에서는 그룹 ID 1이 시스템용으로, 그룹 ID 2가 벤더용으로, 그룹 ID 3이 기본 사용자 그룹에 예약되어 있습니다.사용자가 부팅한 백그라운드애플리케이션에는 그룹 ID 2와 사용자 ID 1이 있고 운영체제 백그라운드 태스크에는 그룹 ID 1 또는0과 사용자 ID 1 또는0이 있습니다.기본 또는 보조로 시작된 IBM 4680 BASIC 및 애플리케이션은 항상 그룹 ID 2와 사용자 ID 1을 얻습니다.응용 프로그램이 파일을 생성하면 사용자 ID와 그룹 ID 및 필요한 권한이 [66]파일에 저장됩니다.
  • Novell DOS 7, OpenDOS 7.01 및 DR-DOS 7.02 이후 DELLWATCH 2.00 이후에서는 이 엔트리가 삭제 보류 중인 파일 및 [55][60]디렉토리의 마지막 수정 날짜 스탬프를 저장하기 위해 사용됩니다.때 파일이나 숙청undeleted은 Cleared.형식 설명은 오프셋 0x10을 참조하십시오.
  • 마지막 액세스 날짜(CONFIG에서 ACCDATE가 활성화된 경우 DOS 7.0 이후).대응하는 드라이브의 SYS).[2][55] 포맷 설명오프셋0 x 10 을 참조해 주세요.

기존 파일의 소유자 ID 사용은 동시에 [55]사용되지 않으므로 삭제된 파일의 마지막 수정 날짜 스탬프와 충돌하지 않습니다.삭제된 파일에 대한 액세스 날짜가 더 이상 중요하지 않으므로 삭제된 파일의 마지막 수정 날짜 스탬프 사용은 액세스 날짜와 충돌하지 않습니다.그러나 소유자 ID와 액세스 날짜를 동시에 사용할 수 없습니다.

0x14 2
  • FAT32의 첫 번째 클러스터 번호의 상위2 바이트, 하위2 바이트는 오프셋 0x1A에 저장됩니다.
  • Palm을 포함한 DR DOS 3.31 이후 패스워드로 보호된 파일, 디렉토리(또는 볼륨 라벨)에 대한 월드/그룹/오너 읽기/쓰기/실행/삭제 보호를 위한 접근 권한 비트맵DOS, Novell DOS 및 OpenDOS [60][60]및 FlexOS에서는 4680 OS, 4690 OS, 동시 DOS, 멀티 사용자 DOS, 시스템 매니저 및 REAL/32가 사용됩니다.
단일 사용자 시스템에 저장되는 일반적인 값은 0x0000 입니다.PASSWORD /N모든 접근권 "RWED", 0x0111 (PASSWORD /D접근권 "RW?"-, 0x0555 (PASSWORD /W액세스 권한 "R-?" 및 0x0DDD(PASSWORD /R파일 또는PASSWORD /P디렉토리의 액세스 권한 「---」[55]를 지정합니다.액세스 권한을 변경할 때 비트 1, 5, 9, 12-15가 유지됩니다.FlexOS, 4680 OS 또는 4690 OS 이외의 시스템에 실행 비트가 설정되어 있는 경우 읽기 비트와 동일하게 취급됩니다.(패스워드의 일부 버전에서는 볼륨 라벨에 패스워드를 설정할 수 있습니다).PASSWORD /V)도 마찬가지입니다.)
싱글 유저 시스템에서는, 3 세트의 가장 제한적인 권한(DR DOS 는 최대 5.0 의 사용 비트 0 ~3 만)을 계산해, 요구된 파일 액세스 타입 중 어느 쪽이라도 권한이 필요한지, 및 파일 패스워드가 [55]보존되어 있는지를 확인합니다.그렇지 않으면 파일 액세스가 허용됩니다.그 이외의 경우는, 보존되어 있는 패스워드가, operating system이 제공하는 옵션의 글로벌 패스워드와 세미콜론으로 구분된 파일명의 일부로서 제공되는 옵션의 파일 패스워드와 대조됩니다(FlexOS, 4680 OS, 4690 OS는 제외).둘 다 제공되지 않으면 요청이 실패합니다.어느 쪽인가에 일치하면,[55] 시스템은 액세스를 허가합니다(통상의 파일 속성의 제한내, 즉 읽기 전용 파일을 이 방법으로 쓸 수 없습니다).그렇지 않으면 요구에 실패합니다.
FlexOS, 4680 OS 및 4690 OS에서는 실행 시 응용 프로그램에 그룹 ID와 사용자 ID가 할당됩니다.파일 액세스를 요청할 때 그룹 및 사용자 ID를 열 파일의 그룹 및 사용자 ID와 비교합니다.양쪽 ID가 일치하는 경우 응용 프로그램은 파일 소유자로 취급됩니다.그룹 ID만 일치하는 경우 운영체제는 응용 프로그램에 대한 그룹 액세스를 허용하고 그룹 ID가 일치하지 않는 경우 월드 액세스를 허용합니다.응용 프로그램의 그룹 ID와 사용자 ID가 모두 0인 경우 운영 체제는 보안 검사를 무시합니다.권한 클래스가 결정되면 운영 체제는 요청된 파일 작업의 액세스 유형 중 파일 디렉토리 엔트리에 저장된 선택한 클래스 소유자, 그룹 또는 월드의 비트 플래그에 따라 권한이 필요한지 여부를 확인합니다.소유자, 그룹 및 월드 액세스 권한은 독립적이며 액세스 수준을 낮출 필요가 없습니다.요청된 접근 유형이 모두 권한이 필요하지 않은 경우에만 운영시스템은 접근을 허용하고 그렇지 않으면 실패합니다.
멀티 유저 파일/디렉토리 패스워드의 시큐러티가 유효하게 되어 있는 경우, 이 단계에서 시스템은 실패하지 않고, 상기의 순서와 같이 선택한 권한 클래스의 패스워드 체크메커니즘을 실행합니다.DR DOS 6.0은 추가 기능을 제공하기 때문에 다중 사용자 보안에 의해 많은 유틸리티가 로드됩니다./U:name파라미터를 지정합니다.[55]
파일 액세스 권한 비트맵:[67]
조금 마스크 묘사
0 0x0001 소유자 삭제/이름 변경/속성 변경에 권한이[55][60][67] 필요합니다.
1 0x0002 소유자 실행에는 권한이 필요합니다(FlexOS, 4680 OS, 4690 OS만 [67]해당).
2 0x0004 소유자 쓰기/수정 권한 필요[55][60][67]
3 0x0008 소유자 읽기/복사 권한 필요[55][60][67]
4 0x0010 그룹 삭제/이름 변경/속성 변경에 권한이 필요합니다[55][60][67].
5 0x0020 그룹 실행에는 권한이 필요합니다(FlexOS, 4680 OS, 4690 OS만 해당).[67]
6 0x0040 그룹 쓰기/수정 권한 필요[55][60][67]
7 0x0080 그룹 읽기/복사 권한 필요[55][60][67]
8 0x0100 월드 삭제/이름 변경/속성 변경에는 권한이 필요합니다[55][60][67].
9 0x0200 월드 실행을 수행하려면 권한이 필요합니다(FlexOS, 4680 OS, 4690 OS만 해당).[67]
10 0x0400 월드 쓰기/수정에는 권한이 필요합니다[55][60][67].
11 0x0800 월드 읽기/복사에는 권한이[55][60][67] 필요합니다.
12-15 포맷 중에는 비트를 0으로 설정해야 하며 나중에 [55]디스크 도구로 변경할 수 없습니다.비트 15는 내부적으로 [67]사용되지만 디스크에서는 사용되지 않습니다.
파일 이름 변경에는 쓰기 또는 삭제 권한이 필요하며, IBM 4680 BASIC CHIN에는 실행 권한이 필요합니다.
  • FAT12 및 FAT16의 확장 속성 핸들(OS/2 1.2 이후 및 Windows NT에서 사용). EA 파일의 첫 번째 클러스터 또는 사용하지 않는 경우 0.[55][68]확장 속성을 저장하는 다른 방법이 FAT32 볼륨에 대해 고안되었습니다(FAT32 참조).오프셋 0x0C 아래의 IFS.

FAT32의 파일에 있는 첫 번째 클러스터의 상위 2바이트 저장소가 액세스 권한 비트맵과 부분적으로 충돌합니다.

0x16 2
  • 최종 변경 시각(PC DOS 1.1/MS-DOS 1.20 이후). 포맷 설명은 오프셋 0x0E를 참조하십시오.
  • Novell DOS, OpenDOS 및 DR-DOS 7.02 이상에서 이 항목은 DELLWATCH 2.00 이상에서 보류 중인 삭제 파일 또는 디렉터리 삭제 시간을 유지합니다.마지막으로 변경된 타임스탬프는 나중에 [55]복원할 수 있도록 0x10으로 복사됩니다.형식 설명은 오프셋 0x0E를 참조하십시오.
0x18 2
  • 마지막으로 수정된 날짜. 포맷 설명은 오프셋 0x10을 참조하십시오.
  • Novell DOS, OpenDOS 및 DR-DOS 7.02 이상에서 이 항목은 DELWATCH 2.00 이상에서 보류 중인 삭제 파일 또는 디렉터리의 삭제 날짜를 유지합니다.마지막으로 변경된 날짜 스탬프는 나중에 [55]복원할 수 있도록 0x12로 복사됩니다.형식 설명은 오프셋 0x10을 참조하십시오.
0x1A 2 FAT12 및 FAT16 클러스터 내의 파일 시작.FAT32의 첫 번째 클러스터의 하위 2바이트. 상위 2바이트는 오프셋 0x14에 저장됩니다.

볼륨 라벨 플래그, FAT12 및 FAT16 루트를 가리키는 서브 디렉토리 ".." 및 크기가 0인 빈 파일에는 첫 번째 클러스터가 0이어야 합니다.

VFAT LFN 항목도 0으로 설정됩니다. FAT12 및 FAT16 볼륨에서는 DELWATCH 및 VFAT LFN에서 보류 중인 삭제 파일을 구별하는 감지 메커니즘의 일부로 사용할 수 있습니다. 위 항목을 참조하십시오.

0x1C 4 파일 크기(바이트 단위).볼륨 라벨 또는 서브디렉토리 플래그가 설정된 엔트리의 크기는 0이어야 합니다.

VFAT LFN 항목은 0x000000 을 여기에 저장하지 않습니다.이것은, DELWATCH 와 VFAT LFN 의 보류중의 삭제 파일을 구별하기 위한 검출 메카니즘의 일부로서 사용할 수 있습니다.상기를 참조해 주세요.

FlexOS 기반운영체제IBM 4680 OS 및 IBM 4690 OS는 디렉토리 [69]엔트리의 이전에 예약된 영역의 일부 비트에 저장된 고유한 배포 속성을 지원합니다.

  1. Local: 파일을 배포하지 [nb 14]않고 로컬 컨트롤러로만 유지합니다.
  2. 업데이트 시 파일 미러링:파일이 업데이트될 때만 서버에 파일을 배포합니다.
  3. 닫을 때 파일 미러링:파일이 닫혀 있는 경우에만 서버에 파일을 배포합니다.
  4. 업데이트 시 복합 파일:파일이 갱신되면 모든 컨트롤러에 파일을 배포합니다.
  5. 컴파운드 파일 닫기:파일이 [70]닫히면 모든 컨트롤러에 파일을 배포합니다.

일부 운영 체제에는 다음과 같은 호환되지 않는 확장이 있습니다.

바이트 오프셋 길이(바이트) 시스템. 묘사
0x0C 2 RISC OS 파일 형식, 0x00000x0오프
0x0C 4 Petrov DOSFS 파일 로드 주소
0x0E 2 앤도스 메모리 내의 파일주소
0x10 4 Petrov DOSFS 파일 실행 주소

VFAT 긴 파일 이름

3개의 파일이 있는 FAT32 디렉토리 구조이며, 그 중 2개는 VFAT 긴 파일 이름을 사용합니다.

VFAT Long File Name(LFN; 긴 파일 이름)은 FAT 파일시스템에 저장됩니다.일반 파일엔트리 전에 디렉토리에 엔트리를 사용합니다.추가 엔트리는 볼륨라벨, 시스템, 숨김 및 읽기 전용 속성(0x0F)으로 표시됩니다.이 속성은 MS-DOS 환경에서는 예상되지 않기 때문에 MS-DOS 프로그램 및 서드파티 유틸리티에서는 무시됩니다.특히 볼륨 라벨만 포함된 디렉토리는 빈 디렉토리로 간주되어 삭제가 허용됩니다.이러한 상황은 긴 이름으로 작성된 파일이 플레인 DOS에서 삭제될 때 나타납니다.이 방법은 볼륨 속성을 사용하여 DR DOS 6.0(1991) 이후 삭제되지 않은 보류 중인 파일을 숨기는 DELWATCH 방식과 매우 유사합니다.또한 [71][72]1992년 Ataris와 Linux에 긴 파일 이름을 저장하기 위해 공개적으로 논의된 방법과 유사합니다.

이전 버전의 DOS는 루트 디렉토리의 LFN 이름을 볼륨 레이블로 착각할 수 있으므로 VFAT는 LFN 이름 항목을 추가하기 전에 루트 디렉토리에 빈 볼륨 레이블을 생성하도록 설계되었습니다(볼륨 레이블이 [nb 13]아직 존재하지 않는 경우).

각 가짜 엔트리는 파일사이즈 또는 타임 스탬프를 포함한 레코드 내의 필드를 사용하여 최대 13개의 UCS-2 문자(26바이트)를 포함할 수 있습니다(시작 클러스터 필드는 사용할 수 없습니다).디스크 유틸리티와의 호환성을 위해 시작 클러스터 필드는 0으로 설정됩니다.상세한 것에 대하여는, 8.3 파일명을 참조해 주세요).이러한 13 문자의 엔트리 중 최대 20 문자의 엔트리를 체인으로 할 수 있습니다.최대 길이는 255 [62]문자의 UCS-2 입니다.

마지막 UCS-2 문자 뒤에 0x0000 이 추가됩니다.나머지 미사용 문자는 0xFFFF로 채워집니다.

LFN 엔트리는 다음 형식을 사용합니다.

바이트 오프셋 길이(바이트) 묘사
0x00 1 시퀀스 번호(비트 6: 마지막 논리, 첫 번째 물리 LFN 엔트리, 비트 5: 0, 비트 4-0: 번호 0x01..0x14(0x1F), 삭제된 엔트리: 0xE5)
0x01 10 이름 문자(5개의 UCS-2 문자)
0x0B 1 속성(항상 0x0F)
0x0C 1 유형(VFAT LFN의 경우 항상 0x00, 향후 사용을 위해 예약된 기타 값. SFN의 비트 4 및 3의 특수한 사용에 대해서는 자세한 내용을 참조하십시오.)
0x0D 1 DOS 파일 이름 체크섬
0x0E 12 이름 문자(6개의 UCS-2 문자)
0x1A 2 첫 번째 클러스터(항상 0x0000)
0x1C 4 이름 문자(2개의 UCS-2 문자)

파일명을 나타내기 위해서 복수의 LFN 엔트리가 필요한 경우는, 파일명의 말미를 나타내는 엔트리가 선두가 됩니다.이 엔트리의 시퀀스 번호에는 마지막 논리 LFN 엔트리임을 나타내도록 비트6(0x40)이 설정되어 있으며 시퀀스 번호가 가장 높습니다.시퀀스 번호는 다음 엔트리에서 감소합니다.파일명의 시작을 나타내는 엔트리의 시퀀스 번호는 1입니다.값 0xE5는 엔트리가 삭제되었음을 나타내기 위해 사용됩니다.

FAT12 및 FAT16 볼륨에서는 0x1A에서 0이 되고 0x1C에서 0이 아닌 값을 테스트하여 DELWATCH에서 VFAT LFN과 보류 중인 삭제 파일을 구분할 수 있습니다.

예를 들어 "File with very long filename.ext"와 같은 파일 이름은 다음과 같이 포맷됩니다.

시퀀스 번호 엔트리 데이터
0x43 "me.ext"
0x02 "y long filena"
0x01 "확인된 파일"
??? 통상적인 8.3 엔트리

체크섬을 사용하면 긴 파일 이름이 8.3 이름과 일치하는지 확인할 수 있습니다.이러한 미스매치는, 같은 디렉토리 위치에 있는 DOS 를 사용해 파일을 삭제해 재작성했을 경우에 발생할 수 있습니다.체크섬은 다음 알고리즘을 사용하여 계산됩니다.(pFCBName은 일반 디렉토리 엔트리에 표시되는 이름에 대한 포인터입니다.즉, 처음 8글자는 파일 이름, 마지막 3글자는 확장자입니다.점은 암묵적이다.파일명내의 미사용 스페이스에는 스페이스 문자(ASCII 0x20)가 채워집니다.예를 들어 "Readme.txt"는 " 입니다.README␠␠TXT".)

서명되어 있지 않다  lfn_displays(실제)(컨스턴트 서명되어 있지 않다  *pFCBName) {    인트 i;    서명되어 있지 않다   = 0;     위해서 (i = 11; i; i--)        = (( & 1) << > 7) + ( >> 1) + *pFCBName++;     돌아가다 ; } 

파일 이름에 소문자만 포함되거나 소문자 기본 이름(대문자 확장자 포함)의 조합이거나 그 반대인 경우 특수 문자가 없고 8.3 제한 내에 해당하는 경우 윈도우즈 NT 및 XP와 같은 윈도우즈 이상 버전에서 VFAT 항목이 생성되지 않습니다.대신 디렉토리 엔트리의 바이트0x0C에 있는2비트를 사용하여 파일명을 전체 또는 부분적으로 소문자로 간주할 필요가 있음을 나타냅니다.특히 비트 4는 소문자 확장자와 비트3의 소문자 베이스명을 의미합니다.이것에 의해, 다음과 같은 조합이 가능하게 됩니다.example.TXT" 또는HELLO.txt"하지만 아닙니다."Mixed.txt". 다른 운영체제는 거의 지원하지 않습니다.따라서 이전 버전의 Windows(Windows 95/98/98 SE/ME)와 하위 호환성 문제가 발생하며, 이 확장자가 사용된 경우 파일 이름이 모두 대문자로 표시되므로 USB 플래시 드라이브 등 운영 체제 간에 전송될 때 파일 이름이 변경될 수 있습니다.현재 2.6.x 버전의 Linux는 읽을 때 이 확장을 인식합니다(소스: 커널 2.6.18)./fs/fat/dir.c그리고.fs/vfat/namei.c); 마운트 옵션shortname에,[73] 기입시에 이 기능을 사용할지를 지정합니다.

「 」를 참조해 주세요.

메모들

  1. ^ a b 이것이 디렉토리 엔트리에서 0xE5가 특별한 의미를 갖는 이유입니다.
  2. ^ a b c 하드 디스크에 필요한 포맷 필러 값을 지정하는 옵션을 제공하는 유틸리티 중 하나는 DR-DOS의 FDISK R2.31과 옵션인 weep 파라미터입니다./W:246다른 FDISK 유틸리티와 달리 DR-DOS FDISK는 파티셔닝 도구일 뿐만 아니라 새로 만든 파티션을 FAT12, FAT16 또는 FAT32로 포맷할 수도 있습니다.따라서 잘못된 볼륨을 실수로 포맷할 위험이 줄어듭니다.
  3. ^ a b c MS-DOS/PC DOS 및 DR-DOS와의 호환성을 최대한 높이기 위해 FD 포맷을 확인하려는 운영체제는 BPB가 존재한다고 가정하기 전에 섹터 오프셋 0x015에서 유효한 미디어 디스크립터 바이트를 찾는 것 에 섹터 오프셋 0x000에서 언급된 모든 opcode 시퀀스를 테스트해야 합니다.PC DOS 1.0 플로피 디스크는 BPB를 포함하지 않지만 0xEB로 시작하지만 오프셋 0x002에서는 0x90이 표시되지 않습니다.PC DOS 1.10 플로피 디스크는 0xEB 0x로 시작합니까? 0x90. 단, BPB는 아직 탑재되어 있지 않습니다.어느 경우든 오프셋0x015에서 유효한 미디어 기술자 테스트가 실패합니다(유효한 미디어 기술자0xF0 이후가 아닌 값 0x00).이러한 테스트에 실패하면 DOS는 부트 섹터(FAT12/FAT16 플로피의 논리 섹터 1)에 이은 섹터 내의 첫 번째 FAT의 첫 번째 바이트에 미디어 기술자 바이트가 있는지 확인합니다.
  4. ^ a b c d e 부트 섹터의 오프셋0x1FE 의 시그니처는 0x55 0xAA 입니다.즉, 오프셋0x1FE 에서는 0x55, 오프셋0x1FF 에서는 0xAA 입니다.little-endian 표현은 IBM PC 호환 머신의 컨텍스트에서 가정해야 하므로 x86 프로세서용 프로그램에서는 16비트 단어 0xAA55로 표기할 수 있습니다(스왑 순서 주의). 반면 0x55로 표기해야 합니다.AA는 빅 엔디언 표현을 사용하여 다른 CPU 아키텍처를 위한 프로그램에서 사용됩니다.이 내용은 서적이나 원래의 Microsoft 레퍼런스 문서에서도 여러 번 혼재되어 있기 때문에, 이 문서에서는, 오해를 피하기 위해서, 디스크상의 오프셋 베이스의 바이트 단위의 표현을 사용하고 있습니다.
  5. ^ a b c Atari 부트 섹터의 체크섬엔트리매직 값 자체가 아니라 정렬 값을 유지합니다.매직 값 0x1234는 디스크 어디에도 저장되지 않습니다.인텔 x86 프로세서와 달리 Atari 머신에서 사용되는 Motorola 680x0 프로세서는 빅 엔디안 메모리 표현을 사용하기 때문에 체크섬을 계산할 때는 빅 엔디안을 상정해야 합니다.따라서 x86 머신에서 실행되는 체크섬 검증 코드의 경우 16비트를 추가하기 전에 바이트 쌍을 스왑해야 합니다.
  6. ^ DR-DOS는 최대 1024바이트의 논리 섹터 크기의 FAT12/FAT16 논리 섹터 미디어를 기동할 수 있습니다.
  7. ^ a b 다음 DOS 함수는 다음 레지스터 값을 반환합니다. INT 21h/AH=2Ah "시스템 날짜 가져오기" 반환 값: CX = year(1980년).2099), DH = 월(1..12), DL = 일(1..)31). INT 21h/AH=2Ch "시스템 시간 가져오기"가 반환한 값: CH = 시간(0..)23), CL = 분(0..59), DH = 초(0..59), DL = 1/100 초(0..99)입니다.
  8. ^ Windows XP 에서는 FAT16B 포맷의 ZIP-100 디스크를 FAT32 포맷으로 재포맷할 때 이러한 하이브리드 디스크가 생성되는 것이 확인되었습니다.그 결과 볼륨은 포맷상으로는 FAT32이지만 FAT16B EBPB를 사용하고 있습니다(FAT16 EBPB만 사용했을 경우 Windows가 FAT32 볼륨상의 루트 디렉토리의 위치를 어떻게 결정하는지 불명확합니다).
  9. ^ DR-DOS와 PC DOS의 공존 및 DR-DOS의 여러 병렬 설치를 지원하기 위해 기본 ""의 연장은 다음과 같습니다.IBMBIO␠␠COM부트 파일명은, 다음의 방법으로 변경할 수 있습니다.SYS /DR:extoption 여기서 ext는 새로운 내선번호를 나타냅니다.특수한 시나리오에서 예상되는 기타 DR-DOS 부트 파일명은 다음과 같습니다.DRBIOS␠␠SYS", "DRDOS␠␠␠SYS", "IO␠␠␠␠␠␠SYS", "JO␠␠␠␠␠␠SYS".
  10. ^ 시작 시 볼륨의 더러운 종료 플래그가 지워진 경우 볼륨이 제대로 마운트 해제되지 않은 것입니다.예를 들면, Windows 98 WIN 의 원인이 됩니다.잠재적인 논리 파일 시스템 오류를 확인하고 복구하기 위해 SCANDISK를 시작합니다.불량 섹터 플래그가 지워지면 표면 스캔도 강제로 수행됩니다.MSDOS의 [OPTIONS](옵션) 섹션에서 AUTOSCAN=0을 설정하여 비활성화할 수 있습니다.SYS 파일
  11. ^ a b c d MS-DOS/PC DOS 3.3 이후 FAT12 볼륨에서 클러스터 값 0xFF0이 발생할 경우 다른 링크를 참조하십시오.
  12. ^ a b MS-DOS 1.25PC DOS 2.0 이후 일부 버전의 FORMAT은 옵션을 지원했습니다./O(old의 경우) 엔드마커 0x00을 사용하는 대신 모든 디렉토리 엔트리의 첫 번째 바이트를 0xE5로 채웁니다.그 때문에.볼륨은 PC DOS 1.0-1.1에서는 액세스 가능한 상태로 유지되지만 포맷에는 다소 시간이 걸리고 새로운 버전의 DOS에서는 엔드 마커 0x00을 사용함으로써 발생하는 상당한 속도 향상을 이용할 수 없었습니다.
  13. ^ a b VFAT를 지원하지 않는 운영 체제에서 VFAT LFN 엔트리가 포함된 디렉토리 볼륨 라벨이 잘못 해석되지 않도록 DR-DOS 7.07 FDISK 및 FORMAT 툴은 더미를 명시적으로 기술하는 것으로 알려져 있습니다.NO␠NAME␠␠␠␠사용자가 볼륨 라벨 입력을 건너뛰는 경우 디렉토리 볼륨 라벨.볼륨의 루트에 디렉토리 볼륨 레이블을 찾을 수 없는 경우 운영 체제는 내부적으로 동일한 문자열을 반환하도록 기본 설정하지만, 디렉토리 항목 이후 첫 번째 항목으로 저장된 실제 볼륨 레이블이 없으면 이전 운영 체제에서 VFAT LFN 항목을 잘못 선택할 수 있습니다.
  14. ^ IBM 4680 OS 및 4690 OS 배포 속성 유형은 실수로 속성이 손실된 경우 파일이 이 유형으로 폴백되므로 온디스크 비트 값이 0이어야 합니다.

레퍼런스

  1. ^ "File Systems". Microsoft TechNet. 2001. Archived from the original on 2011-08-12. Retrieved 2011-07-31.
  2. ^ a b Microsoft (2006-11-15)Windows 95 의 CD-ROM 구성.TXT FileArchive 2013-01-28 at archive.오늘 문서135481, 리비전 1.1, retrieved 2011-12-22: "각 하드 디스크에 대해 마지막으로 파일에 액세스한 날짜를 기록할지 여부를 지정합니다.컴퓨터가 안전 모드로 시작되면 모든 드라이브에 대해 마지막 액세스 날짜가 꺼지고 플로피 디스크에는 기본적으로 유지되지 않습니다.구문:ACCDATE=drive1+ - [drive2+ -]..."
  3. ^ "FAT File System (Windows Embedded CE 6.0)". Microsoft. 2010-01-06. Archived from the original on 2013-12-05. Retrieved 2013-07-07.
  4. ^ a b JEIDA/JEITA/CIPA (2010). "Standard of the Camera & Imaging Products Association, CIPA DC-009-Translation-2010, Design rule for Camera File system: DCF Version 2.0 (Edition 2010)" (PDF). Archived from the original (PDF) on 2013-09-30. Retrieved 2011-04-13.
  5. ^ a b c d e f g h i j k "Volume and File Structure of Disk Cartridges for Information Interchange". Standard ECMA-107 (2nd ed., June 1995). ECMA. 1995. Archived from the original on 2018-10-07. Retrieved 2011-07-30.
  6. ^ a b c d e f g h i j k "Information technology -- Volume and file structure of disk cartridges for information interchange". ISO/IEC 9293:1994. ISO catalogue. 1994. Archived from the original on 2012-01-17. Retrieved 2012-01-06.
  7. ^ a b c d e f g h i j k "Information processing -- Volume and file structure of flexible disk cartridges for information interchange". ISO 9293:1987. ISO catalogue. 1987. Archived from the original on 2012-01-17. Retrieved 2012-01-06.
  8. ^ Aaron R. Reynolds, Dennis R. Adler, Ralph A. Lipe, Ray D. Pedrizetti, Jeffrey T. Parsons, Rasipuram V. Arun (1998-05-26). "Common name space for long and short filenames". US Patent 5758352. Retrieved 2012-01-19.{{cite web}}: CS1 maint: 여러 이름: 작성자 목록(링크)
  9. ^ "Common name space for long and short filenames". Archived from the original on 2018-06-17. Retrieved 2019-05-07.
  10. ^ a b c d e f g h i j k l m n o "Microsoft Extensible Firmware Initiative FAT32 File System Specification, FAT: General Overview of On-Disk Format". Microsoft. 2000-12-06. Archived from the original on 2021-07-23. Retrieved 2011-07-03.
  11. ^ a b c d e 슐먼 앤드류, 브라운, 랄프 D.;Maxey, 데이비드. 미헬스, 레이먼드 J., 카일, 짐(1994년)[1993년 11월].Undocumented 도스:예약된 MS-DOS를 사용하는 기능과 데이터 구조-MS-DOS6, 노벨 도스와 Windows3.1(2판)을 포함하도록 확장에 대한 프로그래머의 가이드입니다.메사추세츠는 책 읽기:애디슨 웨슬리. 페이지의 주 11.아이 에스비엔 0-201-63287-X.(xviii+856+vi 페이지,3.5"-floppy)Errata:[1][2].
  12. ^ a b c d e Haaf, Wilfried; Middel, Frank (November 1987). "Daten auf Scheiben – File- und Diskettenstrukturen unter CP/M, MSDOS und TOS: Dateiverwaltung unter TOS". c't - magazin für computertechnik. c't Kartei (in German). Vol. 1987, no. 11. Verlag Heinz Heise GmbH & Co. KG. pp. 241–246 [246]. ISSN 0724-8679.
  13. ^ a b c d e f g h i j k l m n o p Chappell, Geoff (January 1994). Schulman, Andrew; Pedersen, Amorette (eds.). DOS Internals. The Andrew Schulman Programming Series (1st printing, 1st ed.). Addison Wesley Publishing Company. ISBN 978-0-201-60835-9. (xxvi+738+iv 페이지, 3.5" 플로피 [3][4]) 에라타: [5][6][7]
  14. ^ a b c d e f g h i j k l m n o p q r s t u v w 마이크로 소프트 MS-DOS3.1Programmierhandbuch englischer Sprache[마이크로 소프트 MS-DOS3.1프로그래머의 참조 매뉴얼이 영어로]에서.뮌헨:마르크트 &, Technik 출판사.(1986년 출판되).1984년. 아이 에스비엔 3-89090-368-1. 8411-310-02, 036-014-012.트렁크 부문의 출발할 때 그 점프 명령:"만약 부트 섹터의 첫번째 바이트는 E9H 또는 EBIT(한3-byte 니어나 2바이트 짧은 점프의 첫번째 바이트)또는 EBH(2바이트 점프의 첫번째 바이트 NOP가 그 뒤를 이었다)를 결정한다에 관하여만약 그렇다면 BPB offset 3일이라는 내용이었다.(NB에서 시작하여 위치해 있다.이 책.)다.
  15. ^ a b 다니엘 비진정제.IBM 개인용 컴퓨터 DOS 버전 1.00(1981)의 부트 섹터.2005-08-02 ([8] Wayback Machine에서 2014-05-21 보관)
  16. ^ a b 다니엘 비진정제.IBM 개인용 컴퓨터 DOS 버전 1.10(1982)의 부트 섹터.2005-07-29([9] Wayback Machine에서 2014-05-21 보관).
  17. ^ a b 칼데라(1997).Caldera OpenDOS Machine Readable Source Kit 7.01.디스크머신 판독 가능한 소스 키트의 ASM 파일에는 DR-DOS가 값 0x69에서도 테스트됨을 나타냅니다.
  18. ^ Paul, Matthias R. (2002-02-20). "Need DOS 6.22 (Not OEM)". Newsgroup: alt.msdos.programmer. Archived from the original on 2017-09-09. Retrieved 2006-10-14.
  19. ^ Bass, Wally (1994-02-14). "Cluster Size". Newsgroup: comp.os.msdos.programmer. Archived from the original on 2017-09-09. Retrieved 2006-10-14.
  20. ^ a b c d e f g h 데이브 윌리엄스(1992)MSDOSIBM PC용 Programmer's Technical Reference. DOSREF, Shareware 버전 1992년 1월 12일ISBN 1-878830-02-3.([10] 2014-05-20 Wayback Machine에 보관, 2012-01-08에 액세스).코멘트:저자는 DOS 4.0이 OEM 라벨을 체크하지만 DOS 3.2도 OEM 라벨을 체크하는 것을 부인한다(하지만).
  21. ^ Paul, Matthias R. (2004-08-25). "NOVOLTRK.REG". www.drdos.org. Archived from the original on 2016-03-04. Retrieved 2011-12-17. [11]
  22. ^ a b "Troubleshooting Disks and File Systems". Microsoft TechNet. 2005-11-05. Archived from the original on 2014-06-07. Retrieved 2014-06-15.
  23. ^ IBM(1983년).IBM PC 기술 참조 핸드북.코멘트:원본 IBM PC의 ROM BIOS 소스 코드 전체 목록이 포함됩니다.
  24. ^ a b c d 한스 디터 얀코프스키, 디트마르 라비치, 줄리안 F.Reschke(1992)Atari Profibuch ST-STE-TT.Sybex, 4판, 12판ISBN 3-88745-888-5, ISBN 978-3-88745-888-1.
  25. ^ Seagate Technologies, "The Transition to Advanced Format 4K Sector Hard Drives (Wayback Machine@Archive.org)", 2010년 ([12])
  26. ^ a b c d Brown, Ralf D. (2002-12-29). "The x86 Interrupt List". Archived from the original on 2016-06-16. Retrieved 2011-10-14.
  27. ^ a b c d de Boyne Pollard, Jonathan (2010) [2006]. "All about BIOS parameter blocks". Frequently Given Answers. Archived from the original on 2016-08-26. Retrieved 2014-06-02.
  28. ^ a b c Microsoft MS-DOS Programmer's Reference: version 5.0. Microsoft press. 1991. ISBN 1-55615-329-5.
  29. ^ a b c d e f g h i j k "Standard Floppy Disk Formats Supported by MS-DOS". Microsoft Help and Support. 2003-05-12. Archived from the original on 2015-01-09. Retrieved 2012-09-11.
  30. ^ a b c Microsoft (1987-07)MS-DOS 3.3 프로그래머 레퍼런스
  31. ^ a b c Andries Brouwer (2002-09-20). "The FAT file system". Archived from the original on 2011-10-06. Retrieved 2011-10-16.
  32. ^ a b c d e f g h i j k l m n o p q r 패터슨, 팀;마이크로 소프트[1983년](2013-12-19)."마이크로 소프트 도스 V1.1과 V2.0:/msdos/v20source/SKELIO.TXT, /msdos/v20source/HRDDRV.ASM". 컴퓨터 역사 박물관, Microsoft.그 2019-08-14에 원래에서 Archived..(NB다. 출판사가 이 될 것 MS-DOS1.1및 2.0이라고 주장하고 있지만, 실제 SCPMS-DOS1.25과 알토스 MS-DOS2.11와 TeleVideo PCDOS2.11의 혼합물이다.)2014-03-25 Retrieved.
  33. ^ a b c d e f g h i j Zbikowski, 마크, 앨런, 폴, 발머, 스티브, 보먼 판사, 르우벤, 보먼 판사, 롭, 버틀러, 존은 캐롤, 척이며, 마크, 첼, 데이비드. Colee, 마이크, 코트니, 마이크;Dryfoos, 마이크, 던컨, 레이첼, Eckhardt, 커트, 에번스, 에릭, 농부, 릭, 게이츠, 빌, 기어리, 마이클 그리핀, 밥. 호가스, 더그. 존슨, 제임스 W.;Kermaani, Kaamel, 왕, Adrian은;. 코흐, 리드, 란도브스키, 제임스 라슨, 크리스, 레넌, 토머스, Lipkie, 댄, 맥도날드, 마크, 맥키니, 브루스, 마틴, 파스칼, Mathers가, 에스텔. Matthews, 밥, Melin, 데이비드. Mergentime, Charles:네빈, 랜디, 뉴웰, 댄, 뉴웰, 타니, 노리스, 데이비드, 있을 때 오리어리, 마이크;O'Rear, 밥, 올손, 마이크;Osterman, 래리, Ostling, 리지, 빠이, 선일. 패터슨, 팀;P.에레즈, 게리, 피터스, 크리스, 페쫄트, Charles:폴록, 존은 레이놀즈, 아론, 루빈은 대릴, 라이언, 랠프, Schulmeisters, 칼, 샤, Rajen, 쇼, 배리, 쇼트, 앤서니, Slivka, 벤, Smirl, 존, Stillmaker, 베티, 스토다드, 존은 틸먼, 데니스..휘튼, 그렉, Yount, 나탈리. Zeck, 스티브(1988년)."기술 고문".그 MS-DOS백과 사전:버전 1.03.2를 통해.덩컨, 레이, 보츠윅, 스티브, 버고인, 키스, 바이어스, 로버트 A.;까지.호건, 톰, 카일, 짐,. Letwin, 고든, 페쫄트, Charles:라비, 칩, 톰린, 짐, 윌턴 양탄자, 리처드, 울버 턴, 반, 웡은 윌리엄;우드콕. 도요목 도요과의 조류., JoAnne(완전히 교육 reworked.).워싱턴 주, 미국:MicrosoftPress.아이 에스비엔 1-55615-049-0. LCCN 87-21452.OCLC 16581341.(xix+1570 페이지, 26))(NB다.이 판은 다른 작가 팀에 의해 철회된 1986년 초판을 광범위하게 수정한 후 1988년에 출판되었다.[13] 2018-10-14년 Wayback Machine에서 보관)
  34. ^ a b "Detailed Explanation of FAT Boot Sector". Microsoft Knowledge Base. 2003-12-06. Archived from the original on 2011-11-28. Retrieved 2011-10-16.
  35. ^ a b c Lai, Robert S.; The Waite Group (1987). Writing MS-DOS Device Drivers (2nd ed.). Addison Wesley. ISBN 0-201-60837-5.
  36. ^ a b c d e f g h i j k l m n o p q r s t 패터슨, 팀;마이크로 소프트[1983년](2013-12-19)."마이크로 소프트 도스 V1.1과 V2.0:/msdos/v20source/DEVDRIV.txt".컴퓨터 역사 박물관, Microsoft.그 2019-08-14에 원래에서 Archived..(NB다. 출판사가 이 될 것 MS-DOS1.1및 2.0이라고 주장하고 있지만, 실제 SCPMS-DOS1.25과 알토스 MS-DOS2.11와 TeleVideo PCDOS2.11의 혼합물이다.)2014-03-25 Retrieved.
  37. ^ a b c d e Tim Paterson (1983). "An Inside Look at MS-DOS". Byte. Archived from the original on 2011-07-20. Retrieved 2011-07-18. The numbering starts with 2; the first two numbers, 0 and 1, are reserved.
  38. ^ a b c d PORT-DOS - Palbot Portable 사용자 프롬프트 가이드User-Prompt Guide, UK([14] 2013-05-22를 Wayback Machine에 보관).
  39. ^ a b c d e 존 C. 엘리엇(1998).DOSPLUS 디스크 포맷([15] 2013-06-07년 Wayback Machine에 보관).
  40. ^ a b c d BBC 마스터 512.Yellow Pig's BBC Computer Pages([16] Wayback Machine에서 2014-05-21 보관).
  41. ^ 디지털 이그니션 코퍼레이션Rainbow 100 MS-DOS 2.01 기술 문서 1권(QV025-GZ), Microsoft MS-DOS 운영 체제 BIOS 목록(AA-X432A-TV), 유니버설 디스크 드라이버, 1-17.17.33 페이지.
  42. ^ "Detailed Explanation of FAT Boot Sector". DEW Associates Corporation. 2002. Archived from the original on 2011-09-26. Retrieved 2011-10-16.
  43. ^ Tyagi, Tarun (2004-10-31). "Clusters size in FAT and NTFS file systems". Data Recovery With and Without Programming. New Delhi, India: Gardners Books. p. 4. ISBN 978-81-7656-922-4. Archived from the original on 2021-12-03. Retrieved 2021-12-03.
  44. ^ 다니엘 비진정제.MS-Windows의 "더티 셧다운 플래그"에 대한 자세한 내용을 참조하십시오.2001-12-04. ([17] 2014-05-21 웨이백 머신에 보관).
  45. ^ a b c d e "Windows 98 Resource Kit - Chapter 10 - Disks and File Systems". Microsoft TechNet. 1998. Archived from the original on 2012-05-01. Retrieved 2012-07-16.
  46. ^ 피터 노턴(1986년).IBM PC 내부, 수정확대, Brady.ISBN 0-89303-583-1, 페이지 157.
  47. ^ a b c Andries Brouwer. "FAT under Linux". Archived from the original on 2014-07-01. Retrieved 2014-05-20.
  48. ^ Andries Brouwer (2002-09-20). "FAT". Archived from the original on 2017-12-17. Retrieved 2012-01-11.
  49. ^ "Limitations of FAT32 File System". Microsoft Knowledge Base. 2007-03-26. Archived from the original on 2011-08-15. Retrieved 2011-08-21. Clusters cannot be 64 kilobytes or larger
  50. ^ Duncan, Ray (1989). "Design goals and implementation of the new High Performance File System". Microsoft Systems Journal. Archived from the original on 2011-07-16. Retrieved 2014-05-20. [NB. 이 특정 텍스트 파일에는 OCR 오류가 다수 있습니다.예를 들어 "Ray"는 텍스트와 같이 'Roy'가 아니라 작성자의 올바른 이름입니다.]
  51. ^ Chen, Raymond (July 2006). "Microsoft TechNet: A Brief and Incomplete History of FAT32". Microsoft TechNet Magazine. Archived from the original on 2008-11-18. Retrieved 2014-05-20.
  52. ^ a b Les Bell; Associates Pty Ltd (1996-09-02) [1990]. "OS/2 High Performance File System". PC Support Advisor. Archived from the original on 2014-03-01. Retrieved 2014-06-24.
  53. ^ a b Bridges, Dan (February 1996). "Inside the High Performance File System - Part 2/6: Introduction". Significant Bits, Brisbug PC User Group Inc. Archived from the original on 2015-09-23. Retrieved 2014-06-24.
  54. ^ a b c Seattle Computer Products (1981). "SCP 86-DOS 1.0 Addendum" (PDF). Archived (PDF) from the original on 2012-10-03. Retrieved 2013-03-10.
  55. ^ a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak Paul, Matthias R. (1997-07-30) [1994-05-01]. NWDOS-TIPs — Tips & Tricks rund um Novell DOS 7, mit Blick auf undokumentierte Details, Bugs und Workarounds. MPDOSTIP. Release 157 (in German) (3 ed.). Archived from the original on 2016-11-05. Retrieved 2012-01-11. (NB. NWDOSTIP).TXT는 Novell DOS 7 및 OpenDOS 7.01관한 포괄적인 작업이며, 문서화되어 있지 않은 많은 기능 및 내부 기능에 대한 설명을 포함합니다.저자의 더 큰 MPDOSTIP.Z의 일부입니다.IP 수집은 최대 2001년까지 유지되며 동시에 많은 사이트에 배포되었습니다.제공된 링크는 HTML 변환된 이전 버전의 파일을 가리키고 있습니다.[ 18 ]
  56. ^ IBM.4690 OS 사용자 설명서 버전 5.2, IBM 문서 SC30-4134-01, 2008-01-10([19] Wayback Machine에서 2022-01-25 보관)
  57. ^ a b 패터슨, 팀;마이크로 소프트[1983년](2013-12-19)."마이크로 소프트 도스 V1.1과 V2.0:/msdos/v20source/FORMAT.TXT". 컴퓨터 역사 박물관, Microsoft.그 2019-08-14에 원래에서 Archived..(NB다. 출판사가 이 될 것 MS-DOS1.1및 2.0이라고 주장하고 있지만, 실제 SCPMS-DOS1.25과 알토스 MS-DOS2.11와 TeleVideo PCDOS2.11의 혼합물이다.)2014-03-25 Retrieved.
  58. ^ a b Shustek, 렌(2014-03-24)."마이크로 소프트 MS-DOS일찍 소스 코드".소프트웨어 잼스:이 컴퓨터 역사 박물관 역사 소스 코드 시리즈이다.그 2019-08-10에 원래에서 Archived..(NB다. 작가 주장은 이 것이 MS-DOS1.1및 2.0을 실제 SCPMS-DOS1.25과 알토스 MS-DOS2.11와 TeleVideo PCDOS2.11의 혼합물이다.)2014-03-29 Retrieved.
  59. ^ a b 레빈, 로이(2014-03-25)."마이크로 소프트 MS-DOS, 워드에 대해 Windows에 대한 대중의 이용할 수 있는 소스 코드를 만든다".공식 Microsoft블로그.그 2014-03-28에 원래에서 Archived..(NB다. 작가 주장은 이 것이 MS-DOS1.1및 2.0을 실제 SCPMS-DOS1.25과 알토스 MS-DOS2.11와 TeleVideo PCDOS2.11의 혼합물이다.)2014-03-29 Retrieved.
  60. ^ a b c d e f g h i j k l m n o p q 칼데라(1997).Caldera OpenDOS Machine Readable Source Kit 7.01.FDOS.기계 판독 가능한 소스 키트의 EQU 파일에는 대응하는 디렉토리 엔트리와 같은 파일이 있습니다.
  61. ^ 존 C. 엘리엇(1998).CP/M 4.1 디스크 포맷.([20] Wayback Machine에서 2014-08-26 아카이브 완료): "CP/M 4.1(DOS Plus [1.2])을 사용하면 CP/M과 DOS의 두 가지 파일 시스템을 사용할 수 있습니다.Amstrad PC1512와 함께 제공된 버전 [...]에서는 360k(CP/M)/1.2Mb(DOS)보다 큰 플로피 또는 32Mb보다 큰 하드 드라이브 파티션을 처리할 수 없습니다.[...] DOS 파일 시스템은 FAT12 또는 FAT16일 수 있습니다.포맷은 PCDOS 2.11과 동일합니다.단, 다음과 같습니다.디렉터리 항목 [...]의 바이트 0Ch에는 4개의 "사용자 속성" F1'-F4'[...]가 저장됩니다. DRDOS 스타일 암호는 지원되지 않습니다.
  62. ^ a b vinDaci (1998-01-06). "Long Filename Specification". Archived from the original on 2001-04-20. Retrieved 2007-03-13.
  63. ^ 헹크 켈더.FAT32용 FAT32.TXTIFS 버전 0.74."Archived copy". Archived from the original on 2012-03-30. Retrieved 2012-01-14.{{cite web}} (: CS1 maint: 제목으로 아카이브된 복사(링크)).코멘트:이 오래된 버전의 README 파일에서는 이전 0xEA0xEC 매직 값에 대해 설명합니다.
  64. ^ Henk Kelder(2003).FAT32용 FAT32.TXTIFS 버전 0.9.13." ([21] Wayback Machine에서 아카이브된 2022-01-25) : "이 바이트[...]는 Windows 95 실행 중에는 수정되지 않으며 SCANDISK 또는 DRUP에 의해 더 가까워집니다.[...] 다른 프로그램이 EA가 있는 파일의 값을 0x00으로 설정하면 이러한 EA는 DOS First Find/First Find에서만 찾을 수 없습니다. EA(DosQueryPathInfo, DosQueryFileInfo 및 DosEnumAttribute)를 취득하기 위한 다른 OS/2 콜은 이 바이트에 의존하지 않습니다. 또한 반대의 경우가 발생할 수 있습니다. [...] 이 경우 디렉터리 검사 성능만 저하됩니다.상황 모두 CHKDSK에 의해 수정되었습니다."
  65. ^ 넷랩FAT32.IFS Wiki소스.([22] 2013-05-11년 Wayback Machine에 보관).
  66. ^ a b IBM.4690 OS 프로그래밍 가이드 버전 5.2, IBM 문서 SC30-4137-01, 2007-12-06([23] Wayback Machine에서 2022-01-25 보관)
  67. ^ a b c d e f g h i j k l m n OpenDOS Developer's Reference Series — System and Programmer's Guide — Programmer's Guide. Caldera, Inc. August 1997. Caldera Part No. 200-DODG-003. Archived from the original on 2017-10-07. Retrieved 2014-05-20. (영국에서 인쇄).
  68. ^ Bob Eager, Tavi Systems(2000-10-28)FAT 파일시스템에서의 확장 어트리뷰트 실장([24] Wayback Machine에서 2006-06-13 아카이브 완료).
  69. ^ IBM(2003년).4690 OS독특한 파일 분배 특성에 대한 정보는 IBM문서 R1001487, 2003-07-30.("복사본 Archived".그 2014-05-21에 원래에서 Archived.2014-05-20 Retrieved.{{웹을 인용하다.}}:CS1 maint:제목(링크)로 보관 복사본):"[...]파일 타입은에 저장됩니다"Reserved은 PC-DOS 파일 디렉토리 구조의 bits" 부분만 4690과 절임 법 이러한 특성[...].4690 시스템에서 작성된 디스켓에서 복사할 때 [...]를 켜면 4690 이외의 다양한 운영 체제에서 다른 작업이 수행됩니다.[...] PC-DOS 및 Windows 2000 Professional은 오류 없이 파일을 복사하고 비트를 0으로 만듭니다.OS/2 [...] 1.2 [...]는 파일에서 CHKDSK /F를 먼저 실행하지 않는 한 파일 복사를 거부합니다.[...] CHKDSK 후 파일을 복사하고 비트를 0으로 합니다.[...] [...]를 4690 시스템에 복사하면 [...] 파일이 로컬 파일로 복사됩니다.
  70. ^ IBM.4690 파일 배포 특성 저장복원IBM 문서 R1000622, 2010-08-31("Archived copy". Archived from the original on 2014-05-21. Retrieved 2014-05-20.{{cite web}}CS1 유지: 제목으로 보관된 복사본(링크)).
  71. ^ Natuerlich! (1992-03-24). "Getting longer filenames out of GEMDOS". comp.sys.atari.st.tech. Archived from the original on 2014-04-24. Retrieved 2014-05-05.
  72. ^ Torvalds, Linus (1992-12-23). "Long filenames". comp.os.minix. Archived from the original on 2014-04-23. Retrieved 2014-05-05.
  73. ^ "mount(8): mount file system". Linux man page. Archived from the original on 2014-05-05. Retrieved 2014-05-20.

외부 링크