xref: /freebsd/contrib/file/magic/Magdir/filesystems (revision a2dfb722)
1b6cee71dSXin LI#------------------------------------------------------------------------------
2a2dfb722SXin LI# $File: filesystems,v 1.150 2022/07/04 16:40:33 christos Exp $
3b6cee71dSXin LI# filesystems:  file(1) magic for different filesystems
4b6cee71dSXin LI#
5b6cee71dSXin LI0	name	partid
6b6cee71dSXin LI>0	ubyte	0x00	Unused
7b6cee71dSXin LI>0	ubyte	0x01	12-bit FAT
8b6cee71dSXin LI>0	ubyte	0x02	XENIX /
9b6cee71dSXin LI>0	ubyte	0x03	XENIX /usr
10b6cee71dSXin LI>0	ubyte	0x04	16-bit FAT, less than 32M
11b6cee71dSXin LI>0	ubyte	0x05	extended partition
12b6cee71dSXin LI>0	ubyte	0x06	16-bit FAT, more than 32M
13b6cee71dSXin LI>0	ubyte	0x07	OS/2 HPFS, NTFS, QNX2, Adv. UNIX
14b6cee71dSXin LI>0	ubyte	0x08	AIX or os, or etc.
15b6cee71dSXin LI>0	ubyte	0x09	AIX boot partition or Coherent
16b6cee71dSXin LI>0	ubyte	0x0a	O/2 boot manager or Coherent swap
17b6cee71dSXin LI>0	ubyte	0x0b	32-bit FAT
18b6cee71dSXin LI>0	ubyte	0x0c	32-bit FAT, LBA-mapped
19b6cee71dSXin LI>0	ubyte	0x0d	7XXX, LBA-mapped
20b6cee71dSXin LI>0	ubyte	0x0e	16-bit FAT, LBA-mapped
21b6cee71dSXin LI>0	ubyte	0x0f	extended partition, LBA-mapped
22b6cee71dSXin LI>0	ubyte	0x10	OPUS
23b6cee71dSXin LI>0	ubyte	0x11 	OS/2 DOS 12-bit FAT
24b6cee71dSXin LI>0	ubyte	0x12 	Compaq diagnostics
25b6cee71dSXin LI>0	ubyte	0x14 	OS/2 DOS 16-bit FAT <32M
26b6cee71dSXin LI>0	ubyte	0x16 	OS/2 DOS 16-bit FAT >=32M
27b6cee71dSXin LI>0	ubyte	0x17 	OS/2 hidden IFS
28b6cee71dSXin LI>0	ubyte	0x18 	AST Windows swapfile
29b6cee71dSXin LI>0	ubyte	0x19 	Willowtech Photon coS
30b6cee71dSXin LI>0	ubyte	0x1b 	hidden win95 fat 32
31b6cee71dSXin LI>0	ubyte	0x1c 	hidden win95 fat 32 lba
32b6cee71dSXin LI>0	ubyte	0x1d	hidden win95 fat 16 lba
33b6cee71dSXin LI>0	ubyte	0x20 	Willowsoft OFS1
34b6cee71dSXin LI>0	ubyte	0x21 	reserved
35b6cee71dSXin LI>0	ubyte	0x23 	reserved
36b6cee71dSXin LI>0	ubyte	0x24	NEC DOS
37b6cee71dSXin LI>0	ubyte	0x26 	reserved
38b6cee71dSXin LI>0	ubyte	0x31 	reserved
39b6cee71dSXin LI>0	ubyte	0x32	Alien Internet Services NOS
40b6cee71dSXin LI>0	ubyte	0x33 	reserved
41b6cee71dSXin LI>0	ubyte	0x34 	reserved
42b6cee71dSXin LI>0	ubyte	0x35 	JFS on OS2
43b6cee71dSXin LI>0	ubyte	0x36 	reserved
44b6cee71dSXin LI>0	ubyte	0x38 	Theos
45b6cee71dSXin LI>0	ubyte	0x39 	Plan 9, or Theos spanned
46b6cee71dSXin LI>0	ubyte	0x3a 	Theos ver 4 4gb partition
47b6cee71dSXin LI>0	ubyte	0x3b 	Theos ve 4 extended partition
48b6cee71dSXin LI>0	ubyte	0x3c 	PartitionMagic recovery
49b6cee71dSXin LI>0	ubyte	0x3d 	Hidden Netware
50b6cee71dSXin LI>0	ubyte	0x40 	VENIX 286 or LynxOS
51b6cee71dSXin LI>0	ubyte	0x41	PReP
52b6cee71dSXin LI>0	ubyte	0x42	linux swap sharing DRDOS disk
53b6cee71dSXin LI>0	ubyte	0x43	linux sharing DRDOS disk
54b6cee71dSXin LI>0	ubyte	0x44	GoBack change utility
55b6cee71dSXin LI>0	ubyte	0x45	Boot US Boot manager
56b6cee71dSXin LI>0	ubyte	0x46	EUMEL/Elan or Ergos 3
57b6cee71dSXin LI>0	ubyte	0x47	EUMEL/Elan or Ergos 3
58b6cee71dSXin LI>0	ubyte	0x48	EUMEL/Elan or Ergos 3
59b6cee71dSXin LI>0	ubyte	0x4a	ALFX/THIN filesystem for DOS
60b6cee71dSXin LI>0	ubyte	0x4c	Oberon partition
61b6cee71dSXin LI>0	ubyte	0x4d 	QNX4.x
62b6cee71dSXin LI>0	ubyte	0x4e 	QNX4.x 2nd part
63b6cee71dSXin LI>0	ubyte	0x4f 	QNX4.x 3rd part
64b6cee71dSXin LI>0	ubyte	0x50 	DM (disk manager)
65b6cee71dSXin LI>0	ubyte	0x51 	DM6 Aux1 (or Novell)
66b6cee71dSXin LI>0	ubyte	0x52 	CP/M or Microport SysV/AT
67b6cee71dSXin LI>0	ubyte	0x53 	DM6 Aux3
68b6cee71dSXin LI>0	ubyte	0x54	DM6 DDO
69b6cee71dSXin LI>0	ubyte	0x55	EZ-Drive (disk manager)
70b6cee71dSXin LI>0	ubyte	0x56	Golden Bow (disk manager)
71b6cee71dSXin LI>0	ubyte	0x57	Drive PRO
72b6cee71dSXin LI>0	ubyte	0x5c	Priam Edisk (disk manager)
73b6cee71dSXin LI>0	ubyte	0x61	SpeedStor
74b6cee71dSXin LI>0	ubyte	0x63	GNU HURD or Mach or Sys V/386
75b6cee71dSXin LI>0	ubyte	0x64	Novell Netware 2.xx or Speedstore
76b6cee71dSXin LI>0	ubyte	0x65	Novell Netware 3.xx
77b6cee71dSXin LI>0	ubyte	0x66	Novell 386 Netware
78b6cee71dSXin LI>0	ubyte	0x67	Novell
79b6cee71dSXin LI>0	ubyte	0x68	Novell
80b6cee71dSXin LI>0	ubyte	0x69	Novell
81b6cee71dSXin LI>0	ubyte	0x70	DiskSecure Multi-Boot
82b6cee71dSXin LI>0	ubyte	0x71	reserved
83b6cee71dSXin LI>0	ubyte	0x73	reserved
84b6cee71dSXin LI>0	ubyte	0x74	reserved
85b6cee71dSXin LI>0	ubyte	0x75	PC/IX
86b6cee71dSXin LI>0	ubyte	0x76	reserved
87b6cee71dSXin LI>0	ubyte	0x77	M2FS/M2CS partition
88b6cee71dSXin LI>0	ubyte	0x78	XOSL boot loader filesystem
89b6cee71dSXin LI>0	ubyte	0x80	MINIX until 1.4a
90b6cee71dSXin LI>0	ubyte	0x81	MINIX since 1.4b
91b6cee71dSXin LI>0	ubyte	0x82	Linux swap or Solaris
92b6cee71dSXin LI>0	ubyte	0x83	Linux native
93b6cee71dSXin LI>0	ubyte	0x84	OS/2 hidden C: drive
94b6cee71dSXin LI>0	ubyte	0x85	Linux extended partition
95b6cee71dSXin LI>0	ubyte	0x86	NT FAT volume set
96b6cee71dSXin LI>0	ubyte	0x87	NTFS volume set or HPFS mirrored
97b6cee71dSXin LI>0	ubyte	0x8a	Linux Kernel AiR-BOOT partition
98b6cee71dSXin LI>0	ubyte	0x8b	Legacy Fault tolerant FAT32
99b6cee71dSXin LI>0	ubyte	0x8c	Legacy Fault tolerant FAT32 ext
100b6cee71dSXin LI>0	ubyte	0x8d	Hidden free FDISK FAT12
101b6cee71dSXin LI>0	ubyte	0x8e	Linux Logical Volume Manager
102b6cee71dSXin LI>0	ubyte	0x90	Hidden free FDISK FAT16
103b6cee71dSXin LI>0	ubyte	0x91	Hidden free FDISK DOS EXT
104b6cee71dSXin LI>0	ubyte	0x92	Hidden free FDISK FAT16 Big
105b6cee71dSXin LI>0	ubyte	0x93	Amoeba filesystem
106b6cee71dSXin LI>0	ubyte	0x94	Amoeba bad block table
107b6cee71dSXin LI>0	ubyte	0x95	MIT EXOPC native partitions
108b6cee71dSXin LI>0	ubyte	0x97	Hidden free FDISK FAT32
109b6cee71dSXin LI>0	ubyte	0x98	Datalight ROM-DOS Super-Boot
110b6cee71dSXin LI>0	ubyte	0x99	Mylex EISA SCSI
111b6cee71dSXin LI>0	ubyte	0x9a	Hidden free FDISK FAT16 LBA
112b6cee71dSXin LI>0	ubyte	0x9b	Hidden free FDISK EXT LBA
113b6cee71dSXin LI>0	ubyte	0x9f	BSDI?
114b6cee71dSXin LI>0	ubyte	0xa0	IBM Thinkpad hibernation
115b6cee71dSXin LI>0	ubyte	0xa1	HP Volume expansion (SpeedStor)
116b6cee71dSXin LI>0	ubyte	0xa3	HP Volume expansion (SpeedStor)
117b6cee71dSXin LI>0	ubyte	0xa4	HP Volume expansion (SpeedStor)
118b6cee71dSXin LI>0	ubyte	0xa5	386BSD partition type
119b6cee71dSXin LI>0	ubyte	0xa6	OpenBSD partition type
120b6cee71dSXin LI>0	ubyte	0xa7	NeXTSTEP 486
121b6cee71dSXin LI>0	ubyte	0xa8	Apple UFS
122b6cee71dSXin LI>0	ubyte	0xa9	NetBSD partition type
123b6cee71dSXin LI>0	ubyte	0xaa	Olivetty Fat12 1.44MB Service part
124b6cee71dSXin LI>0	ubyte	0xab	Apple Boot
125b6cee71dSXin LI>0	ubyte	0xae	SHAG OS filesystem
126b6cee71dSXin LI>0	ubyte	0xaf	Apple HFS
127b6cee71dSXin LI>0	ubyte	0xb0	BootStar Dummy
128b6cee71dSXin LI>0	ubyte	0xb1	reserved
129b6cee71dSXin LI>0	ubyte	0xb3	reserved
130b6cee71dSXin LI>0	ubyte	0xb4	reserved
131b6cee71dSXin LI>0	ubyte	0xb6	reserved
132b6cee71dSXin LI>0	ubyte	0xb7	BSDI BSD/386 filesystem
133b6cee71dSXin LI>0	ubyte	0xb8	BSDI BSD/386 swap
134b6cee71dSXin LI>0	ubyte	0xbb	Boot Wizard Hidden
135b6cee71dSXin LI>0	ubyte	0xbe	Solaris 8 partition type
136b6cee71dSXin LI>0	ubyte	0xbf	Solaris partition type
137b6cee71dSXin LI>0	ubyte	0xc0 	CTOS
138b6cee71dSXin LI>0	ubyte	0xc1 	DRDOS/sec (FAT-12)
139b6cee71dSXin LI>0	ubyte	0xc2 	Hidden Linux
140b6cee71dSXin LI>0	ubyte	0xc3 	Hidden Linux swap
141b6cee71dSXin LI>0	ubyte	0xc4 	DRDOS/sec (FAT-16, < 32M)
142b6cee71dSXin LI>0	ubyte	0xc5 	DRDOS/sec (EXT)
143b6cee71dSXin LI>0	ubyte	0xc6 	DRDOS/sec (FAT-16, >= 32M)
144b6cee71dSXin LI>0	ubyte	0xc7 	Syrinx (Cyrnix?) or HPFS disabled
145b6cee71dSXin LI>0	ubyte	0xc8 	Reserved for DR-DOS 8.0+
146b6cee71dSXin LI>0	ubyte	0xc9 	Reserved for DR-DOS 8.0+
147b6cee71dSXin LI>0	ubyte	0xca 	Reserved for DR-DOS 8.0+
148b6cee71dSXin LI>0	ubyte	0xcb 	DR-DOS 7.04+ Secured FAT32 CHS
149b6cee71dSXin LI>0	ubyte	0xcc 	DR-DOS 7.04+ Secured FAT32 LBA
150b6cee71dSXin LI>0	ubyte	0xcd	CTOS Memdump
151b6cee71dSXin LI>0	ubyte	0xce 	DR-DOS 7.04+ FAT16X LBA
152b6cee71dSXin LI>0	ubyte	0xcf 	DR-DOS 7.04+ EXT LBA
153b6cee71dSXin LI>0	ubyte	0xd0 	REAL/32 secure big partition
154b6cee71dSXin LI>0	ubyte	0xd1 	Old Multiuser DOS FAT12
155b6cee71dSXin LI>0	ubyte	0xd4 	Old Multiuser DOS FAT16 Small
156b6cee71dSXin LI>0	ubyte	0xd5 	Old Multiuser DOS Extended
157b6cee71dSXin LI>0	ubyte	0xd6 	Old Multiuser DOS FAT16 Big
158b6cee71dSXin LI>0	ubyte	0xd8 	CP/M 86
159b6cee71dSXin LI>0	ubyte	0xdb 	CP/M or Concurrent CP/M
160b6cee71dSXin LI>0	ubyte	0xdd 	Hidden CTOS Memdump
161b6cee71dSXin LI>0	ubyte	0xde 	Dell PowerEdge Server utilities
162b6cee71dSXin LI>0	ubyte	0xdf 	DG/UX virtual disk manager
163b6cee71dSXin LI>0	ubyte	0xe0 	STMicroelectronics ST AVFS
164b6cee71dSXin LI>0	ubyte	0xe1 	DOS access or SpeedStor 12-bit
165b6cee71dSXin LI>0	ubyte	0xe3 	DOS R/O or Storage Dimensions
166b6cee71dSXin LI>0	ubyte	0xe4 	SpeedStor 16-bit FAT < 1024 cyl.
167b6cee71dSXin LI>0	ubyte	0xe5	reserved
168b6cee71dSXin LI>0	ubyte	0xe6	reserved
169b6cee71dSXin LI>0	ubyte	0xeb 	BeOS
170b6cee71dSXin LI>0	ubyte	0xee	GPT Protective MBR
171b6cee71dSXin LI>0	ubyte	0xef	EFI system partition
172b6cee71dSXin LI>0	ubyte	0xf0 	Linux PA-RISC boot loader
173b6cee71dSXin LI>0	ubyte	0xf1 	SpeedStor or Storage Dimensions
174b6cee71dSXin LI>0	ubyte	0xf2 	DOS 3.3+ Secondary
175b6cee71dSXin LI>0	ubyte	0xf3	reserved
176b6cee71dSXin LI>0	ubyte	0xf4	SpeedStor large partition
177b6cee71dSXin LI>0	ubyte	0xf5	Prologue multi-volumen partition
178b6cee71dSXin LI>0	ubyte	0xf6 	reserved
179b6cee71dSXin LI>0	ubyte	0xf9 	pCache: ext2/ext3 persistent cache
180b6cee71dSXin LI>0	ubyte	0xfa 	Bochs x86 emulator
181b6cee71dSXin LI>0	ubyte	0xfb 	VMware File System
182b6cee71dSXin LI>0	ubyte	0xfc 	VMware Swap
183b6cee71dSXin LI>0	ubyte	0xfd 	Linux RAID partition persistent sb
184b6cee71dSXin LI>0	ubyte	0xfe	LANstep or IBM PS/2 IML
185b6cee71dSXin LI>0	ubyte	0xff 	Xenix Bad Block Table
186b6cee71dSXin LI
187b6cee71dSXin LI0	string	\366\366\366\366	PC formatted floppy with no filesystem
188b6cee71dSXin LI# Sun disk labels
189b6cee71dSXin LI# From /usr/include/sun/dklabel.h:
190b6cee71dSXin LI0774	beshort		0xdabe
191b6cee71dSXin LI# modified by Joerg Jenderek, because original test
192b6cee71dSXin LI# succeeds for Cabinet archive dao360.dl_ with negative blocks
193b6cee71dSXin LI>0770	long		>0		Sun disk label
194b6cee71dSXin LI>>0	string		x		'%s
195b6cee71dSXin LI>>>31	string		>\0		\b%s
196b6cee71dSXin LI>>>>63	string		>\0		\b%s
197b6cee71dSXin LI>>>>>95	string		>\0		\b%s
198b6cee71dSXin LI>>0	string		x		\b'
199b6cee71dSXin LI>>0734	short		>0		%d rpm,
200b6cee71dSXin LI>>0736	short		>0		%d phys cys,
201b6cee71dSXin LI>>0740	short		>0		%d alts/cyl,
202b6cee71dSXin LI>>0746	short		>0		%d interleave,
203b6cee71dSXin LI>>0750	short		>0		%d data cyls,
204b6cee71dSXin LI>>0752	short		>0		%d alt cyls,
205b6cee71dSXin LI>>0754	short		>0		%d heads/partition,
206b6cee71dSXin LI>>0756	short		>0		%d sectors/track,
207b6cee71dSXin LI>>0764	long		>0		start cyl %d,
208b6cee71dSXin LI>>0770	long		x		%d blocks
209b6cee71dSXin LI# Is there a boot block written 1 sector in?
210b6cee71dSXin LI>512    belong&077777777	0600407	\b, boot block present
211b6cee71dSXin LI
212b6cee71dSXin LI# Joerg Jenderek: Smart Boot Manager backup file is 25 (MSDOS) or 41 (LINUX) byte header + first sectors of disk
213b6cee71dSXin LI# (http://btmgr.sourceforge.net/docs/user-guide-3.html)
214b6cee71dSXin LI0		string	SBMBAKUP_	Smart Boot Manager backup file
215b6cee71dSXin LI>9		string	x		\b, version %-5.5s
216b6cee71dSXin LI>>14		string	=_
217b6cee71dSXin LI>>>15		string	x		%-.1s
218b6cee71dSXin LI>>>>16		string	=_		\b.
219b6cee71dSXin LI>>>>>17		string	x		\b%-.1s
220b6cee71dSXin LI>>>>>>18	string	=_		\b.
221b6cee71dSXin LI>>>>>>>19	string	x		\b%-.1s
222b6cee71dSXin LI>>>22		ubyte	0
22343a5ec4eSXin LI>>>>21		ubyte	x		\b, from drive %#x
224b6cee71dSXin LI>>>22		ubyte	>0
225b6cee71dSXin LI>>>>21		string	x		\b, from drive %s
226b6cee71dSXin LI>>>535		search/17	\x55\xAA
227b6cee71dSXin LI>>>>&-512	indirect	x	\b; contains
228b6cee71dSXin LI
229b6cee71dSXin LI# updated by Joerg Jenderek at Nov 2012
230b6cee71dSXin LI# DOS Emulator image is 128 byte, null right padded header + harddisc image
231b6cee71dSXin LI0	string	DOSEMU\0
232b6cee71dSXin LI>0x27E	leshort	0xAA55
233b6cee71dSXin LI#offset is 128
234b6cee71dSXin LI>>19	ubyte	128
235b6cee71dSXin LI>>>(19.b-1)	ubyte	0x0	DOS Emulator image
236b6cee71dSXin LI>>>>7	ulelong	>0		\b, %u heads
237b6cee71dSXin LI>>>>11	ulelong	>0		\b, %d sectors/track
238b6cee71dSXin LI>>>>15	ulelong	>0		\b, %d cylinders
239b6cee71dSXin LI>>>>128	indirect	x	\b; contains
240b6cee71dSXin LI
241b6cee71dSXin LI# added by Joerg Jenderek at Nov 2012
242b6cee71dSXin LI# http://www.thenakedpc.com/articles/v04/08/0408-05.html
243b6cee71dSXin LI# Symantec (Peter Norton) Image.dat file consists of variable header, bootrecord, part of FAT and root directory data
244b6cee71dSXin LI0	string	PNCIHISK\0		Norton Utilities disc image data
245b6cee71dSXin LI# real x86 boot sector with jump instruction
246b6cee71dSXin LI>509	search/1026	\x55\xAA\xeb
247b6cee71dSXin LI>>&-1	indirect	x		\b; contains
248b6cee71dSXin LI# http://file-extension.net/seeker/file_extension_dat
249b6cee71dSXin LI0	string	PNCIUNDO		Norton Disk Doctor UnDo file
250b6cee71dSXin LI#
251b6cee71dSXin LI
252b6cee71dSXin LI# DOS/MBR boot sector updated by Joerg Jenderek at Sep 2007,May 2011,2013
253b6cee71dSXin LI# for any allowed sector sizes
254b6cee71dSXin LI30		search/481	\x55\xAA
255b6cee71dSXin LI# to display DOS/MBR boot sector (40) before old one (strength=50+21),Syslinux bootloader (71),SYSLINUX MBR (37+36),NetBSD mbr (110),AdvanceMAME mbr (111)
256b6cee71dSXin LI# DOS BPB information (70) and after DOS floppy (120) like in previous file version
257cd0b4959SXin LI!:strength +65
258b6cee71dSXin LI# for sector sizes < 512 Bytes
259b6cee71dSXin LI>11		uleshort	<512
260b6cee71dSXin LI>>(11.s-2)	uleshort	0xAA55		DOS/MBR boot sector
261b6cee71dSXin LI# for sector sizes with 512 or more Bytes
262b6cee71dSXin LI>0x1FE		leshort		0xAA55		DOS/MBR boot sector
2634460e5b0SXin LI
26443a5ec4eSXin LI# ExFAT
26543a5ec4eSXin LI3		string/w	=EXFAT
26643a5ec4eSXin LI>0x1FE		leshort		0xAA55
26743a5ec4eSXin LI>>0x6E		ubyte		1
26843a5ec4eSXin LI>>>0x6F		ubyte		0x80
26943a5ec4eSXin LI>>>0		ubyte		0xEB	DOS/MBR boot sector,
27043a5ec4eSXin LI>>>0x69		ubyte		x	ExFAT Filesystem version %d.
27143a5ec4eSXin LI>>>0x68		ubyte		x	\b%d
27243a5ec4eSXin LI>>>0x6d		ubyte		x	\b, (1<<%d) sectors per cluster
27343a5ec4eSXin LI>>>0x48		ulequad		x	\b, sectors %lld
27443a5ec4eSXin LI>>>0x64		ulelong		x	\b, serial number %#x
27543a5ec4eSXin LI
2764460e5b0SXin LI# keep old DOS/MBR boot sector as dummy for mbr and bootloader displaying
2774460e5b0SXin LI# only for sector sizes with 512 or more Bytes
2784460e5b0SXin LI0x1FE          leshort         0xAA55         	DOS/MBR boot sector
2794460e5b0SXin LI#
2804460e5b0SXin LI# to display information (50) before DOS BPB (strength=70) and after DOS floppy (120) like in old file version
2814460e5b0SXin LI!:strength +65
282cd0b4959SXin LI>2		string		OSBS		OS/BS MBR
28348c779cdSXin LI# added by Joerg Jenderek at Feb 2013 according to https://thestarman.pcministry.com/asm/mbr/
2845b990a94SBaptiste Daroussin# and https://en.wikipedia.org/wiki/Master_Boot_Record
2855b990a94SBaptiste Daroussin# test for nearly all MS-DOS Master Boot Record initial program loader (IPL) is now done by
286b6cee71dSXin LI# characteristic assembler instructions: xor ax,ax;mov ss,ax;mov sp,7c00
287b6cee71dSXin LI>0	search/2	\x33\xc0\x8e\xd0\xbc\x00\x7c	MS-MBR
28848c779cdSXin LI# Microsoft Windows 95A and early ( https://thestarman.pcministry.com/asm/mbr/STDMBR.htm )
289b6cee71dSXin LI# assembler instructions: mov si,sp;push ax;pop es;push ax;pop ds;sti;cld
290b6cee71dSXin LI>>8	ubequad		0x8bf45007501ffbfc
29148c779cdSXin LI# https://thestarman.pcministry.com/asm/mbr/200MBR.htm
292b6cee71dSXin LI>>>0x16	ubyte		0xF3				\b,DOS 2
293b6cee71dSXin LI>>>>219	regex		Author\ -\ 			Author:
294b6cee71dSXin LI# found "David Litton" , "A Pehrsson  "
295b6cee71dSXin LI>>>>>&0	string		x				"%s"
296b6cee71dSXin LI>>>0x16	ubyte		0xF2
29748c779cdSXin LI# NEC MS-DOS 3.30 Rev. 3 . See https://thestarman.pcministry.com/asm/mbr/DOS33MBR.htm
298b6cee71dSXin LI# assembler instructions: mov di,077c;cmp word ptrl[di],a55a;jnz
299b6cee71dSXin LI>>>>0x22	ubequad	0xbf7c07813d5aa575		\b,NEC 3.3
300b6cee71dSXin LI# version MS-DOS 3.30 til MS-Windows 95A (WinVer=4.00.1111)
301b6cee71dSXin LI>>>>0x22	default	x				\b,D0S version 3.3-7.0
302b6cee71dSXin LI# error messages are printed by assembler instructions: mov si,06nn;...;int 10 (0xBEnn06;...)
303b6cee71dSXin LI# where nn is string offset varying for different languages
304b6cee71dSXin LI# "Invalid partition table"				nn=0x8b for english version
305b6cee71dSXin LI>>>>>(0x49.b)	string		Invalid\ partition\ table		english
306b6cee71dSXin LI>>>>>(0x49.b)	string		Ung\201ltige\ Partitionstabelle		german
307b6cee71dSXin LI>>>>>(0x49.b)	string		Table\ de\ partition\ invalide		french
308b6cee71dSXin LI>>>>>(0x49.b)	string		Tabela\ de\ parti\207ao\ inv\240lida	portuguese
309b6cee71dSXin LI>>>>>(0x49.b)	string		Tabla\ de\ partici\242n\ no\ v\240lida	spanish
310b6cee71dSXin LI>>>>>(0x49.b)	string		Tavola\ delle\ partizioni\ non\ valida	italian
31143a5ec4eSXin LI>>>>>0x49	ubyte		>0			at offset %#x
312b6cee71dSXin LI>>>>>>(0x49.b)	string		>\0			"%s"
313b6cee71dSXin LI# "Error loading operating system"			nn=0xa3 for english version
314b6cee71dSXin LI# "Fehler beim Laden des Betriebssystems"		nn=0xa7 for german version
315b6cee71dSXin LI# "Erreur en chargeant syst\212me d'exploitation"	nn=0xa7 for french version
316b6cee71dSXin LI# "Erro na inicializa\207ao do sistema operacional"	nn=0xa7 for portuguese Brazilian version
317b6cee71dSXin LI# "Error al cargar sistema operativo"			nn=0xa8 for spanish version
318b6cee71dSXin LI# "Errore durante il caricamento del sistema operativo"	nn=0xae for italian version
31943a5ec4eSXin LI>>>>>0x74	ubyte		>0			at offset %#x
320b6cee71dSXin LI>>>>>>(0x74.b)	string		>\0			"%s"
321b6cee71dSXin LI# "Missing operating system"				nn=0xc2 for english version
322b6cee71dSXin LI# "Betriebssystem fehlt"				nn=0xcd for german version
323b6cee71dSXin LI# "Syst\212me d'exploitation absent"			nn=0xd2 for french version
324b6cee71dSXin LI# "Sistema operacional nao encontrado"			nn=0xd4 for portuguese Brazilian version
325b6cee71dSXin LI# "Falta sistema operativo"				nn=0xca for spanish version
326b6cee71dSXin LI# "Sistema operativo mancante"				nn=0xe2 for italian version
32743a5ec4eSXin LI>>>>>0x79	ubyte		>0			at offset %#x
328b6cee71dSXin LI>>>>>>(0x79.b)	string		>\0			"%s"
32948c779cdSXin LI# Microsoft Windows 95B to XP (https://thestarman.pcministry.com/asm/mbr/95BMEMBR.htm)
330b6cee71dSXin LI# assembler instructions: push ax;pop es;push  ax;pop ds;cld;mov si,7c1b
331b6cee71dSXin LI>>8	ubequad		0x5007501ffcbe1b7c
332b6cee71dSXin LI# assembler instructions: rep;movsb;retf;mov si,07be;mov cl,04
333b6cee71dSXin LI>>>24		ubequad	0xf3a4cbbebe07b104		9M
334b6cee71dSXin LI# "Invalid partition table"				nn=0x10F for english version
335b6cee71dSXin LI# "Ung\201ltige Partitionstabelle"				nn=0x10F for german version
336b6cee71dSXin LI# "Table de partition erron\202e"				nn=0x10F for french version
337b6cee71dSXin LI# "\216\257\245\340\240\346\250\256\255\255\240\357 \341\250\341\342\245\254\240 \255\245 \255\240\251\244\245\255\240"	nn=0x10F for russian version
338b6cee71dSXin LI>>>>(0x3C.b+0x0FF)	string	Invalid\ partition\ table		english
339b6cee71dSXin LI>>>>(0x3C.b+0x0FF)	string	Ung\201ltige\ Partitionstabelle		german
340b6cee71dSXin LI>>>>(0x3C.b+0x0FF)	string	Table\ de\ partition\ erron\202e	french
341b6cee71dSXin LI>>>>(0x3C.b+0x0FF)	string	\215\245\257\340\240\242\250\253\354\255\240\357\ \342\240\241\253\250\346\240	russian
34243a5ec4eSXin LI>>>>0x3C		ubyte	x			at offset %#x+0xFF
343b6cee71dSXin LI>>>>(0x3C.b+0x0FF)	string	>\0			"%s"
344b6cee71dSXin LI# "Error loading operating system"			nn=0x127 for english version
345b6cee71dSXin LI# "Fehler beim Laden des Betriebssystems"		nn=0x12b for german version
346b6cee71dSXin LI# "Erreur lors du chargement du syst\212me d'exploitation"	nn=0x12a for french version
347b6cee71dSXin LI# "\216\350\250\241\252\240 \257\340\250 \247\240\243\340\343\247\252\245 \256\257\245\340\240\346\250\256\255\255\256\251 \341\250\341\342\245\254\353"	nn=0x12d for russian version
348b6cee71dSXin LI>>>>0xBD		ubyte	x			at offset 0x1%x
349b6cee71dSXin LI>>>>(0xBD.b+0x100)	string	>\0			"%s"
350b6cee71dSXin LI# "Missing operating system"				nn=0x146 for english version
351b6cee71dSXin LI# "Betriebssystem fehlt"				nn=0x151 for german version
352b6cee71dSXin LI# "Syst\212me d'exploitation manquant"			nn=0x15e for french version
353b6cee71dSXin LI# "\216\257\245\340\240\346\250\256\255\255\240\357 \341\250\341\342\245\254\240 \255\245 \255\240\251\244\245\255\240"	nn=0x156 for russian version
354b6cee71dSXin LI>>>>0xA9		ubyte	x			at offset 0x1%x
355b6cee71dSXin LI>>>>(0xA9.b+0x100)	string	>\0			"%s"
35648c779cdSXin LI# https://thestarman.pcministry.com/asm/mbr/Win2kmbr.htm
357b6cee71dSXin LI# assembler instructions: rep;movsb;retf;mov BP,07be;mov cl,04
358b6cee71dSXin LI>>>24		ubequad	0xf3a4cbbdbe07b104		XP
359b6cee71dSXin LI# where xxyyzz are lower bits from offsets of error messages varying for different languages
360b6cee71dSXin LI>>>>0x1B4	ubelong&0x00FFFFFF	0x002c4463	english
361b6cee71dSXin LI>>>>0x1B4	ubelong&0x00FFFFFF	0x002c486e	german
362b6cee71dSXin LI# "Invalid partition table"				xx=0x12C for english version
363b6cee71dSXin LI# "Ung\201ltige Partitionstabelle"				xx=0x12C for german version
364b6cee71dSXin LI>>>>0x1b5	ubyte		>0			at offset 0x1%x
365b6cee71dSXin LI>>>>(0x1b5.b+0x100)	string	>\0			"%s"
366b6cee71dSXin LI# "Error loading operating system"			yy=0x144 for english version
367b6cee71dSXin LI# "Fehler beim Laden des Betriebssystems"		yy=0x148 for german version
368b6cee71dSXin LI>>>>0x1b6	ubyte		>0			at offset 0x1%x
369b6cee71dSXin LI>>>>(0x1b6.b+0x100)	string	>\0			"%s"
370b6cee71dSXin LI# "Missing operating system"				zz=0x163 for english version
371b6cee71dSXin LI# "Betriebssystem nicht vorhanden"			zz=0x16e for german version
372b6cee71dSXin LI>>>>0x1b7	ubyte		>0			at offset 0x1%x
373b6cee71dSXin LI>>>>(0x1b7.b+0x100)	string	>\0			"%s"
374b6cee71dSXin LI# Microsoft Windows Vista or 7
375b6cee71dSXin LI# assembler instructions: ..;mov ds,ax;mov si,7c00;mov di,..00
376b6cee71dSXin LI>>8	ubequad		0xc08ed8be007cbf00
37748c779cdSXin LI# Microsoft Windows Vista (https://thestarman.pcministry.com/asm/mbr/VistaMBR.htm)
378b6cee71dSXin LI# assembler instructions: jnz 0729;cmp ebx,"TCPA"
379b6cee71dSXin LI>>>0xEC		ubequad	0x753b6681fb544350		Vista
380b6cee71dSXin LI# where xxyyzz are lower bits from offsets of error messages varying for different languages
381b6cee71dSXin LI>>>>0x1B4	ubelong&0x00FFFFFF	0x00627a99	english
382b6cee71dSXin LI#>>>>0x1B4	ubelong&0x00FFFFFF	?		german
383b6cee71dSXin LI# "Invalid partition table"				xx=0x162 for english version
384b6cee71dSXin LI# "Ung\201ltige Partitionstabelle"				xx=0x1?? for german version
385b6cee71dSXin LI>>>>0x1b5	ubyte		>0			at offset 0x1%x
386b6cee71dSXin LI>>>>(0x1b5.b+0x100)	string	>\0			"%s"
387b6cee71dSXin LI# "Error loading operating system"			yy=0x17a for english version
388b6cee71dSXin LI# "Fehler beim Laden des Betriebssystems"		yy= 0x1?? for german version
389b6cee71dSXin LI>>>>0x1b6	ubyte		>0			at offset 0x1%x
390b6cee71dSXin LI>>>>(0x1b6.b+0x100)	string	>\0			"%s"
391b6cee71dSXin LI# "Missing operating system"				zz=0x199 for english version
392b6cee71dSXin LI# "Betriebssystem nicht vorhanden"			zz=0x1?? for german version
393b6cee71dSXin LI>>>>0x1b7	ubyte		>0			at offset 0x1%x
394b6cee71dSXin LI>>>>(0x1b7.b+0x100)	string	>\0			"%s"
39548c779cdSXin LI# Microsoft Windows 7 (https://thestarman.pcministry.com/asm/mbr/W7MBR.htm)
396b6cee71dSXin LI# assembler instructions: cmp ebx,"TCPA";cmp
397b6cee71dSXin LI>>>0xEC		ubequad	0x6681fb5443504175		Windows 7
398b6cee71dSXin LI# where xxyyzz are lower bits from offsets of error messages varying for different languages
399b6cee71dSXin LI>>>>0x1B4	ubelong&0x00FFFFFF	0x00637b9a	english
400b6cee71dSXin LI#>>>>0x1B4	ubelong&0x00FFFFFF	?		german
401b6cee71dSXin LI# "Invalid partition table"				xx=0x163 for english version
402b6cee71dSXin LI# "Ung\201ltige Partitionstabelle"				xx=0x1?? for german version
403b6cee71dSXin LI>>>>0x1b5	ubyte		>0			at offset 0x1%x
404b6cee71dSXin LI>>>>(0x1b5.b+0x100)	string	>\0			"%s"
405b6cee71dSXin LI# "Error loading operating system"			yy=0x17b for english version
406b6cee71dSXin LI# "Fehler beim Laden des Betriebssystems"		yy=0x1?? for german version
407b6cee71dSXin LI>>>>0x1b6	ubyte		>0			at offset 0x1%x
408b6cee71dSXin LI>>>>(0x1b6.b+0x100)	string	>\0			"%s"
409b6cee71dSXin LI# "Missing operating system"				zz=0x19a for english version
410b6cee71dSXin LI# "Betriebssystem nicht vorhanden"			zz=0x1?? for german version
411b6cee71dSXin LI>>>>0x1b7	ubyte		>0			at offset 0x1%x
412b6cee71dSXin LI>>>>(0x1b7.b+0x100)	string	>\0			"%s"
41348c779cdSXin LI# https://thestarman.pcministry.com/asm/mbr/Win2kmbr.htm#DiskSigs
41448c779cdSXin LI# https://en.wikipedia.org/wiki/MBR_disk_signature#ID
41543a5ec4eSXin LI>>0x1b8	ulelong		>0				\b, disk signature %#-.4x
41648c779cdSXin LI# driveID/timestamp for Win 95B,98,98SE and ME. See https://thestarman.pcministry.com/asm/mbr/mystery.htm
417b6cee71dSXin LI>>0xDA	uleshort		0
418b6cee71dSXin LI>>>0xDC 	ulelong		>0			\b, created
419b6cee71dSXin LI# physical drive number (0x80-0xFF) when the Windows wrote that byte to the drive
42043a5ec4eSXin LI>>>>0xDC	ubyte		x			with driveID %#x
421b6cee71dSXin LI# hours, minutes and seconds
422b6cee71dSXin LI>>>>0xDf	ubyte		x			at %x
423b6cee71dSXin LI>>>>0xDe	ubyte		x			\b:%x
424b6cee71dSXin LI>>>>0xDd	ubyte		x			\b:%x
425b6cee71dSXin LI# special case for Microsoft MS-DOS 3.21 spanish
426b6cee71dSXin LI# assembler instructions: cli;mov $0x30,%ax;mov %ax,%ss;mov
427b6cee71dSXin LI>0	ubequad		0xfab830008ed0bc00
428b6cee71dSXin LI# assembler instructions: $0x1f00,%sp;mov $0x80cb,%di;add %cl,(%bx,%si);in (%dx),%ax;mov
429b6cee71dSXin LI>>8	ubequad		0x1fbfcb800008ed8		MS-MBR,D0S version 3.21 spanish
430b6cee71dSXin LI# Microsoft MBR IPL end
431b6cee71dSXin LI
432b6cee71dSXin LI# dr-dos with some upper-, lowercase variants
433b6cee71dSXin LI>0x9D	string	Invalid\ partition\ table$
434b6cee71dSXin LI>>181	string	No\ Operating\ System$
435b6cee71dSXin LI>>>201	string	Operating\ System\ load\ error$	\b, DR-DOS MBR, Version 7.01 to 7.03
436b6cee71dSXin LI>0x9D	string	Invalid\ partition\ table$
437b6cee71dSXin LI>>181	string	No\ operating\ system$
438b6cee71dSXin LI>>>201	string	Operating\ system\ load\ error$	\b, DR-DOS MBR, Version 7.01 to 7.03
439b6cee71dSXin LI>342	string	Invalid\ partition\ table$
440b6cee71dSXin LI>>366	string	No\ operating\ system$
441b6cee71dSXin LI>>>386	string	Operating\ system\ load\ error$	\b, DR-DOS MBR, version 7.01 to 7.03
442b6cee71dSXin LI>295	string	NEWLDR\0
443b6cee71dSXin LI>>302	string	Bad\ PT\ $
444b6cee71dSXin LI>>>310	string	No\ OS\ $
445b6cee71dSXin LI>>>>317	string	OS\ load\ err$
446b6cee71dSXin LI>>>>>329	string	Moved\ or\ missing\ IBMBIO.LDR\n\r
447b6cee71dSXin LI>>>>>>358	string	Press\ any\ key\ to\ continue.\n\r$
448b6cee71dSXin LI>>>>>>>387	string	Copyright\ (c)\ 1984,1998
449b6cee71dSXin LI>>>>>>>>411	string	Caldera\ Inc.\0		\b, DR-DOS MBR (IBMBIO.LDR)
450b6cee71dSXin LI#
4515b990a94SBaptiste Daroussin# tests for different MS-DOS Master Boot Records (MBR) moved and merged
452b6cee71dSXin LI#
453b6cee71dSXin LI#>0x145	string	Default:\ F				\b, FREE-DOS MBR
454b6cee71dSXin LI#>0x14B	string	Default:\ F				\b, FREE-DOS 1.0 MBR
455b6cee71dSXin LI>0x145	search/7	Default:\ F			\b, FREE-DOS MBR
456b6cee71dSXin LI#>>313		string	F0\ .\ .\ .
457b6cee71dSXin LI#>>>322		string	disk\ 1
458b6cee71dSXin LI#>>>>382	string	FAT3
459b6cee71dSXin LI>64	string	no\ active\ partition\ found
460b6cee71dSXin LI>>96	string	read\ error\ while\ reading\ drive	\b, FREE-DOS Beta 0.9 MBR
461b6cee71dSXin LI# Ranish Partition Manager http://www.ranish.com/part/
462b6cee71dSXin LI>387	search/4	\0\ Error!\r
463b6cee71dSXin LI>>378	search/7	Virus!
46440427ccaSGordon Tetlow>>>397	search/4	Booting\040
465b6cee71dSXin LI>>>>408	search/4	HD1/\0	 			\b, Ranish MBR (
466b6cee71dSXin LI>>>>>416	string	Writing\ changes...		\b2.37
46743a5ec4eSXin LI>>>>>>438	ubyte		x			\b,%#x dots
468b6cee71dSXin LI>>>>>>440	ubyte		>0			\b,virus check
469b6cee71dSXin LI>>>>>>441	ubyte		>0			\b,partition %c
470b6cee71dSXin LI#2.38,2.42,2.44
471b6cee71dSXin LI>>>>>416	string	!Writing\ changes...		\b
472b6cee71dSXin LI>>>>>>418	ubyte	1				\bvirus check,
47343a5ec4eSXin LI>>>>>>419	ubyte	x				\b%#x seconds
474b6cee71dSXin LI>>>>>>420	ubyte&0x0F	>0			\b,partition
475b6cee71dSXin LI>>>>>>>420	ubyte&0x0F	<5			\b %x
476b6cee71dSXin LI>>>>>>>420	ubyte&0x0F	0Xf			\b ask
477b6cee71dSXin LI>>>>>420	ubyte		x			\b)
478b6cee71dSXin LI#
479b6cee71dSXin LI# SYSLINUX MBR moved
48048c779cdSXin LI# https://www.acronis.de/
481b6cee71dSXin LI>362	string	MBR\ Error\ \0\r
48240427ccaSGordon Tetlow>>376	string	ress\ any\ key\ to\040
483b6cee71dSXin LI>>>392	string	boot\ from\ floppy...\0			\b, Acronis MBR
484b6cee71dSXin LI# added by Joerg Jenderek
48548c779cdSXin LI# https://www.visopsys.org/
48648c779cdSXin LI# https://partitionlogic.org.uk/
487b6cee71dSXin LI>309	string	No\ bootable\ partition\ found\r
488b6cee71dSXin LI>>339	string	I/O\ Error\ reading\ boot\ sector\r	\b, Visopsys MBR
489b6cee71dSXin LI>349	string	No\ bootable\ partition\ found\r
490b6cee71dSXin LI>>379	string	I/O\ Error\ reading\ boot\ sector\r	\b, simple Visopsys MBR
491b6cee71dSXin LI# bootloader, bootmanager
492b6cee71dSXin LI>0x40	string	SBML
493b6cee71dSXin LI# label with 11 characters of FAT 12 bit filesystem
494b6cee71dSXin LI>>43	string	SMART\ BTMGR
495b6cee71dSXin LI>>>430	string	SBMK\ Bad!\r			\b, Smart Boot Manager
496b6cee71dSXin LI# OEM-ID not always "SBM"
497b6cee71dSXin LI#>>>>3	strings	SBM
498b6cee71dSXin LI>>>>6	string	>\0                             \b, version %s
499b6cee71dSXin LI>382	string	XOSLLOADXCF			\b, eXtended Operating System Loader
500b6cee71dSXin LI>6	string	LILO				\b, LInux i386 boot LOader
501b6cee71dSXin LI>>120	string	LILO				\b, version 22.3.4 SuSe
502b6cee71dSXin LI>>172	string	LILO				\b, version 22.5.8 Debian
503b6cee71dSXin LI# updated by Joerg Jenderek at Oct 2008
504b6cee71dSXin LI# variables according to grub-0.97/stage1/stage1.S or
50548c779cdSXin LI# https://www.gnu.org/software/grub/manual/grub.html#Embedded-data
50643a5ec4eSXin LI# usual values are marked with comments to get only information of strange GRUB loaders
507b6cee71dSXin LI>342		search/60	\0Geom\0
508b6cee71dSXin LI#>0		ulelong		x		%x=0x009048EB ,	0x2a9048EB  0
509b6cee71dSXin LI>>0x41		ubyte		<2
510b6cee71dSXin LI>>>0x3E		ubyte		>2		\b; GRand Unified Bootloader
511b6cee71dSXin LI# 0x3 for 0.5.95,0.93,0.94,0.96 0x4 for 1.90
51243a5ec4eSXin LI>>>>0x3E	ubyte		x		\b, stage1 version %#x
513b6cee71dSXin LI#If it is 0xFF, use a drive passed by BIOS
51443a5ec4eSXin LI>>>>0x40	ubyte		<0xFF		\b, boot drive %#x
515b6cee71dSXin LI# in most case 0,1,0x2e for GRUB 0.5.95
51643a5ec4eSXin LI>>>>0x41	ubyte		>0		\b, LBA flag %#x
51743a5ec4eSXin LI>>>>0x42	uleshort	<0x8000		\b, stage2 address %#x
51843a5ec4eSXin LI#>>>>0x42	uleshort	=0x8000		\b, stage2 address %#x (usual)
51943a5ec4eSXin LI>>>>0x42	uleshort	>0x8000		\b, stage2 address %#x
52043a5ec4eSXin LI#>>>>0x44	ulelong		=1		\b, 1st sector stage2 %#x (default)
52143a5ec4eSXin LI>>>>0x44	ulelong		>1		\b, 1st sector stage2 %#x
52243a5ec4eSXin LI>>>>0x48	uleshort	<0x800		\b, stage2 segment %#x
52343a5ec4eSXin LI#>>>>0x48	uleshort	=0x800		\b, stage2 segment %#x (usual)
52443a5ec4eSXin LI>>>>0x48	uleshort	>0x800		\b, stage2 segment %#x
525b6cee71dSXin LI>>>>402		string	Geom\0Hard\ Disk\0Read\0\ Error\0
526b6cee71dSXin LI>>>>>394	string	stage1			\b, GRUB version 0.5.95
527b6cee71dSXin LI>>>>382		string	Geom\0Hard\ Disk\0Read\0\ Error\0
528b6cee71dSXin LI>>>>>376	string	GRUB\ \0		\b, GRUB version 0.93 or 1.94
529b6cee71dSXin LI>>>>383		string	Geom\0Hard\ Disk\0Read\0\ Error\0
530b6cee71dSXin LI>>>>>377	string	GRUB\ \0		\b, GRUB version 0.94
531b6cee71dSXin LI>>>>385		string	Geom\0Hard\ Disk\0Read\0\ Error\0
532b6cee71dSXin LI>>>>>379	string	GRUB\ \0		\b, GRUB version 0.95 or 0.96
533b6cee71dSXin LI>>>>391		string	Geom\0Hard\ Disk\0Read\0\ Error\0
534b6cee71dSXin LI>>>>>385	string	GRUB\ \0		\b, GRUB version 0.97
535b6cee71dSXin LI# unknown version
536b6cee71dSXin LI>>>343		string	Geom\0Read\0\ Error\0
537b6cee71dSXin LI>>>>321		string	Loading\ stage1.5	\b, GRUB version x.y
538b6cee71dSXin LI>>>380		string	Geom\0Hard\ Disk\0Read\0\ Error\0
539b6cee71dSXin LI>>>>374		string	GRUB\ \0		\b, GRUB version n.m
540b6cee71dSXin LI# SYSLINUX bootloader moved
541b6cee71dSXin LI>395	string	chksum\0\ ERROR!\0		\b, Gujin bootloader
542b6cee71dSXin LI# http://www.bcdwb.de/bcdw/index_e.htm
543b6cee71dSXin LI>3	string	BCDL
544b6cee71dSXin LI>>498	string	BCDL\ \ \ \ BIN			\b, Bootable CD Loader (1.50Z)
545b6cee71dSXin LI# mbr partition table entries updated by Joerg Jenderek at Sep 2013
546b6cee71dSXin LI# skip Norton Utilities disc image data
547b6cee71dSXin LI>3		string		!IHISK
54843a5ec4eSXin LI# skip Linux style boot sector starting with assembler instructions mov 0x7c0,ax;
549b6cee71dSXin LI>>0		belong		!0xb8c0078e
550b6cee71dSXin LI# not Linux kernel
551b6cee71dSXin LI>>>514		string		!HdrS
552b6cee71dSXin LI# not BeOS
553b6cee71dSXin LI>>>>422		string		!Be\ Boot\ Loader
554b6cee71dSXin LI# jump over BPB instruction implies DOS bootsector or AdvanceMAME mbr
555b6cee71dSXin LI>>>>>0		ubelong&0xFD000000	=0xE9000000
556b6cee71dSXin LI# AdvanceMAME mbr
557b6cee71dSXin LI>>>>>>(1.b+2)	ubequad		0xfa31c08ed88ec08e
558b6cee71dSXin LI>>>>>>>446	use		partition-table
559b6cee71dSXin LI# mbr, Norton Utilities disc image data, or 2nd,etc. sector of x86 bootloader
560b6cee71dSXin LI>>>>>0		ubelong&0xFD000000	!0xE9000000
561b6cee71dSXin LI# skip FSInfosector
562b6cee71dSXin LI>>>>>>0		string		!RRaA
56343a5ec4eSXin LI# skip 3rd sector of MS x86 bootloader with assembler instructions cli;MOVZX EAX,BYTE PTR [BP+10];MOV ECX,
56448c779cdSXin LI# https://thestarman.pcministry.com/asm/mbr/MSWIN41.htm
565b6cee71dSXin LI>>>>>>>0	ubequad		!0xfa660fb64610668b
566b6cee71dSXin LI# skip 13rd sector of MS x86 bootloader
567b6cee71dSXin LI>>>>>>>>0	ubequad		!0x660fb64610668b4e
568b6cee71dSXin LI# skip sector starting with DOS new line
569b6cee71dSXin LI>>>>>>>>>0	string		!\r\n
570b6cee71dSXin LI# allowed active flag 0,80h-FFh
571b6cee71dSXin LI>>>>>>>>>>446	ubyte		0
572b6cee71dSXin LI>>>>>>>>>>>446	use		partition-table
573b6cee71dSXin LI>>>>>>>>>>446	ubyte		>0x7F
574b6cee71dSXin LI>>>>>>>>>>>446	use		partition-table
575b6cee71dSXin LI# TODO: test for extended bootrecord (ebr) moved and merged with mbr partition table entries
576b6cee71dSXin LI# mbr partition table entries end
57748c779cdSXin LI# https://www.acronis.de/
578b6cee71dSXin LI#FAT label=ACRONIS\ SZ
579b6cee71dSXin LI#OEM-ID=BOOTWIZ0
58040427ccaSGordon Tetlow>442	string	Non-system\ disk,\040
581b6cee71dSXin LI>>459	string	press\ any\ key...\x7\0		\b, Acronis Startup Recovery Loader
582b6cee71dSXin LI# updated by Joerg Jenderek at Nov 2012, Sep 2013
583b6cee71dSXin LI# DOS names like F11.SYS or BOOTWIZ.SYS are 8 right space padded bytes+3 bytes
584b6cee71dSXin LI# display 1 space
585b6cee71dSXin LI>>>447	ubyte	x		\b
586b6cee71dSXin LI>>>477	use	DOS-filename
587b6cee71dSXin LI#
58840427ccaSGordon Tetlow>185	string	FDBOOT\ Version\040
58940427ccaSGordon Tetlow>>204	string	\rNo\ Systemdisk.\040
590b6cee71dSXin LI>>>220	string	Booting\ from\ harddisk.\n\r
591b6cee71dSXin LI>>>245	string	Cannot\ load\ from\ harddisk.\n\r
59240427ccaSGordon Tetlow>>>>273 string	Insert\ Systemdisk\040
593b6cee71dSXin LI>>>>>291 string and\ press\ any\ key.\n\r		\b, FDBOOT harddisk Bootloader
594b6cee71dSXin LI>>>>>>200 string	>\0                             \b, version %-3s
595b6cee71dSXin LI>242	string	Bootsector\ from\ C.H.\ Hochst\204
596b6cee71dSXin LI# http://freecode.com/projects/dosfstools	dosfstools-n.m/src/mkdosfs.c
597b6cee71dSXin LI# updated by Joerg Jenderek at Nov 2012. Use search directive with offset instead of string
598b6cee71dSXin LI# skip name "C.H. Hochstaetter" partly because it is sometimes written without umlaut
599b6cee71dSXin LI>242	search/127	Bootsector\ from\ C.H.\ Hochst
600b6cee71dSXin LI>>278	search/127	No\ Systemdisk.\ Booting\ from\ harddisk
601b6cee71dSXin LI# followed by variants with point,CR-NL or NL-CR
602b6cee71dSXin LI>>>208	search/261	Cannot\ load\ from\ harddisk.
603b6cee71dSXin LI# followed by variants CR-NL or NL-CR
604b6cee71dSXin LI>>>>236	search/235	Insert\ Systemdisk\ and\ press\ any\ key.
605b6cee71dSXin LI# followed by variants with point,CR-NL or NL-CR
606b6cee71dSXin LI>>>>>180	search/96	Disk\ formatted\ with\ WinImage\ 	\b, WinImage harddisk Bootloader
607b6cee71dSXin LI# followed by string like "6.50 (c) 1993-2004 Gilles Vollant"
608b6cee71dSXin LI>>>>>>&0	string		x 					\b, version %-4.4s
609b6cee71dSXin LI>(1.b+2)	ubyte		0xe
610b6cee71dSXin LI>>(1.b+3)	ubyte		0x1f
611b6cee71dSXin LI>>>(1.b+4)	ubyte		0xbe
612b6cee71dSXin LI# message offset found at (1.b+5) is 0x77 for FAT32 or 0x5b for others
613b6cee71dSXin LI>>>>(1.b+5)	ubyte&0xd3	0x53
614b6cee71dSXin LI>>>>>(1.b+6)	ubyte		0x7c
615b6cee71dSXin LI# assembler instructions: lodsb;and al,al;jz 0xb;push si;mov ah,
616b6cee71dSXin LI>>>>>>(1.b+7)	ubyte		0xac
617b6cee71dSXin LI>>>>>>>(1.b+8)	ubyte		0x22
618b6cee71dSXin LI>>>>>>>>(1.b+9)	ubyte		0xc0
619b6cee71dSXin LI>>>>>>>>>(1.b+10)	ubyte	0x74
620b6cee71dSXin LI>>>>>>>>>>(1.b+11)	ubyte	0x0b
621b6cee71dSXin LI>>>>>>>>>>>(1.b+12)	ubyte	0x56
622b6cee71dSXin LI>>>>>>>>>>>>(1.b+13)	ubyte	0xb4			\b, mkdosfs boot message display
623b6cee71dSXin LI# FAT1X version
624b6cee71dSXin LI>>>>>>>>>>>>>(1.b+5)	ubyte	0x5b
625b6cee71dSXin LI>>>>>>>>>>>>>>0x5b	string	>\0			"%-s"
626b6cee71dSXin LI# FAT32 version
627b6cee71dSXin LI>>>>>>>>>>>>>(1.b+5)	ubyte	0x77
628b6cee71dSXin LI>>>>>>>>>>>>>>0x77	string	>\0			"%-s"
629b6cee71dSXin LI>214	string	Please\ try\ to\ install\ FreeDOS\ 	\b, DOS Emulator boot message display
630b6cee71dSXin LI#>>244	string	from\ dosemu-freedos-*-bin.tgz\r
63140427ccaSGordon Tetlow#>>>170	string	Sorry,\ could\ not\ load\ an\040
632b6cee71dSXin LI#>>>>195	string	operating\ system.\r\n
633b6cee71dSXin LI#
63440427ccaSGordon Tetlow>103	string	This\ is\ not\ a\ bootable\ disk.\040
63540427ccaSGordon Tetlow>>132	string	Please\ insert\ a\ bootable\040
636b6cee71dSXin LI>>>157	string	floppy\ and\r\n
637b6cee71dSXin LI>>>>169	string	press\ any\ key\ to\ try\ again...\r	\b, FREE-DOS message display
638b6cee71dSXin LI#
639b6cee71dSXin LI>66	string	Solaris\ Boot\ Sector
640b6cee71dSXin LI>>99	string	Incomplete\ MDBoot\ load.
641b6cee71dSXin LI>>>89	string	Version 				\b, Sun Solaris Bootloader
642b6cee71dSXin LI>>>>97	byte	x					version %c
643b6cee71dSXin LI#
644b6cee71dSXin LI>408	string	OS/2\ !!\ SYS01475\r\0
645b6cee71dSXin LI>>429	string	OS/2\ !!\ SYS02025\r\0
646b6cee71dSXin LI>>>450	string	OS/2\ !!\ SYS02027\r\0
647b6cee71dSXin LI>>>469	string	OS2BOOT\ \ \ \ 				\b, IBM OS/2 Warp bootloader
648b6cee71dSXin LI#
649b6cee71dSXin LI>409	string	OS/2\ !!\ SYS01475\r\0
650b6cee71dSXin LI>>430	string	OS/2\ !!\ SYS02025\r\0
651b6cee71dSXin LI>>>451	string	OS/2\ !!\ SYS02027\r\0
652b6cee71dSXin LI>>>470	string	OS2BOOT\ \ \ \ 				\b, IBM OS/2 Warp Bootloader
653b6cee71dSXin LI>112		string	This\ disk\ is\ not\ bootable\r
654b6cee71dSXin LI>>142		string	If\ you\ wish\ to\ make\ it\ bootable
65540427ccaSGordon Tetlow>>>176		string	run\ the\ DOS\ program\ SYS\040
656b6cee71dSXin LI>>>200		string	after\ the\r
657b6cee71dSXin LI>>>>216		string	system\ has\ been\ loaded\r\n
65840427ccaSGordon Tetlow>>>>>242	string	Please\ insert\ a\ DOS\ diskette\040
65940427ccaSGordon Tetlow>>>>>271	string	into\r\n\ the\ drive\ and\040
660b6cee71dSXin LI>>>>>>292	string	strike\ any\ key...\0		\b, IBM OS/2 Warp message display
661b6cee71dSXin LI# XP
662b6cee71dSXin LI>430	string	NTLDR\ is\ missing\xFF\r\n
663b6cee71dSXin LI>>449	string	Disk\ error\xFF\r\n
664b6cee71dSXin LI>>>462	string	Press\ any\ key\ to\ restart\r		\b, Microsoft Windows XP Bootloader
665b6cee71dSXin LI# DOS names like NTLDR,CMLDR,$LDR$ are 8 right space padded bytes+3 bytes
666b6cee71dSXin LI>>>>417		ubyte&0xDF	>0
667b6cee71dSXin LI>>>>>417	string		x			%-.5s
668b6cee71dSXin LI>>>>>>422	ubyte&0xDF	>0
669b6cee71dSXin LI>>>>>>>422	string		x 			\b%-.3s
670b6cee71dSXin LI>>>>>425	ubyte&0xDF	>0
671b6cee71dSXin LI>>>>>>425	string		>\ 			\b.%-.3s
672b6cee71dSXin LI#
673b6cee71dSXin LI>>>>371		ubyte		>0x20
674b6cee71dSXin LI>>>>>368	ubyte&0xDF	>0
675b6cee71dSXin LI>>>>>>368	string		x 			%-.5s
676b6cee71dSXin LI>>>>>>>373	ubyte&0xDF	>0
677b6cee71dSXin LI>>>>>>>>373	string		x 			\b%-.3s
678b6cee71dSXin LI>>>>>>376	ubyte&0xDF	>0
679b6cee71dSXin LI>>>>>>>376	string		x 			\b.%-.3s
680b6cee71dSXin LI#
681b6cee71dSXin LI>430	string	NTLDR\ nicht\ gefunden\xFF\r\n
682b6cee71dSXin LI>>453	string	Datentr\204gerfehler\xFF\r\n
683b6cee71dSXin LI>>>473	string	Neustart\ mit\ beliebiger\ Taste\r	\b, Microsoft Windows XP Bootloader (german)
684b6cee71dSXin LI>>>>417		ubyte&0xDF	>0
685b6cee71dSXin LI>>>>>417	string		x			%-.5s
686b6cee71dSXin LI>>>>>>422	ubyte&0xDF	>0
687b6cee71dSXin LI>>>>>>>422	string		x 			\b%-.3s
688b6cee71dSXin LI>>>>>425	ubyte&0xDF	>0
689b6cee71dSXin LI>>>>>>425	string		>\ 			\b.%-.3s
690b6cee71dSXin LI# offset variant
691b6cee71dSXin LI>>>>379	string	\0
692b6cee71dSXin LI>>>>>368	ubyte&0xDF	>0
693b6cee71dSXin LI>>>>>>368	string		x 			%-.5s
694b6cee71dSXin LI>>>>>>>373	ubyte&0xDF	>0
695b6cee71dSXin LI>>>>>>>>373	string		x 			\b%-.3s
696b6cee71dSXin LI#
697b6cee71dSXin LI>430	string	NTLDR\ fehlt\xFF\r\n
698b6cee71dSXin LI>>444	string	Datentr\204gerfehler\xFF\r\n
699b6cee71dSXin LI>>>464	string	Neustart\ mit\ beliebiger\ Taste\r	\b, Microsoft Windows XP Bootloader (2.german)
700b6cee71dSXin LI>>>>417		ubyte&0xDF	>0
701b6cee71dSXin LI>>>>>417	string		x			%-.5s
702b6cee71dSXin LI>>>>>>422	ubyte&0xDF	>0
703b6cee71dSXin LI>>>>>>>422	string		x 			\b%-.3s
704b6cee71dSXin LI>>>>>425	ubyte&0xDF	>0
705b6cee71dSXin LI>>>>>>425	string		>\ 			\b.%-.3s
706b6cee71dSXin LI# variant
707b6cee71dSXin LI>>>>371		ubyte		>0x20
708b6cee71dSXin LI>>>>>368	ubyte&0xDF	>0
709b6cee71dSXin LI>>>>>>368	string		x 			%-.5s
710b6cee71dSXin LI>>>>>>>373	ubyte&0xDF	>0
711b6cee71dSXin LI>>>>>>>>373	string		x 			\b%-.3s
712b6cee71dSXin LI>>>>>>376	ubyte&0xDF	>0
713b6cee71dSXin LI>>>>>>>376	string		x 			\b.%-.3s
714b6cee71dSXin LI#
715b6cee71dSXin LI>430	string	NTLDR\ fehlt\xFF\r\n
716b6cee71dSXin LI>>444	string	Medienfehler\xFF\r\n
717b6cee71dSXin LI>>>459	string	Neustart:\ Taste\ dr\201cken\r		\b, Microsoft Windows XP Bootloader (3.german)
718b6cee71dSXin LI>>>>371		ubyte		>0x20
719b6cee71dSXin LI>>>>>368	ubyte&0xDF	>0
720b6cee71dSXin LI>>>>>>368	string		x 			%-.5s
721b6cee71dSXin LI>>>>>>>373	ubyte&0xDF	>0
722b6cee71dSXin LI>>>>>>>>373	string		x 			\b%-.3s
723b6cee71dSXin LI>>>>>>376	ubyte&0xDF	>0
724b6cee71dSXin LI>>>>>>>376	string		x 			\b.%-.3s
725b6cee71dSXin LI# variant
726b6cee71dSXin LI>>>>417		ubyte&0xDF	>0
727b6cee71dSXin LI>>>>>417	string		x			%-.5s
728b6cee71dSXin LI>>>>>>422	ubyte&0xDF	>0
729b6cee71dSXin LI>>>>>>>422	string		x 			\b%-.3s
730b6cee71dSXin LI>>>>>425	ubyte&0xDF	>0
731b6cee71dSXin LI>>>>>>425	string		>\ 			\b.%-.3s
732b6cee71dSXin LI#
733b6cee71dSXin LI>430	string	Datentr\204ger\ entfernen\xFF\r\n
734b6cee71dSXin LI>>454	string	Medienfehler\xFF\r\n
735b6cee71dSXin LI>>>469	string	Neustart:\ Taste\ dr\201cken\r		\b, Microsoft Windows XP Bootloader (4.german)
736b6cee71dSXin LI>>>>379		string		\0
737b6cee71dSXin LI>>>>>368	ubyte&0xDF	>0
738b6cee71dSXin LI>>>>>>368	string		x 			%-.5s
739b6cee71dSXin LI>>>>>>>373	ubyte&0xDF	>0
740b6cee71dSXin LI>>>>>>>>373	string		x 			\b%-.3s
741b6cee71dSXin LI>>>>>>376	ubyte&0xDF	>0
742b6cee71dSXin LI>>>>>>>376	string		x 			\b.%-.3s
743b6cee71dSXin LI# variant
744b6cee71dSXin LI>>>>417		ubyte&0xDF	>0
745b6cee71dSXin LI>>>>>417	string		x			%-.5s
746b6cee71dSXin LI>>>>>>422	ubyte&0xDF	>0
747b6cee71dSXin LI>>>>>>>422	string		x 			\b%-.3s
748b6cee71dSXin LI>>>>>425	ubyte&0xDF	>0
749b6cee71dSXin LI>>>>>>425	string		>\ 			\b.%-.3s
750b6cee71dSXin LI#
751b6cee71dSXin LI
75240427ccaSGordon Tetlow#>3	string	NTFS\ \ \ \040
75340427ccaSGordon Tetlow>389	string	Fehler\ beim\ Lesen\040
754b6cee71dSXin LI>>407	string	des\ Datentr\204gers
755b6cee71dSXin LI>>>426	string	NTLDR\ fehlt
756b6cee71dSXin LI>>>>440	string	NTLDR\ ist\ komprimiert
757b6cee71dSXin LI>>>>>464 string	Neustart\ mit\ Strg+Alt+Entf\r		\b, Microsoft Windows XP Bootloader NTFS (german)
75840427ccaSGordon Tetlow#>3	string	NTFS\ \ \ \040
759b6cee71dSXin LI>313	string	A\ disk\ read\ error\ occurred.\r
76040427ccaSGordon Tetlow>>345	string	A\ kernel\ file\ is\ missing\040
761b6cee71dSXin LI>>>370	string	from\ the\ disk.\r
762b6cee71dSXin LI>>>>484	string	NTLDR\ is\ compressed
76340427ccaSGordon Tetlow>>>>>429 string	Insert\ a\ system\ diskette\040
764b6cee71dSXin LI>>>>>>454 string and\ restart\r\nthe\ system.\r		\b, Microsoft Windows XP Bootloader NTFS
765b6cee71dSXin LI# DOS loader variants different languages,offsets
766b6cee71dSXin LI>472	ubyte&0xDF	>0
767b6cee71dSXin LI>>389	string	Invalid\ system\ disk\xFF\r\n
768b6cee71dSXin LI>>>411	string	Disk\ I/O\ error
76940427ccaSGordon Tetlow>>>>428	string	Replace\ the\ disk,\ and\040
770b6cee71dSXin LI>>>>>455 string	press\ any\ key				\b, Microsoft Windows 98 Bootloader
771b6cee71dSXin LI#IO.SYS
772b6cee71dSXin LI>>>>>>472	ubyte&0xDF	>0
773b6cee71dSXin LI>>>>>>>472	string		x 			\b %-.2s
774b6cee71dSXin LI>>>>>>>>474	ubyte&0xDF	>0
775b6cee71dSXin LI>>>>>>>>>474	string		x 			\b%-.5s
776b6cee71dSXin LI>>>>>>>>>>479	ubyte&0xDF	>0
777b6cee71dSXin LI>>>>>>>>>>>479 string		x 			\b%-.1s
778b6cee71dSXin LI>>>>>>>480	ubyte&0xDF	>0
779b6cee71dSXin LI>>>>>>>>480	string		x 			\b.%-.3s
780b6cee71dSXin LI#MSDOS.SYS
781b6cee71dSXin LI>>>>>>>483	ubyte&0xDF	>0			\b+
782b6cee71dSXin LI>>>>>>>>483	string		x 			\b%-.5s
783b6cee71dSXin LI>>>>>>>>>488	ubyte&0xDF	>0
784b6cee71dSXin LI>>>>>>>>>>488	string		x 			\b%-.3s
785b6cee71dSXin LI>>>>>>>>491	ubyte&0xDF	>0
786b6cee71dSXin LI>>>>>>>>>491	string		x 			\b.%-.3s
787b6cee71dSXin LI#
788b6cee71dSXin LI>>390	string	Invalid\ system\ disk\xFF\r\n
789b6cee71dSXin LI>>>412	string	Disk\ I/O\ error\xFF\r\n
79040427ccaSGordon Tetlow>>>>429	string	Replace\ the\ disk,\ and\040
791b6cee71dSXin LI>>>>>451 string	then\ press\ any\ key\r			\b, Microsoft Windows 98 Bootloader
792b6cee71dSXin LI>>388	string	Ungueltiges\ System\ \xFF\r\n
793b6cee71dSXin LI>>>410	string	E/A-Fehler\ \ \ \ \xFF\r\n
79440427ccaSGordon Tetlow>>>>427	string	Datentraeger\ wechseln\ und\040
795b6cee71dSXin LI>>>>>453 string	Taste\ druecken\r			\b, Microsoft Windows 95/98/ME Bootloader (german)
796b6cee71dSXin LI#WINBOOT.SYS only not spaces (0xDF)
797b6cee71dSXin LI>>>>>>497	ubyte&0xDF	>0
798b6cee71dSXin LI>>>>>>>497	string		x 			%-.5s
799b6cee71dSXin LI>>>>>>>>502	ubyte&0xDF	>0
800b6cee71dSXin LI>>>>>>>>>502	string		x 			\b%-.1s
801b6cee71dSXin LI>>>>>>>>>>503	ubyte&0xDF	>0
802b6cee71dSXin LI>>>>>>>>>>>503	string		x 			\b%-.1s
803b6cee71dSXin LI>>>>>>>>>>>>504	ubyte&0xDF	>0
804b6cee71dSXin LI>>>>>>>>>>>>>504 string		x 			\b%-.1s
805b6cee71dSXin LI>>>>>>505	ubyte&0xDF	>0
806b6cee71dSXin LI>>>>>>>505	string		x 			\b.%-.3s
807b6cee71dSXin LI#IO.SYS
808b6cee71dSXin LI>>>>>>472	ubyte&0xDF	>0			or
809b6cee71dSXin LI>>>>>>>472	string		x 			\b %-.2s
810b6cee71dSXin LI>>>>>>>>474	ubyte&0xDF	>0
811b6cee71dSXin LI>>>>>>>>>474	string		x 			\b%-.5s
812b6cee71dSXin LI>>>>>>>>>>479	ubyte&0xDF	>0
813b6cee71dSXin LI>>>>>>>>>>>479 string		x 			\b%-.1s
814b6cee71dSXin LI>>>>>>>480	ubyte&0xDF	>0
815b6cee71dSXin LI>>>>>>>>480	string		x 			\b.%-.3s
816b6cee71dSXin LI#MSDOS.SYS
817b6cee71dSXin LI>>>>>>>483	ubyte&0xDF	>0			\b+
818b6cee71dSXin LI>>>>>>>>483	string		x 			\b%-.5s
819b6cee71dSXin LI>>>>>>>>>488	ubyte&0xDF	>0
820b6cee71dSXin LI>>>>>>>>>>488	string		x 			\b%-.3s
821b6cee71dSXin LI>>>>>>>>491	ubyte&0xDF	>0
822b6cee71dSXin LI>>>>>>>>>491	string		x 			\b.%-.3s
823b6cee71dSXin LI#
824b6cee71dSXin LI>>390	string	Ungueltiges\ System\ \xFF\r\n
825b6cee71dSXin LI>>>412	string	E/A-Fehler\ \ \ \ \xFF\r\n
82640427ccaSGordon Tetlow>>>>429	string	Datentraeger\ wechseln\ und\040
827b6cee71dSXin LI>>>>>455 string	Taste\ druecken\r			\b, Microsoft Windows 95/98/ME Bootloader (German)
828b6cee71dSXin LI#WINBOOT.SYS only not spaces (0xDF)
829b6cee71dSXin LI>>>>>>497	ubyte&0xDF	>0
830b6cee71dSXin LI>>>>>>>497	string		x 			%-.7s
831b6cee71dSXin LI>>>>>>>>504	ubyte&0xDF	>0
832b6cee71dSXin LI>>>>>>>>>504	string		x 			\b%-.1s
833b6cee71dSXin LI>>>>>>505	ubyte&0xDF	>0
834b6cee71dSXin LI>>>>>>>505	string		x 			\b.%-.3s
835b6cee71dSXin LI#IO.SYS
836b6cee71dSXin LI>>>>>>472	ubyte&0xDF	>0			or
837b6cee71dSXin LI>>>>>>>472	string		x 			\b %-.2s
838b6cee71dSXin LI>>>>>>>>474	ubyte&0xDF	>0
839b6cee71dSXin LI>>>>>>>>>474	string		x 			\b%-.6s
840b6cee71dSXin LI>>>>>>>480	ubyte&0xDF	>0
841b6cee71dSXin LI>>>>>>>>480	string		x 			\b.%-.3s
842b6cee71dSXin LI#MSDOS.SYS
843b6cee71dSXin LI>>>>>>>483	ubyte&0xDF	>0			\b+
844b6cee71dSXin LI>>>>>>>>483	string		x 			\b%-.5s
845b6cee71dSXin LI>>>>>>>>>488	ubyte&0xDF	>0
846b6cee71dSXin LI>>>>>>>>>>488	string		x 			\b%-.3s
847b6cee71dSXin LI>>>>>>>>491	ubyte&0xDF	>0
848b6cee71dSXin LI>>>>>>>>>491	string		x 			\b.%-.3s
849b6cee71dSXin LI#
850b6cee71dSXin LI>>389	string	Ungueltiges\ System\ \xFF\r\n
851b6cee71dSXin LI>>>411	string	E/A-Fehler\ \ \ \ \xFF\r\n
85240427ccaSGordon Tetlow>>>>428	string	Datentraeger\ wechseln\ und\040
853b6cee71dSXin LI>>>>>454 string	Taste\ druecken\r			\b, Microsoft Windows 95/98/ME Bootloader (GERMAN)
854b6cee71dSXin LI# DOS names like IO.SYS,WINBOOT.SYS,MSDOS.SYS,WINBOOT.INI are 8 right space padded bytes+3 bytes
855b6cee71dSXin LI>>>>>>472	string		x 			%-.2s
856b6cee71dSXin LI>>>>>>>474	ubyte&0xDF	>0
857b6cee71dSXin LI>>>>>>>>474	string		x 			\b%-.5s
858b6cee71dSXin LI>>>>>>>>479	ubyte&0xDF	>0
859b6cee71dSXin LI>>>>>>>>>479	string		x 			\b%-.1s
860b6cee71dSXin LI>>>>>>480	ubyte&0xDF	>0
861b6cee71dSXin LI>>>>>>>480	string		x 			\b.%-.3s
862b6cee71dSXin LI>>>>>>483	ubyte&0xDF	>0			\b+
863b6cee71dSXin LI>>>>>>>483	string		x 			\b%-.5s
864b6cee71dSXin LI>>>>>>>488	ubyte&0xDF	>0
865b6cee71dSXin LI>>>>>>>>488	string		x 			\b%-.2s
866b6cee71dSXin LI>>>>>>>>490	ubyte&0xDF	>0
867b6cee71dSXin LI>>>>>>>>>490	string		x 			\b%-.1s
868b6cee71dSXin LI>>>>>>>491	ubyte&0xDF	>0
869b6cee71dSXin LI>>>>>>>>491	string		x 			\b.%-.3s
870b6cee71dSXin LI>479	ubyte&0xDF	>0
87140427ccaSGordon Tetlow>>416	string	Kein\ System\ oder\040
872b6cee71dSXin LI>>>433	string	Laufwerksfehler
873b6cee71dSXin LI>>>>450	string	Wechseln\ und\ Taste\ dr\201cken	\b, Microsoft DOS Bootloader (german)
874b6cee71dSXin LI#IO.SYS
875b6cee71dSXin LI>>>>>479	string		x 			\b %-.2s
876b6cee71dSXin LI>>>>>>481	ubyte&0xDF	>0
877b6cee71dSXin LI>>>>>>>481	string		x 			\b%-.6s
878b6cee71dSXin LI>>>>>487	ubyte&0xDF	>0
879b6cee71dSXin LI>>>>>>487	string		x 			\b.%-.3s
880b6cee71dSXin LI#MSDOS.SYS
881b6cee71dSXin LI>>>>>>490	ubyte&0xDF	>0			\b+
882b6cee71dSXin LI>>>>>>>490	string		x 			\b%-.5s
883b6cee71dSXin LI>>>>>>>>495	ubyte&0xDF	>0
884b6cee71dSXin LI>>>>>>>>>495	string		x 			\b%-.3s
885b6cee71dSXin LI>>>>>>>498	ubyte&0xDF	>0
886b6cee71dSXin LI>>>>>>>>498	string		x 			\b.%-.3s
887b6cee71dSXin LI#
88840427ccaSGordon Tetlow>376	search/41	Non-System\ disk\ or\040
889b6cee71dSXin LI>>395	search/41	disk\ error\r
89040427ccaSGordon Tetlow>>>407	search/41	Replace\ and\040
891b6cee71dSXin LI>>>>419	search/41	press\ 				\b,
892b6cee71dSXin LI>>>>419	search/41	strike\ 			\b, old
893b6cee71dSXin LI>>>>426	search/41	any\ key\ when\ ready\r		MS or PC-DOS bootloader
894b6cee71dSXin LI#449			Disk\ Boot\ failure\r		MS 3.21
895b6cee71dSXin LI#466			Boot\ Failure\r			MS 3.30
896b6cee71dSXin LI>>>>>468 search/18	\0
897b6cee71dSXin LI#IO.SYS,IBMBIO.COM
898b6cee71dSXin LI>>>>>>&0	string		x 			\b %-.2s
899b6cee71dSXin LI>>>>>>>&-20	ubyte&0xDF	>0
900b6cee71dSXin LI>>>>>>>>&-1	string		x 			\b%-.4s
901b6cee71dSXin LI>>>>>>>>>&-16	ubyte&0xDF	>0
902b6cee71dSXin LI>>>>>>>>>>&-1	string		x 			\b%-.2s
903b6cee71dSXin LI>>>>>>&8	ubyte&0xDF	>0			\b.
904b6cee71dSXin LI>>>>>>>&-1	string		x 			\b%-.3s
905b6cee71dSXin LI#MSDOS.SYS,IBMDOS.COM
906b6cee71dSXin LI>>>>>>&11	ubyte&0xDF	>0			\b+
907b6cee71dSXin LI>>>>>>>&-1	string		x 			\b%-.5s
908b6cee71dSXin LI>>>>>>>>&-6	ubyte&0xDF	>0
909b6cee71dSXin LI>>>>>>>>>&-1	string		x 			\b%-.1s
910b6cee71dSXin LI>>>>>>>>>>&-5	ubyte&0xDF	>0
911b6cee71dSXin LI>>>>>>>>>>>&-1	string		x 			\b%-.2s
912b6cee71dSXin LI>>>>>>>&7	ubyte&0xDF	>0			\b.
913b6cee71dSXin LI>>>>>>>>&-1	string		x 			\b%-.3s
914b6cee71dSXin LI>441	string	Cannot\ load\ from\ harddisk.\n\r
91540427ccaSGordon Tetlow>>469	string	Insert\ Systemdisk\040
916b6cee71dSXin LI>>>487	string	and\ press\ any\ key.\n\r		\b, MS (2.11) DOS bootloader
917b6cee71dSXin LI#>43	string	\224R-LOADER\ \ SYS			=label
918b6cee71dSXin LI>54	string	SYS
919b6cee71dSXin LI>>324	string	VASKK
920b6cee71dSXin LI>>>495	string	NEWLDR\0				\b, DR-DOS Bootloader (LOADER.SYS)
921b6cee71dSXin LI#
922b6cee71dSXin LI>98	string	Press\ a\ key\ to\ retry\0\r
923b6cee71dSXin LI>>120	string	Cannot\ find\ file\ \0\r
924b6cee71dSXin LI>>>139	string	Disk\ read\ error\0\r
925b6cee71dSXin LI>>>>156	string	Loading\ ...\0				\b, DR-DOS (3.41) Bootloader
926b6cee71dSXin LI#DRBIOS.SYS
927b6cee71dSXin LI>>>>>44		ubyte&0xDF	>0
928b6cee71dSXin LI>>>>>>44	string		x			\b %-.6s
929b6cee71dSXin LI>>>>>>>50	ubyte&0xDF	>0
930b6cee71dSXin LI>>>>>>>>50	string		x 			\b%-.2s
931b6cee71dSXin LI>>>>>>52	ubyte&0xDF	>0
932b6cee71dSXin LI>>>>>>>52	string		x 			\b.%-.3s
933b6cee71dSXin LI#
934b6cee71dSXin LI>70	string	IBMBIO\ \ COM
93540427ccaSGordon Tetlow>>472	string	Cannot\ load\ DOS!\040
936b6cee71dSXin LI>>>489	string	Any\ key\ to\ retry			\b, DR-DOS Bootloader
93740427ccaSGordon Tetlow>>471	string	Cannot\ load\ DOS\040
938b6cee71dSXin LI>>487	string	press\ key\ to\ retry			\b, Open-DOS Bootloader
939b6cee71dSXin LI#??
940b6cee71dSXin LI>444	string	KERNEL\ \ SYS
941b6cee71dSXin LI>>314	string	BOOT\ error!				\b, FREE-DOS Bootloader
942b6cee71dSXin LI>499	string	KERNEL\ \ SYS
943b6cee71dSXin LI>>305	string	BOOT\ err!\0				\b, Free-DOS Bootloader
944b6cee71dSXin LI>449	string	KERNEL\ \ SYS
945b6cee71dSXin LI>>319	string	BOOT\ error!				\b, FREE-DOS 0.5 Bootloader
946b6cee71dSXin LI#
947b6cee71dSXin LI>449	string	Loading\ FreeDOS
948b6cee71dSXin LI>>0x1AF		ulelong		>0			\b, FREE-DOS 0.95,1.0 Bootloader
949b6cee71dSXin LI>>>497		ubyte&0xDF	>0
950b6cee71dSXin LI>>>>497		string		x 			\b %-.6s
951b6cee71dSXin LI>>>>>503	ubyte&0xDF	>0
952b6cee71dSXin LI>>>>>>503	string		x 			\b%-.1s
953b6cee71dSXin LI>>>>>>>504	ubyte&0xDF	>0
954b6cee71dSXin LI>>>>>>>>504	string		x 			\b%-.1s
955b6cee71dSXin LI>>>>505		ubyte&0xDF	>0
956b6cee71dSXin LI>>>>>505	string		x 			\b.%-.3s
957b6cee71dSXin LI#
958b6cee71dSXin LI>331	string	Error!.0				\b, FREE-DOS 1.0 bootloader
959b6cee71dSXin LI#
960b6cee71dSXin LI>125	string	Loading\ FreeDOS...\r
961b6cee71dSXin LI>>311	string	BOOT\ error!\r				\b, FREE-DOS bootloader
962b6cee71dSXin LI>>>441		ubyte&0xDF	>0
963b6cee71dSXin LI>>>>441		string		x 			\b %-.6s
964b6cee71dSXin LI>>>>>447	ubyte&0xDF	>0
965b6cee71dSXin LI>>>>>>447	string		x 			\b%-.1s
966b6cee71dSXin LI>>>>>>>448	ubyte&0xDF	>0
967b6cee71dSXin LI>>>>>>>>448	string		x 			\b%-.1s
968b6cee71dSXin LI>>>>449		ubyte&0xDF	>0
969b6cee71dSXin LI>>>>>449	string		x 			\b.%-.3s
970b6cee71dSXin LI>124	string	FreeDOS\0
971b6cee71dSXin LI>>331	string	\ err\0					\b, FREE-DOS BETa 0.9 Bootloader
972b6cee71dSXin LI# DOS names like KERNEL.SYS,KERNEL16.SYS,KERNEL32.SYS,METAKERN.SYS are 8 right space padded bytes+3 bytes
973b6cee71dSXin LI>>>497		ubyte&0xDF	>0
974b6cee71dSXin LI>>>>497		string		x 			\b %-.6s
975b6cee71dSXin LI>>>>>503	ubyte&0xDF	>0
976b6cee71dSXin LI>>>>>>503	string		x 			\b%-.1s
977b6cee71dSXin LI>>>>>>>504	ubyte&0xDF	>0
978b6cee71dSXin LI>>>>>>>>504	string		x 			\b%-.1s
979b6cee71dSXin LI>>>>505		ubyte&0xDF	>0
980b6cee71dSXin LI>>>>>505	string		x 			\b.%-.3s
981b6cee71dSXin LI>>333	string	\ err\0					\b, FREE-DOS BEta 0.9 Bootloader
982b6cee71dSXin LI>>>497		ubyte&0xDF	>0
983b6cee71dSXin LI>>>>497		string		x 			\b %-.6s
984b6cee71dSXin LI>>>>>503	ubyte&0xDF	>0
985b6cee71dSXin LI>>>>>>503	string		x 			\b%-.1s
986b6cee71dSXin LI>>>>>>>504	ubyte&0xDF	>0
987b6cee71dSXin LI>>>>>>>>504	string		x 			\b%-.1s
988b6cee71dSXin LI>>>>505		ubyte&0xDF	>0
989b6cee71dSXin LI>>>>>505	string		x 			\b.%-.3s
990b6cee71dSXin LI>>334	string	\ err\0					\b, FREE-DOS Beta 0.9 Bootloader
991b6cee71dSXin LI>>>497		ubyte&0xDF	>0
992b6cee71dSXin LI>>>>497		string		x 			\b %-.6s
993b6cee71dSXin LI>>>>>503	ubyte&0xDF	>0
994b6cee71dSXin LI>>>>>>503	string		x 			\b%-.1s
995b6cee71dSXin LI>>>>>>>504	ubyte&0xDF	>0
996b6cee71dSXin LI>>>>>>>>504	string		x 			\b%-.1s
997b6cee71dSXin LI>>>>505		ubyte&0xDF	>0
998b6cee71dSXin LI>>>>>505	string		x 			\b.%-.3s
99940427ccaSGordon Tetlow>336	string	Error!\040
1000b6cee71dSXin LI>>343	string	Hit\ a\ key\ to\ reboot.		\b, FREE-DOS Beta 0.9sr1 Bootloader
1001b6cee71dSXin LI>>>497		ubyte&0xDF	>0
1002b6cee71dSXin LI>>>>497		string		x 			\b %-.6s
1003b6cee71dSXin LI>>>>>503	ubyte&0xDF	>0
1004b6cee71dSXin LI>>>>>>503	string		x 			\b%-.1s
1005b6cee71dSXin LI>>>>>>>504	ubyte&0xDF	>0
1006b6cee71dSXin LI>>>>>>>>504	string		x 			\b%-.1s
1007b6cee71dSXin LI>>>>505		ubyte&0xDF	>0
1008b6cee71dSXin LI>>>>>505	string		x 			\b.%-.3s
1009b6cee71dSXin LI# added by Joerg Jenderek
101048c779cdSXin LI# https://www.visopsys.org/
101148c779cdSXin LI# https://partitionlogic.org.uk/
1012b6cee71dSXin LI# OEM-ID=Visopsys
1013b6cee71dSXin LI>478		ulelong	0
101440427ccaSGordon Tetlow>>(1.b+326)	string	I/O\ Error\ reading\040
1015b6cee71dSXin LI>>>(1.b+344)	string	Visopsys\ loader\r
1016b6cee71dSXin LI>>>>(1.b+361)	string	Press\ any\ key\ to\ continue.\r	\b, Visopsys loader
1017b6cee71dSXin LI# http://alexfru.chat.ru/epm.html#bootprog
1018b6cee71dSXin LI>494	ubyte	>0x4D
1019b6cee71dSXin LI>>495	string	>E
1020b6cee71dSXin LI>>>495	string	<S
1021b6cee71dSXin LI#OEM-ID is not reliable
1022b6cee71dSXin LI>>>>3	string	BootProg
1023b6cee71dSXin LI# It just looks for a program file name at the root directory
1024b6cee71dSXin LI# and loads corresponding file with following execution.
1025b6cee71dSXin LI# DOS names like STARTUP.BIN,STARTUPC.COM,STARTUPE.EXE are 8 right space padded bytes+3 bytes
1026b6cee71dSXin LI>>>>499			ubyte&0xDF	>0		\b, COM/EXE Bootloader
1027b6cee71dSXin LI>>>>>499		use		DOS-filename
1028b6cee71dSXin LI#If the boot sector fails to read any other sector,
1029b6cee71dSXin LI#it prints a very short message ("RE") to the screen and hangs the computer.
1030b6cee71dSXin LI#If the boot sector fails to find needed program in the root directory,
1031b6cee71dSXin LI#it also hangs with another message ("NF").
1032b6cee71dSXin LI>>>>>492		string		RENF		\b, FAT (12 bit)
1033b6cee71dSXin LI>>>>>495		string		RENF		\b, FAT (16 bit)
1034b6cee71dSXin LI#If the boot sector fails to read any other sector,
1035b6cee71dSXin LI#it prints a very short message ("RE") to the screen and hangs the computer.
1036b6cee71dSXin LI# x86 bootloader end
1037b6cee71dSXin LI
103848c779cdSXin LI# added by Joerg Jenderek at Feb 2013 according to https://thestarman.pcministry.com/asm/mbr/MSWIN41.htm#FSINFO
103948c779cdSXin LI# and https://en.wikipedia.org/wiki/File_Allocation_Table#FS_Information_Sector
1040b6cee71dSXin LI>0		string		RRaA
1041b6cee71dSXin LI>>0x1E4		string		rrAa		\b, FSInfosector
1042b6cee71dSXin LI#>>0x1FC	uleshort	=0		SHOULD BE ZERO
1043b6cee71dSXin LI>>>0x1E8	ulelong		<0xffffffff	\b, %u free clusters
1044b6cee71dSXin LI>>>0x1EC	ulelong		<0xffffffff	\b, last allocated cluster %u
1045b6cee71dSXin LI
1046b6cee71dSXin LI# updated by Joerg Jenderek at Sep 2007
1047b6cee71dSXin LI>3	ubyte	0
1048b6cee71dSXin LI#no active flag
1049b6cee71dSXin LI>>446	ubyte	0
1050b6cee71dSXin LI# partition 1 not empty
1051b6cee71dSXin LI>>>450	ubyte	>0
1052b6cee71dSXin LI# partitions 3,4 empty
1053b6cee71dSXin LI>>>>482		ubyte	0
1054b6cee71dSXin LI>>>>>498	ubyte	0
1055b6cee71dSXin LI# partition 2 ID=0,5,15
1056b6cee71dSXin LI>>>>>>466	ubyte	<0x10
1057b6cee71dSXin LI>>>>>>>466	ubyte	0x05			\b, extended partition table
1058b6cee71dSXin LI>>>>>>>466	ubyte	0x0F			\b, extended partition table (LBA)
1059b6cee71dSXin LI>>>>>>>466	ubyte	0x0			\b, extended partition table (last)
1060b6cee71dSXin LI
1061b6cee71dSXin LI# DOS x86 sector separated and moved from "DOS/MBR boot sector" by Joerg Jenderek at May 2011
1062b6cee71dSXin LI
1063b6cee71dSXin LI>0x200	lelong	0x82564557		\b, BSD disklabel
1064b6cee71dSXin LI
1065b6cee71dSXin LI# by Joerg Jenderek at Apr 2013
1066b6cee71dSXin LI#	Print the DOS filenames from directory entry form with 8 right space padded bytes + 3 bytes for extension
1067b6cee71dSXin LI#	like IO.SYS. MSDOS.SYS , KERNEL.SYS , DRBIO.SYS
1068b6cee71dSXin LI0	name			DOS-filename
1069b6cee71dSXin LI# space=0x20 (00100000b) means empty
1070b6cee71dSXin LI>0			ubyte&0xDF	>0
1071b6cee71dSXin LI>>0			ubyte		x 		\b%c
1072b6cee71dSXin LI>>>1			ubyte&0xDF	>0
1073b6cee71dSXin LI>>>>1			ubyte		x 		\b%c
1074b6cee71dSXin LI>>>>>2			ubyte&0xDF	>0
1075b6cee71dSXin LI>>>>>>2			ubyte		x 		\b%c
1076b6cee71dSXin LI>>>>>>>3		ubyte&0xDF	>0
1077b6cee71dSXin LI>>>>>>>>3		ubyte		x 		\b%c
1078b6cee71dSXin LI>>>>>>>>>4		ubyte&0xDF	>0
1079b6cee71dSXin LI>>>>>>>>>>4		ubyte		x 		\b%c
1080b6cee71dSXin LI>>>>>>>>>>>5		ubyte&0xDF	>0
1081b6cee71dSXin LI>>>>>>>>>>>>5		ubyte		x 		\b%c
1082b6cee71dSXin LI>>>>>>>>>>>>>6		ubyte&0xDF	>0
1083b6cee71dSXin LI>>>>>>>>>>>>>>6		ubyte		x 		\b%c
1084b6cee71dSXin LI>>>>>>>>>>>>>>>7	ubyte&0xDF	>0
1085b6cee71dSXin LI>>>>>>>>>>>>>>>>7	ubyte		x 		\b%c
1086b6cee71dSXin LI# DOS filename extension
1087b6cee71dSXin LI>>8			ubyte&0xDF	>0		\b.
1088b6cee71dSXin LI>>>8			ubyte		x 		\b%c
1089b6cee71dSXin LI>>>>9			ubyte&0xDF	>0
1090b6cee71dSXin LI>>>>>9			ubyte		x 		\b%c
1091b6cee71dSXin LI>>>>>>10		ubyte&0xDF	>0
1092b6cee71dSXin LI>>>>>>>10		ubyte		x 		\b%c
1093b6cee71dSXin LI#	Print 2 following DOS filenames from directory entry form
1094b6cee71dSXin LI#	like IO.SYS+MSDOS.SYS or ibmbio.com+ibmdos.com
1095b6cee71dSXin LI0	name			2xDOS-filename
1096b6cee71dSXin LI# display 1 space
1097b6cee71dSXin LI>0			ubyte		x		\b
1098b6cee71dSXin LI>0			use		DOS-filename
1099b6cee71dSXin LI>11			ubyte		x		\b+
1100b6cee71dSXin LI>11			use		DOS-filename
1101b6cee71dSXin LI
11025b990a94SBaptiste Daroussin# https://en.wikipedia.org/wiki/Master_boot_record#PTE
1103b6cee71dSXin LI# display standard partition table
1104b6cee71dSXin LI0	name				partition-table
1105b6cee71dSXin LI#>0		ubyte		x	PARTITION-TABLE
1106b6cee71dSXin LI# test and display 1st til 4th partition table entry
1107b6cee71dSXin LI>0		use			partition-entry-test
1108b6cee71dSXin LI>16		use			partition-entry-test
1109b6cee71dSXin LI>32		use			partition-entry-test
1110b6cee71dSXin LI>48		use			partition-entry-test
1111b6cee71dSXin LI#		test for entry of partition table
1112b6cee71dSXin LI0	name				partition-entry-test
1113b6cee71dSXin LI# partition type ID > 0
1114b6cee71dSXin LI>4		ubyte		>0
1115b6cee71dSXin LI# active flag 0
1116b6cee71dSXin LI>>0		ubyte		0
1117b6cee71dSXin LI>>>0		use		partition-entry
1118b6cee71dSXin LI# active flag 0x80, 0x81, ...
1119b6cee71dSXin LI>>0		ubyte		>0x7F
1120b6cee71dSXin LI>>>0		use		partition-entry
1121b6cee71dSXin LI#		Print entry of partition table
1122b6cee71dSXin LI0	name				partition-entry
1123b6cee71dSXin LI# partition type ID > 0
1124b6cee71dSXin LI>4		ubyte		>0	\b; partition
1125b6cee71dSXin LI>>64		leshort		0xAA55	1
1126b6cee71dSXin LI>>48		leshort		0xAA55	2
1127b6cee71dSXin LI>>32		leshort		0xAA55	3
1128b6cee71dSXin LI>>16		leshort		0xAA55	4
112943a5ec4eSXin LI>>4		ubyte		x	: ID=%#x
1130b6cee71dSXin LI>>0		ubyte&0x80	0x80	\b, active
113143a5ec4eSXin LI>>0		ubyte		>0x80	%#x
1132b6cee71dSXin LI>>1		ubyte		x	\b, start-CHS (
1133b6cee71dSXin LI>>1		use		partition-chs
1134b6cee71dSXin LI>>5		ubyte		x	\b), end-CHS (
1135b6cee71dSXin LI>>5		use		partition-chs
1136b6cee71dSXin LI>>8		ulelong		x	\b), startsector %u
1137b6cee71dSXin LI>>12		ulelong		x	\b, %u sectors
1138b6cee71dSXin LI#		Print cylinder,head,sector (CHS) of partition entry
1139b6cee71dSXin LI0	name				partition-chs
1140b6cee71dSXin LI# cylinder
1141b6cee71dSXin LI>1		ubyte		x	\b0x
1142b6cee71dSXin LI>1		ubyte&0xC0	0x40	\b1
1143b6cee71dSXin LI>1		ubyte&0xC0	0x80	\b2
1144b6cee71dSXin LI>1		ubyte&0xC0	0xC0	\b3
1145b6cee71dSXin LI>2		ubyte		x	\b%x
1146b6cee71dSXin LI# head
1147b6cee71dSXin LI>0		ubyte		x	\b,%u
1148b6cee71dSXin LI# sector
1149b6cee71dSXin LI>1		ubyte&0x3F	x	\b,%u
1150b6cee71dSXin LI
1151b6cee71dSXin LI# FATX
1152b6cee71dSXin LI0		string		FATX		FATX filesystem data
1153b6cee71dSXin LI
1154b6cee71dSXin LI# romfs filesystems - Juan Cespedes <cespedes@debian.org>
1155b6cee71dSXin LI0	string		-rom1fs-	romfs filesystem, version 1
1156b6cee71dSXin LI>8	belong	x			%d bytes,
1157b6cee71dSXin LI>16	string	x			named %s.
1158b6cee71dSXin LI
1159b6cee71dSXin LI# netboot image - Juan Cespedes <cespedes@debian.org>
1160b6cee71dSXin LI0	lelong		0x1b031336L	Netboot image,
1161b6cee71dSXin LI>4	lelong&0xFFFFFF00	0
1162b6cee71dSXin LI>>4	lelong&0x100	0x000		mode 2
1163b6cee71dSXin LI>>4	lelong&0x100	0x100		mode 3
1164b6cee71dSXin LI>4	lelong&0xFFFFFF00	!0	unknown mode
1165b6cee71dSXin LI
1166b6cee71dSXin LI0x18b	string	OS/2	OS/2 Boot Manager
1167b6cee71dSXin LI
1168b6cee71dSXin LI# updated by Joerg Jenderek at Oct 2008 and Sep 2012
116948c779cdSXin LI# https://syslinux.zytor.com/iso.php
1170b6cee71dSXin LI# tested with versions 1.47,1.48,1.49,1.50,1.62,1.76,2.00,2.10;3.00,3.11,3.31,;3.70,3.71,3.73,3.75,3.80,3.82,3.84,3.86,4.01,4.03 and 4.05
1171b6cee71dSXin LI# assembler instructions: cli;jmp 0:7Cyy (yy=0x40,0x5e,0x6c,0x6e,0x77);nop;nop
1172b6cee71dSXin LI0	ulequad&0x909000007cc0eafa	0x909000007c40eafa
1173b6cee71dSXin LI>631	search/689	ISOLINUX\ 	isolinux Loader
1174b6cee71dSXin LI>>&0	string		x		(version %-4.4s)
117548c779cdSXin LI# https://syslinux.zytor.com/pxe.php
1176b6cee71dSXin LI# assembler instructions: jmp 7C05
1177b6cee71dSXin LI0	ulelong	0x007c05ea		pxelinux loader (version 2.13 or older)
1178b6cee71dSXin LI# assembler instructions: pushfd;pushad
1179b6cee71dSXin LI0	ulelong	0x60669c66		pxelinux loader
1180b6cee71dSXin LI# assembler instructions: jmp 05
1181b6cee71dSXin LI0	ulelong	0xc00005ea		pxelinux loader (version 3.70 or newer)
118248c779cdSXin LI# https://syslinux.zytor.com/wiki/index.php/SYSLINUX
1183b6cee71dSXin LI0	string	LDLINUX\ SYS\ 		SYSLINUX loader
1184b6cee71dSXin LI>12	string	x			(older version %-4.4s)
1185b6cee71dSXin LI0	string	\r\nSYSLINUX\ 		SYSLINUX loader
1186b6cee71dSXin LI>11	string	x			(version %-4.4s)
1187b6cee71dSXin LI# syslinux updated and separated from "DOS/MBR boot sector" by Joerg Jenderek at Sep 2012
1188b6cee71dSXin LI# assembler instructions: jmp yy (yy=0x3c,0x58);nop;"SYSLINUX"
1189b6cee71dSXin LI0	ulelong&0x80909bEB	0x009018EB
1190b6cee71dSXin LI# OEM-ID not always "SYSLINUX"
1191b6cee71dSXin LI>434	search/47	Boot\ failed
1192b6cee71dSXin LI# followed by \r\n\0 or :\
1193b6cee71dSXin LI>>482	search/132	\0LDLINUX\ SYS		Syslinux bootloader (version 2.13 or older)
1194b6cee71dSXin LI>>1	ubyte		0x58			Syslinux bootloader (version 3.0-3.9)
1195b6cee71dSXin LI>459	search/30	Boot\ error\r\n\0
1196b6cee71dSXin LI>>1	ubyte		0x58			Syslinux bootloader (version 3.10 or newer)
1197b6cee71dSXin LI# SYSLINUX MBR updated and separated from "DOS/MBR boot sector" by Joerg Jenderek at Sep 2012
1198b6cee71dSXin LI# assembler instructions: mov di,0600h;mov cx,0100h
1199b6cee71dSXin LI16	search/4	\xbf\x00\x06\xb9\x00\x01
1200b6cee71dSXin LI# to display SYSLINUX MBR (36) before old DOS/MBR boot sector one with partition table (strength=50+21)
1201b6cee71dSXin LI!:strength +36
1202b6cee71dSXin LI>94	search/249	Missing\ operating\ system
1203b6cee71dSXin LI# followed by \r for versions older 3.35 , .\r for versions newer 3.52 and point for other
1204b6cee71dSXin LI# skip Ranish MBR
1205b6cee71dSXin LI>>408	search/4	HD1/\0
1206b6cee71dSXin LI>>408	default		x
1207b6cee71dSXin LI>>>250	search/118	\0Operating\ system\ load		SYSLINUX MBR
1208b6cee71dSXin LI# followed by "ing " or space
1209b6cee71dSXin LI>>>>292	search/98	error
1210b6cee71dSXin LI>>>>>&0	string		\r		    			(version 3.35 or older)
1211b6cee71dSXin LI>>>>>&0	string		.\r					(version 3.52 or newer)
1212b6cee71dSXin LI>>>>>&0	default		x					(version 3.36-3.51 )
1213b6cee71dSXin LI>368	search/106	\0Disk\ error\ on\ boot\r\n		SYSLINUX GPT-MBR
1214b6cee71dSXin LI>>156	search/10	\0Boot\ partition\ not\ found\r\n
1215b6cee71dSXin LI>>>270	search/10	\0OS\ not\ bootable\r\n			(version 3.86 or older)
1216b6cee71dSXin LI>>174	search/10	\0Missing\ OS\r\n
1217b6cee71dSXin LI>>>189	search/10	\0Multiple\ active\ partitions\r\n	(version 4.00 or newer)
1218b6cee71dSXin LI# SYSLINUX END
1219b6cee71dSXin LI
1220b6cee71dSXin LI# NetBSD mbr variants (master-boot-code version 1.22) added by Joerg Jenderek at Nov 2012
1221b6cee71dSXin LI# assembler instructions: xor ax,ax;mov	ax,ss;mov sp,0x7c00;mov	ax,
1222b6cee71dSXin LI0	ubequad		0x31c08ed0bc007c8e
1223b6cee71dSXin LI# mbr_bootsel magic before partition table not reliable with small ipl fragments
1224b6cee71dSXin LI#>444	uleshort	0xb5e1
1225b6cee71dSXin LI>0004	uleshort	x
1226b6cee71dSXin LI# ERRorTeXT
1227b6cee71dSXin LI>>181	search/166		Error\ \0\r\n				NetBSD mbr
122848c779cdSXin LI# NT Drive Serial Number https://thestarman.pcministry.com/asm/mbr/Win2kmbr.htm#DS
122943a5ec4eSXin LI>>>0x1B8	ubelong		>0					\b,Serial %#-.8x
1230b6cee71dSXin LI# BOOTSEL definitions contains assembler instructions: int 0x13;pop dx;push dx;push dx
1231b6cee71dSXin LI>>>0xbb		search/71	\xcd\x13\x5a\x52\x52			\b,bootselector
1232b6cee71dSXin LI# BOOT_EXTENDED definitions contains assembler instructions:
1233b6cee71dSXin LI# xchg ecx,edx;addl ecx,edx;movw lba_info,si;movb 0x42,ah;pop dx;push dx;int 0x13
1234b6cee71dSXin LI>>>0x96	search/1	\x66\x87\xca\x66\x01\xca\x66\x89\x16\x3a\x07\xbe\x32\x07\xb4\x42\x5a\x52\xcd\x13	\b,boot extended
1235b6cee71dSXin LI# COM_PORT_VAL definitions contains assembler instructions: outb al,dx;add 5,dl;inb %dx;test 0x40,al
1236b6cee71dSXin LI>>>0x130	search/55	\xee\x80\xc2\x05\xec\xa8\x40		\b,serial IO
1237b6cee71dSXin LI# not TERSE_ERROR
1238b6cee71dSXin LI>>>196		search/106	No\ active\ partition\0
1239b6cee71dSXin LI>>>>&0		string		Disk\ read\ error\0
1240b6cee71dSXin LI>>>>>&0		string		No\ operating\ system\0			\b,verbose
1241b6cee71dSXin LI# not NO_CHS definitions contains assembler instructions: pop dx;push dx;movb $8,ah;int0x13
1242b6cee71dSXin LI>>>0x7d		search/7	\x5a\x52\xb4\x08\xcd\x13		\b,CHS
1243b6cee71dSXin LI# not NO_LBA_CHECK definitions contains assembler instructions: movw 0x55aa,bx;movb 0x41,ah;pop	dx;push	dx;int 0x13
1244b6cee71dSXin LI>>>0xa4		search/84	\xbb\xaa\x55\xb4\x41\x5a\x52\xcd\x13	\b,LBA-check
1245b6cee71dSXin LI# assembler instructions: movw nametab,bx
1246b6cee71dSXin LI>>>0x26	    search/21	\xBB\x94\x07
1247b6cee71dSXin LI# not NO_BANNER definitions contains assembler instructions: mov banner,si;call message_crlf
1248b6cee71dSXin LI>>>>&-9	ubequad&0xBE00f0E800febb94	0xBE0000E80000bb94
1249b6cee71dSXin LI>>>>>181	search/166		Error\ \0
1250b6cee71dSXin LI# "a: disk" , "Fn: diskn" or "NetBSD MBR boot"
1251b6cee71dSXin LI>>>>>>&3	string			x				\b,"%s"
1252cd0b4959SXin LI>>>446	use		partition-table
1253b6cee71dSXin LI# Andrea Mazzoleni AdvanceCD mbr loader of http://advancemame.sourceforge.net/boot-readme.html
1254b6cee71dSXin LI# added by Joerg Jenderek at Nov 2012 for versions 1.3 - 1.4
1255b6cee71dSXin LI# assembler instructions: jmp short 0x58;nop;ASCII
1256b6cee71dSXin LI0	ubequad&0xeb58908000000000	0xeb58900000000000
1257b6cee71dSXin LI# assembler instructions: cli;xor ax,ax;mov ds,ax;mov es,ax;mov ss,
1258b6cee71dSXin LI>(1.b+2)	ubequad			0xfa31c08ed88ec08e
1259b6cee71dSXin LI# Error messages at end of code
1260b6cee71dSXin LI>>376		string	No\ operating\ system\r\n\0
1261b6cee71dSXin LI>>>398		string	Disk\ error\r\n\0FDD\0HDD\0
1262b6cee71dSXin LI>>>>419		string	\ EBIOS\r\n\0				AdvanceMAME mbr
1263b6cee71dSXin LI
126448c779cdSXin LI# Neil Turton mbr loader variant of https://www.chiark.greenend.org.uk/~neilt/mbr/
1265b6cee71dSXin LI# added by Joerg Jenderek at Mar 2011 for versions 1.0.0 - 1.1.11
1266b6cee71dSXin LI# for 1st version assembler instructions:	cld;xor ax,ax;mov DS,ax;MOV ES,AX;mov SI,
1267b6cee71dSXin LI# or  	  	  	    			cld;xor ax,ax;mov SS,ax;XOR SP,SP;mov DS,
1268b6cee71dSXin LI0	ulequad&0xcE1b40D48EC031FC	0x8E0000D08EC031FC
1269b6cee71dSXin LI# pointer to the data starting with Neil Turton signature string
1270b6cee71dSXin LI>(0x1BC.s)		string		NDTmbr
1271b6cee71dSXin LI>>&-14			string		1234F\0			Turton mbr (
1272b6cee71dSXin LI# parameters also viewed by install-mbr --list
1273b6cee71dSXin LI>>>(0x1BC.s+7)		ubyte		x			\b%u<=
1274b6cee71dSXin LI>>>(0x1BC.s+9)		ubyte		x			\bVersion<=%u
1275b6cee71dSXin LI#>>>(0x1BC.s+8)		ubyte		x			asm_flag_%x
1276b6cee71dSXin LI>>>(0x1BC.s+8)		ubyte&1		1			\b,Y2K-Fix
127748c779cdSXin LI# variant used by testdisk of https://www.cgsecurity.org/wiki/Menu_MBRCode
1278b6cee71dSXin LI>>>(0x1BC.s+8)		ubyte&2		2			\b,TestDisk
1279b6cee71dSXin LI#0x1~1,..,0x8~4,0x10~F,0x80~A enabled
128043a5ec4eSXin LI#>>>(0x1BC.s+10)		ubyte		x			\b,flags %#x
1281b6cee71dSXin LI#0x0~1,0x1~2,...,0x3~4,0x4~F,0x7~D default boot
128243a5ec4eSXin LI#>>>(0x1BC.s+11)		ubyte		x			\b,cfg_def %#x
1283b6cee71dSXin LI# for older versions
1284b6cee71dSXin LI>>>(0x1BC.s+9)		ubyte		<2
1285b6cee71dSXin LI#>>>>(0x1BC.s+12)	ubyte		18			\b,%hhu/18 seconds
1286b6cee71dSXin LI>>>>(0x1BC.s+12)	ubyte		!18			\b,%u/18 seconds
1287b6cee71dSXin LI# floppy A: or B:
128843a5ec4eSXin LI>>>>(0x1BC.s+13)	ubyte		<2			\b,floppy %#x
1289b6cee71dSXin LI>>>>(0x1BC.s+13)	ubyte		>1
1290b6cee71dSXin LI# 1st hard disc
129143a5ec4eSXin LI#>>>>>(0x1BC.s+13)	ubyte		0x80			\b,drive %#x
1292b6cee71dSXin LI# not 1st hard disc
129343a5ec4eSXin LI>>>>>(0x1BC.s+13)	ubyte		!0x80			\b,drive %#x
1294b6cee71dSXin LI# for version >= 2 maximal timeout can be 65534
1295b6cee71dSXin LI>>>(0x1BC.s+9)		ubyte		>1
1296b6cee71dSXin LI#>>>>(0x1BC.s+12)	uleshort	18			\b,%u/18 seconds
1297b6cee71dSXin LI>>>>(0x1BC.s+12)	uleshort	!18			\b,%u/18 seconds
1298b6cee71dSXin LI# floppy A: or B:
129943a5ec4eSXin LI>>>>(0x1BC.s+14)	ubyte		<2			\b,floppy %#x
1300b6cee71dSXin LI>>>>(0x1BC.s+14)	ubyte		>1
1301b6cee71dSXin LI# 1st hard disc
130243a5ec4eSXin LI#>>>>>(0x1BC.s+14)	ubyte		0x80			\b,drive %#x
1303b6cee71dSXin LI# not 1st hard disc
130443a5ec4eSXin LI>>>>>(0x1BC.s+14)	ubyte		!0x80			\b,drive %#x
1305b6cee71dSXin LI>>>0	ubyte		x					\b)
1306b6cee71dSXin LI
1307b6cee71dSXin LI# added by Joerg Jenderek
1308b6cee71dSXin LI# In the second sector (+0x200) are variables according to grub-0.97/stage2/asm.S or
1309b6cee71dSXin LI# grub-1.94/kern/i386/pc/startup.S
131048c779cdSXin LI# https://www.gnu.org/software/grub/manual/grub.html#Embedded-data
131143a5ec4eSXin LI# usual values are marked with comments to get only information of strange GRUB loaders
1312b6cee71dSXin LI0x200	uleshort		0x70EA
1313b6cee71dSXin LI# found only version 3.{1,2}
1314b6cee71dSXin LI>0x206		ubeshort	>0x0300
1315b6cee71dSXin LI# GRUB version (0.5.)95,0.93,0.94,0.96,0.97 > "00"
1316b6cee71dSXin LI>>0x212 	ubyte		>0x29
1317b6cee71dSXin LI>>>0x213 	ubyte		>0x29
1318b6cee71dSXin LI# not iso9660_stage1_5
1319b6cee71dSXin LI#>>>0	ulelong&0x00BE5652	0x00BE5652
1320b6cee71dSXin LI>>>>0x213 	ubyte		>0x29		GRand Unified Bootloader
1321b6cee71dSXin LI# config_file for stage1_5 is 0xffffffff + default "/boot/grub/stage2"
1322b6cee71dSXin LI>>>>0x217 	ubyte		0xFF		stage1_5
1323b6cee71dSXin LI>>>>0x217 	ubyte		<0xFF		stage2
1324b6cee71dSXin LI>>>>0x206	ubyte		x		\b version %u
1325b6cee71dSXin LI>>>>0x207	ubyte		x		\b.%u
1326b6cee71dSXin LI# module_size for 1.94
1327b6cee71dSXin LI>>>>0x208	ulelong		<0xffffff	\b, installed partition %u
1328b6cee71dSXin LI#>>>>0x208	ulelong		=0xffffff	\b, %lu (default)
1329b6cee71dSXin LI>>>>0x208	ulelong		>0xffffff	\b, installed partition %u
1330b6cee71dSXin LI# GRUB 0.5.95 unofficial
1331b6cee71dSXin LI>>>>0x20C	ulelong&0x2E300000 0x2E300000
1332b6cee71dSXin LI# 0=stage2	1=ffs	2=e2fs	3=fat	4=minix	5=reiserfs
133343a5ec4eSXin LI>>>>>0x20C	ubyte		x		\b, identifier %#x
133443a5ec4eSXin LI#>>>>>0x20D	ubyte		=0		\b, LBA flag %#x (default)
133543a5ec4eSXin LI>>>>>0x20D	ubyte		>0		\b, LBA flag %#x
1336b6cee71dSXin LI# GRUB version as string
1337b6cee71dSXin LI>>>>>0x20E 	string		>\0		\b, GRUB version %-s
1338b6cee71dSXin LI# for stage1_5 is 0xffffffff + config_file "/boot/grub/stage2" default
1339b6cee71dSXin LI>>>>>>0x215 	ulong		0xffffffff
1340b6cee71dSXin LI>>>>>>>0x219 	string		>\0		\b, configuration file %-s
1341b6cee71dSXin LI>>>>>>0x215 	ulong		!0xffffffff
1342b6cee71dSXin LI>>>>>>>0x215 	string		>\0		\b, configuration file %-s
1343b6cee71dSXin LI# newer GRUB versions
1344b6cee71dSXin LI>>>>0x20C	ulelong&0x2E300000 !0x2E300000
1345b6cee71dSXin LI##>>>>>0x20C	ulelong		=0		\b, saved entry %d (usual)
1346b6cee71dSXin LI>>>>>0x20C	ulelong		>0		\b, saved entry %d
1347b6cee71dSXin LI# for 1.94 contains kernel image size
1348b6cee71dSXin LI# for 0.93,0.94,0.96,0.97
1349b6cee71dSXin LI# 0=stage2	1=ffs	2=e2fs	3=fat	4=minix	5=reiserfs	6=vstafs	7=jfs	8=xfs	9=iso9660	a=ufs2
135043a5ec4eSXin LI>>>>>0x210	ubyte		x		\b, identifier %#x
1351b6cee71dSXin LI# The flag for LBA forcing is in most cases 0
135243a5ec4eSXin LI#>>>>>0x211	ubyte		=0		\b, LBA flag %#x (default)
135343a5ec4eSXin LI>>>>>0x211	ubyte		>0		\b, LBA flag %#x
1354b6cee71dSXin LI# GRUB version as string
1355b6cee71dSXin LI>>>>>0x212 	string		>\0		\b, GRUB version %-s
1356b6cee71dSXin LI# for stage1_5 is 0xffffffff + config_file "/boot/grub/stage2" default
1357b6cee71dSXin LI>>>>>0x217 	ulong		0xffffffff
1358b6cee71dSXin LI>>>>>>0x21b 	string		>\0		\b, configuration file %-s
1359b6cee71dSXin LI>>>>>0x217 	ulong		!0xffffffff
1360b6cee71dSXin LI>>>>>>0x217 	string		>\0		\b, configuration file %-s
1361b6cee71dSXin LI
1362b6cee71dSXin LI# DOS x86 sector updated and separated from "DOS/MBR boot sector" by Joerg Jenderek at May 2011
1363b6cee71dSXin LI# JuMP short     bootcodeoffset NOP assembler instructions will usually be EB xx 90
1364b6cee71dSXin LI# over BIOS parameter block (BPB)
136548c779cdSXin LI# https://thestarman.pcministry.com/asm/2bytejumps.htm#FWD
1366b6cee71dSXin LI# older drives may use Near JuMP instruction E9 xx xx
1367b6cee71dSXin LI# minimal short forward jump found 0x29 for bootloaders or 0x0
1368b6cee71dSXin LI# maximal short forward jump is 0x7f
1369b6cee71dSXin LI# OEM-ID is empty or contain readable bytes
1370b6cee71dSXin LI0		ulelong&0x804000E9	0x000000E9
1371cd0b4959SXin LI!:strength	+60
1372b6cee71dSXin LI# mtools-3.9.8/msdos.h
137343a5ec4eSXin LI# usual values are marked with comments to get only information of strange FAT systems
1374b6cee71dSXin LI# valid sectorsize must be a power of 2 from 32 to 32768
1375cd0b4959SXin LI>11		uleshort&0x001f	0
1376b6cee71dSXin LI>>11		uleshort	<32769
1377b6cee71dSXin LI>>>11		uleshort	>31
1378b6cee71dSXin LI>>>>21		ubyte&0xf0	0xF0
1379cd0b4959SXin LI>>>>>0		ubyte		0xEB		DOS/MBR boot sector
138043a5ec4eSXin LI>>>>>>1		ubyte		x		\b, code offset %#x+2
1381b6cee71dSXin LI>>>>>0		ubyte		0xE9
138243a5ec4eSXin LI>>>>>>1		uleshort	x		\b, code offset %#x+3
1383b6cee71dSXin LI>>>>>3		string		>\0		\b, OEM-ID "%-.8s"
1384b6cee71dSXin LI#http://mirror.href.com/thestarman/asm/debug/debug2.htm#IHC
1385b6cee71dSXin LI>>>>>>8		string		IHC		\b cached by Windows 9M
1386b6cee71dSXin LI>>>>>11		uleshort	>512		\b, Bytes/sector %u
1387b6cee71dSXin LI#>>>>>11	uleshort	=512		\b, Bytes/sector %u=512 (usual)
1388b6cee71dSXin LI>>>>>11		uleshort	<512		\b, Bytes/sector %u
1389b6cee71dSXin LI>>>>>13		ubyte		>1		\b, sectors/cluster %u
1390b6cee71dSXin LI#>>>>>13	ubyte		=1		\b, sectors/cluster %u (usual on Floppies)
1391cd0b4959SXin LI# for lazy FAT32 implementation like Transcend digital photo frame PF830
1392cd0b4959SXin LI>>>>>82		string/c	fat32
1393b6cee71dSXin LI>>>>>>14	uleshort	!32		\b, reserved sectors %u
1394b6cee71dSXin LI#>>>>>>14	uleshort	=32		\b, reserved sectors %u (usual Fat32)
1395cd0b4959SXin LI>>>>>82		string/c	!fat32
1396b6cee71dSXin LI>>>>>>14	uleshort	>1		\b, reserved sectors %u
1397b6cee71dSXin LI#>>>>>>14	uleshort	=1		\b, reserved sectors %u (usual FAT12,FAT16)
1398b6cee71dSXin LI#>>>>>>14	uleshort	0		\b, reserved sectors %u (usual NTFS)
1399b6cee71dSXin LI>>>>>16		ubyte		>2		\b, FATs %u
1400b6cee71dSXin LI#>>>>>16	ubyte		=2		\b, FATs %u (usual)
1401b6cee71dSXin LI>>>>>16		ubyte		=1		\b, FAT  %u
1402b6cee71dSXin LI>>>>>16		ubyte		>0
1403b6cee71dSXin LI>>>>>17		uleshort	>0		\b, root entries %u
1404b6cee71dSXin LI#>>>>>17	uleshort	=0		\b, root entries %hu=0 (usual Fat32)
1405b6cee71dSXin LI>>>>>19		uleshort	>0		\b, sectors %u (volumes <=32 MB)
1406b6cee71dSXin LI#>>>>>19	uleshort	=0		\b, sectors %hu=0 (usual Fat32)
140743a5ec4eSXin LI>>>>>21		ubyte		>0xF0		\b, Media descriptor %#x
140843a5ec4eSXin LI#>>>>>21	ubyte		=0xF0		\b, Media descriptor %#x (usual floppy)
140943a5ec4eSXin LI>>>>>21		ubyte		<0xF0		\b, Media descriptor %#x
1410b6cee71dSXin LI>>>>>22		uleshort	>0		\b, sectors/FAT %u
1411b6cee71dSXin LI#>>>>>22	uleshort	=0		\b, sectors/FAT %hu=0 (usual Fat32)
1412b6cee71dSXin LI>>>>>24		uleshort	x		\b, sectors/track %u
1413b6cee71dSXin LI>>>>>26		ubyte		>2		\b, heads %u
1414b6cee71dSXin LI#>>>>>26	ubyte		=2		\b, heads %u (usual floppy)
1415b6cee71dSXin LI>>>>>26		ubyte		=1		\b, heads %u
1416b6cee71dSXin LI# valid only for sector sizes with more then 32 Bytes
1417b6cee71dSXin LI>>>>>11		uleshort	>32
141848c779cdSXin LI# https://en.wikipedia.org/wiki/Design_of_the_FAT_file_system#Extended_BIOS_Parameter_Block
1419cd0b4959SXin LI# skip for values 2,2Ah,70h,73h,DFh
1420cd0b4959SXin LI# and continue for extended boot signature values 0,28h,29h,80h
1421cd0b4959SXin LI>>>>>>38	ubyte&0x56	=0
1422b6cee71dSXin LI>>>>>>>28	ulelong		>0		\b, hidden sectors %u
1423b6cee71dSXin LI#>>>>>>>28	ulelong		=0		\b, hidden sectors %u (usual floppy)
1424b6cee71dSXin LI>>>>>>>32	ulelong		>0		\b, sectors %u (volumes > 32 MB)
1425b6cee71dSXin LI#>>>>>>>32	ulelong		=0		\b, sectors %u (volumes > 32 MB)
1426b6cee71dSXin LI# FAT<32 bit specific
1427cd0b4959SXin LI>>>>>>>82	string/c	!fat32
142843a5ec4eSXin LI#>>>>>>>>36	ubyte		0x80		\b, physical drive %#x=0x80 (usual harddisk)
142943a5ec4eSXin LI#>>>>>>>>36	ubyte		0		\b, physical drive %#x=0 (usual floppy)
1430b6cee71dSXin LI>>>>>>>>36	ubyte		!0x80
143143a5ec4eSXin LI>>>>>>>>>36	ubyte		!0		\b, physical drive %#x
1432cd0b4959SXin LI# VGA-copy CRC or
1433cd0b4959SXin LI# in Windows NT bit 0 is a dirty flag to request chkdsk at boot time. bit 1 requests surface scan too
143443a5ec4eSXin LI>>>>>>>>37	ubyte		>0		\b, reserved %#x
143543a5ec4eSXin LI#>>>>>>>>37	ubyte		=0		\b, reserved %#x
143643a5ec4eSXin LI# extended boot signature value is 0x80 for NTFS, 0x28 or 0x29 for others
143743a5ec4eSXin LI>>>>>>>>38	ubyte		!0x29		\b, dos < 4.0 BootSector (%#x)
1438cd0b4959SXin LI>>>>>>>>38	ubyte&0xFE	=0x28
143943a5ec4eSXin LI>>>>>>>>>39	ulelong		x		\b, serial number %#x
1440cd0b4959SXin LI>>>>>>>>38	ubyte		=0x29
1441b6cee71dSXin LI>>>>>>>>>43	string		<NO\ NAME	\b, label: "%11.11s"
1442b6cee71dSXin LI>>>>>>>>>43	string		>NO\ NAME	\b, label: "%11.11s"
1443b6cee71dSXin LI>>>>>>>>>43	string		=NO\ NAME	\b, unlabeled
1444b6cee71dSXin LI# there exist some old floppies without word FAT at offset 54
1445b6cee71dSXin LI# a word like "FATnm   " is only a hint for a FAT size on nm-bits
1446b6cee71dSXin LI# Normally the number of clusters is calculated by the values of BPP.
1447b6cee71dSXin LI# if it is small enough FAT is 12 bit, if it is too big enough FAT is 32 bit,
1448b6cee71dSXin LI# otherwise FAT is 16 bit.
1449b6cee71dSXin LI# http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/determining-fat-widths.html
1450cd0b4959SXin LI>>>>>82		string/c	!fat32
1451cd0b4959SXin LI>>>>>>54	string		FAT12		\b, FAT (12 bit)
1452cd0b4959SXin LI>>>>>>54	string		FAT16		\b, FAT (16 bit)
1453cd0b4959SXin LI>>>>>>54	default		x
1454cd0b4959SXin LI# determinate FAT bit size by media descriptor
1455cd0b4959SXin LI# small floppies implies FAT12
1456cd0b4959SXin LI>>>>>>>21	ubyte		<0xF0		\b, FAT (12 bit by descriptor)
1457cd0b4959SXin LI# with media descriptor F0h floppy or maybe superfloppy with FAT16
1458cd0b4959SXin LI>>>>>>>21	ubyte		=0xF0
1459cd0b4959SXin LI# superfloppy (many sectors) implies FAT16
1460cd0b4959SXin LI>>>>>>>>32	ulelong		>0xFFFF		\b, FAT (16 bit by descriptor+sectors)
1461cd0b4959SXin LI# no superfloppy with media descriptor F0h implies FAT12
1462cd0b4959SXin LI>>>>>>>>32	default		x		\b, FAT (12 bit by descriptor+sectors)
1463cd0b4959SXin LI# with media descriptor F8h floppy or hard disc with FAT12 or FAT16
1464cd0b4959SXin LI>>>>>>>21	ubyte		=0xF8
1465cd0b4959SXin LI# 360 KiB with media descriptor F8h, 9 sectors per track ,single sided floppy implies FAT12
1466cd0b4959SXin LI>>>>>>>>19	ubequad	0xd002f80300090001	\b, FAT (12 bit by descriptor+geometry)
1467cd0b4959SXin LI# hard disc with FAT12 or FAT16
1468cd0b4959SXin LI>>>>>>>>19	default		x		\b, FAT (1Y bit by descriptor)
1469cd0b4959SXin LI# with media descriptor FAh floppy, RAM disc with FAT12 or FAT16 or Tandy hard disc
1470cd0b4959SXin LI>>>>>>>21	ubyte		=0xFA
1471cd0b4959SXin LI# 320 KiB with media descriptor FAh, 8 sectors per track ,single sided floppy implies FAT12
1472cd0b4959SXin LI>>>>>>>>19	ubequad	0x8002fa0200080001	\b, FAT (12 bit by descriptor+geometry)
1473cd0b4959SXin LI# RAM disc with FAT12 or FAT16 or Tandy hard disc
1474cd0b4959SXin LI>>>>>>>>19	default		x		\b, FAT (1Y bit by descriptor)
1475cd0b4959SXin LI# others are floppy
1476cd0b4959SXin LI>>>>>>>21	default		x		\b, FAT (12 bit by descriptor)
1477b6cee71dSXin LI# FAT32 bit specific
1478cd0b4959SXin LI>>>>>82		string/c	fat32		\b, FAT (32 bit)
1479b6cee71dSXin LI>>>>>>36	ulelong		x		\b, sectors/FAT %u
148048c779cdSXin LI# https://technet.microsoft.com/en-us/library/cc977221.aspx
148143a5ec4eSXin LI>>>>>>40	uleshort	>0		\b, extension flags %#x
1482b6cee71dSXin LI#>>>>>>40	uleshort	=0		\b, extension flags %hu
1483b6cee71dSXin LI>>>>>>42	uleshort	>0		\b, fsVersion %u
1484b6cee71dSXin LI#>>>>>>42	uleshort	=0		\b, fsVersion %u (usual)
1485b6cee71dSXin LI>>>>>>44	ulelong		>2		\b, rootdir cluster %u
1486b6cee71dSXin LI#>>>>>>44	ulelong		=2		\b, rootdir cluster %u
1487b6cee71dSXin LI#>>>>>>44	ulelong		=1		\b, rootdir cluster %u
1488b6cee71dSXin LI>>>>>>48	uleshort	>1		\b, infoSector %u
1489b6cee71dSXin LI#>>>>>>48	uleshort	=1		\b, infoSector %u (usual)
1490b6cee71dSXin LI>>>>>>48	uleshort	<1		\b, infoSector %u
1491cd0b4959SXin LI# 0 or 0xFFFF instead of usual 6 means no backup sector
1492cd0b4959SXin LI>>>>>>50	uleshort	=0xFFFF		\b, no Backup boot sector
1493cd0b4959SXin LI>>>>>>50	uleshort	=0		\b, no Backup boot sector
1494b6cee71dSXin LI#>>>>>>50	uleshort	=6		\b, Backup boot sector %u (usual)
1495cd0b4959SXin LI>>>>>>50	default		x
1496cd0b4959SXin LI>>>>>>>50	uleshort	x		\b, Backup boot sector %u
149748c779cdSXin LI# corrected by Joerg Jenderek at Feb 2011 according to https://thestarman.pcministry.com/asm/mbr/MSWIN41.htm#FSINFO
149843a5ec4eSXin LI>>>>>>52	ulelong		>0		\b, reserved1 %#x
149943a5ec4eSXin LI>>>>>>56	ulelong		>0		\b, reserved2 %#x
150043a5ec4eSXin LI>>>>>>60	ulelong		>0		\b, reserved3 %#x
1501b6cee71dSXin LI# same structure as FAT1X
150243a5ec4eSXin LI#>>>>>>64	ubyte		=0x80		\b, physical drive %#x=80 (usual harddisk)
150343a5ec4eSXin LI#>>>>>>64	ubyte		=0		\b, physical drive %#x=0 (usual floppy)
1504b6cee71dSXin LI>>>>>>64	ubyte		!0x80
150543a5ec4eSXin LI>>>>>>>64	ubyte		>0		\b, physical drive %#x
1506b6cee71dSXin LI# in Windows NT bit 0 is a dirty flag to request chkdsk at boot time. bit 1 requests surface scan too
150743a5ec4eSXin LI>>>>>>65	ubyte		>0		\b, reserved %#x
150843a5ec4eSXin LI>>>>>>66	ubyte		!0x29		\b, dos < 4.0 BootSector (%#x)
1509b6cee71dSXin LI>>>>>>66	ubyte		=0x29
151043a5ec4eSXin LI>>>>>>>67	ulelong		x		\b, serial number %#x
1511b6cee71dSXin LI>>>>>>>71	string		<NO\ NAME	\b, label: "%11.11s"
1512b6cee71dSXin LI>>>>>>>71	string		>NO\ NAME	\b, label: "%11.11s"
1513b6cee71dSXin LI>>>>>>>71	string		=NO\ NAME	\b, unlabeled
1514b6cee71dSXin LI# additional tests for floppy image added by Joerg Jenderek
1515b6cee71dSXin LI# no fixed disk
1516b6cee71dSXin LI>>>>>21		ubyte		!0xF8
1517b6cee71dSXin LI# floppy media with 12 bit FAT
1518b6cee71dSXin LI>>>>>>54	string		!FAT16
1519b6cee71dSXin LI# test for FAT after bootsector
1520b6cee71dSXin LI>>>>>>>(11.s)	ulelong&0x00ffffF0	0x00ffffF0	\b, followed by FAT
1521b6cee71dSXin LI# floppy image
1522b6cee71dSXin LI!:mime application/x-ima
152348c779cdSXin LI# NTFS specific added by Joerg Jenderek at Mar 2011 according to https://thestarman.pcministry.com/asm/mbr/NTFSBR.htm
1524b6cee71dSXin LI# and http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/bios-parameter-block.html
1525b6cee71dSXin LI# 0 FATs
1526b6cee71dSXin LI>>>>>16	ubyte		=0
1527b6cee71dSXin LI# 0 root entries
1528b6cee71dSXin LI>>>>>>17	uleshort	=0
1529b6cee71dSXin LI# 0 DOS sectors
1530b6cee71dSXin LI>>>>>>>19	uleshort	=0
1531b6cee71dSXin LI# 0 sectors/FAT
1532b6cee71dSXin LI# dos < 4.0 BootSector value found is 0x80
153343a5ec4eSXin LI#38	ubyte		=0x80			\b, dos < 4.0 BootSector (%#x)
1534b6cee71dSXin LI>>>>>>>>22	uleshort	=0		\b; NTFS
1535b6cee71dSXin LI>>>>>>>>>24	uleshort	>0		\b, sectors/track %u
153643a5ec4eSXin LI>>>>>>>>>36	ulelong		!0x800080	\b, physical drive %#x
1537b6cee71dSXin LI>>>>>>>>>40	ulequad		>0		\b, sectors %lld
1538b6cee71dSXin LI>>>>>>>>>48	ulequad		>0		\b, $MFT start cluster %lld
1539b6cee71dSXin LI>>>>>>>>>56	ulequad		>0		\b, $MFTMirror start cluster %lld
1540b6cee71dSXin LI# Values 0 to 127 represent MFT record sizes of 0 to 127 clusters.
1541b6cee71dSXin LI# Values 128 to 255 represent MFT record sizes of 2^(256-N) bytes.
1542b6cee71dSXin LI>>>>>>>>>64	lelong		<256
1543b6cee71dSXin LI>>>>>>>>>>64	lelong		<128		\b, clusters/RecordSegment %d
1544b6cee71dSXin LI>>>>>>>>>>64	ubyte		>127		\b, bytes/RecordSegment 2^(-1*%i)
1545b6cee71dSXin LI# Values 0 to 127 represent index block sizes of 0 to 127 clusters.
1546b6cee71dSXin LI# Values 128 to 255 represent index block sizes of 2^(256-N) byte
1547b6cee71dSXin LI>>>>>>>>>68	ulelong		<256
1548b6cee71dSXin LI>>>>>>>>>>68	ulelong		<128		\b, clusters/index block %d
1549b6cee71dSXin LI#>>>>>>>>>>68	ulelong		>127		\b, bytes/index block 2^(256-%d)
1550b6cee71dSXin LI>>>>>>>>>>68	ubyte		>127		\b, bytes/index block 2^(-1*%i)
1551b6cee71dSXin LI>>>>>>>>>72	ulequad		x		\b, serial number 0%llx
155243a5ec4eSXin LI>>>>>>>>>80	ulelong		>0		\b, checksum %#x
155343a5ec4eSXin LI#>>>>>>>>>80	ulelong		=0		\b, checksum %#x=0 (usual)
155448c779cdSXin LI# unicode loadername size jump
155548c779cdSXin LI>>>>>>>>>(0x200.s*2)	ubyte				x
155648c779cdSXin LI# in next sector loadername terminated by unicode CTRL-D and $
155748c779cdSXin LI>>>>>>>>>>&0x1FF	ulequad&0x0000FFffFFffFF00	0x0000002400040000 \b; contains
155848c779cdSXin LI# if 2nd NTFS sectors is found then assume whole filesystem
155948c779cdSXin LI#!:mime		application/x-raw-disk-image
156048c779cdSXin LI!:ext		img/bin/ntfs
156148c779cdSXin LI>>>>>>>>>>>0x200	use				ntfs-sector2
156248c779cdSXin LI
156348c779cdSXin LI# For 2nd NTFS sector added by Joerg Jenderek at Jan 2013, Mar 2019
156448c779cdSXin LI# https://thestarman.pcministry.com/asm/mbr/NTFSbrHexEd.htm
156548c779cdSXin LI# unused assembler instructions short JMP y2;NOP;NOP
156648c779cdSXin LI0x056		ulelong&0xFFFF0FFF	0x909002EB	NTFS
156748c779cdSXin LI#!:mime		application/octet-stream
156848c779cdSXin LI!:ext		bin
156948c779cdSXin LI>0		use		ntfs-sector2
157048c779cdSXin LI# https://memory.dataram.com/products-and-services/software/ramdisk
157148c779cdSXin LI# assembler instructions JMP C000;NOP
157248c779cdSXin LI0x056		ulelong			0x9000c0e9	NTFS
157348c779cdSXin LI#!:mime		application/octet-stream
157448c779cdSXin LI!:ext		bin
157548c779cdSXin LI>0		use		ntfs-sector2
157648c779cdSXin LI# check for characteristics of second NTFS sector and then display loader name
157748c779cdSXin LI0		name		ntfs-sector2
157848c779cdSXin LI# number of utf16 characters of loadername
157948c779cdSXin LI>0		uleshort	<8
158048c779cdSXin LI# unused assembler instructions JMP y2;NOP;NOP or JMP C000;NOP
158148c779cdSXin LI>>0x056		ulelong&0xFF0000FD	0x900000E9
1582b6cee71dSXin LI# loadernames are NTLDR,CMLDR,PELDR,$LDR$ or BOOTMGR
158348c779cdSXin LI>>>0x002		lestring16	x	bootstrap %-5.5s
158448c779cdSXin LI# check for 7 character length of loader name like BOOTMGR
158548c779cdSXin LI>>>0		uleshort	7
158648c779cdSXin LI>>>>0x0c	lestring16	x	\b%-2.2s
1587b6cee71dSXin LI### DOS,NTFS boot sectors end
1588b6cee71dSXin LI
158940427ccaSGordon Tetlow# ntfsclone-image is a special save format for NTFS volumes,
159040427ccaSGordon Tetlow# created and restored by the ntfsclone program
159140427ccaSGordon Tetlow0	string	\0ntfsclone-image	ntfsclone image,
159240427ccaSGordon Tetlow>0x10	byte	x			version %d.
159340427ccaSGordon Tetlow>0x11	byte	x			\b%d,
159440427ccaSGordon Tetlow>0x12	lelong	x			cluster size %d,
159540427ccaSGordon Tetlow>0x16	lequad	x			device size %lld,
159640427ccaSGordon Tetlow>0x1e	lequad	x			%lld total clusters,
159740427ccaSGordon Tetlow>0x26	lequad	x			%lld clusters in use
159840427ccaSGordon Tetlow
1599b6cee71dSXin LI9564	lelong		0x00011954	Unix Fast File system [v1] (little-endian),
1600b6cee71dSXin LI>8404	string		x		last mounted on %s,
1601b6cee71dSXin LI#>9504	ledate		x		last checked at %s,
1602b6cee71dSXin LI>8224	ledate		x		last written at %s,
1603b6cee71dSXin LI>8401	byte		x		clean flag %d,
1604b6cee71dSXin LI>8228	lelong		x		number of blocks %d,
1605b6cee71dSXin LI>8232	lelong		x		number of data blocks %d,
1606b6cee71dSXin LI>8236	lelong		x		number of cylinder groups %d,
1607b6cee71dSXin LI>8240	lelong		x		block size %d,
1608b6cee71dSXin LI>8244	lelong		x		fragment size %d,
1609b6cee71dSXin LI>8252	lelong		x		minimum percentage of free blocks %d,
1610b6cee71dSXin LI>8256	lelong		x		rotational delay %dms,
1611b6cee71dSXin LI>8260	lelong		x		disk rotational speed %drps,
1612b6cee71dSXin LI>8320	lelong		0		TIME optimization
1613b6cee71dSXin LI>8320	lelong		1		SPACE optimization
1614b6cee71dSXin LI
1615b6cee71dSXin LI42332	lelong		0x19540119	Unix Fast File system [v2] (little-endian)
1616b6cee71dSXin LI>&-1164	string		x		last mounted on %s,
1617b6cee71dSXin LI>&-696	string		>\0		volume name %s,
1618b6cee71dSXin LI>&-304	leqldate	x		last written at %s,
1619b6cee71dSXin LI>&-1167	byte		x		clean flag %d,
1620b6cee71dSXin LI>&-1168	byte		x		readonly flag %d,
1621b6cee71dSXin LI>&-296	lequad		x		number of blocks %lld,
1622b6cee71dSXin LI>&-288	lequad		x		number of data blocks %lld,
1623b6cee71dSXin LI>&-1332	lelong		x		number of cylinder groups %d,
1624b6cee71dSXin LI>&-1328	lelong		x		block size %d,
1625b6cee71dSXin LI>&-1324	lelong		x		fragment size %d,
1626b6cee71dSXin LI>&-180	lelong		x		average file size %d,
1627b6cee71dSXin LI>&-176	lelong		x		average number of files in dir %d,
1628b6cee71dSXin LI>&-272	lequad		x		pending blocks to free %lld,
1629b6cee71dSXin LI>&-264	lelong		x		pending inodes to free %d,
1630b6cee71dSXin LI>&-664	lequad		x		system-wide uuid %0llx,
1631b6cee71dSXin LI>&-1316	lelong		x		minimum percentage of free blocks %d,
1632b6cee71dSXin LI>&-1248	lelong		0		TIME optimization
1633b6cee71dSXin LI>&-1248	lelong		1		SPACE optimization
1634b6cee71dSXin LI
1635b6cee71dSXin LI66908	lelong		0x19540119	Unix Fast File system [v2] (little-endian)
1636b6cee71dSXin LI>&-1164	string		x		last mounted on %s,
1637b6cee71dSXin LI>&-696	string		>\0		volume name %s,
1638b6cee71dSXin LI>&-304	leqldate	x		last written at %s,
1639b6cee71dSXin LI>&-1167	byte		x		clean flag %d,
1640b6cee71dSXin LI>&-1168	byte		x		readonly flag %d,
1641b6cee71dSXin LI>&-296	lequad		x		number of blocks %lld,
1642b6cee71dSXin LI>&-288	lequad		x		number of data blocks %lld,
1643b6cee71dSXin LI>&-1332	lelong		x		number of cylinder groups %d,
1644b6cee71dSXin LI>&-1328	lelong		x		block size %d,
1645b6cee71dSXin LI>&-1324	lelong		x		fragment size %d,
1646b6cee71dSXin LI>&-180	lelong		x		average file size %d,
1647b6cee71dSXin LI>&-176	lelong		x		average number of files in dir %d,
1648b6cee71dSXin LI>&-272	lequad		x		pending blocks to free %lld,
1649b6cee71dSXin LI>&-264	lelong		x		pending inodes to free %d,
1650b6cee71dSXin LI>&-664	lequad		x		system-wide uuid %0llx,
1651b6cee71dSXin LI>&-1316	lelong		x		minimum percentage of free blocks %d,
1652b6cee71dSXin LI>&-1248	lelong		0		TIME optimization
1653b6cee71dSXin LI>&-1248	lelong		1		SPACE optimization
1654b6cee71dSXin LI
1655b6cee71dSXin LI9564	belong		0x00011954	Unix Fast File system [v1] (big-endian),
1656b6cee71dSXin LI>7168   belong		0x4c41424c	Apple UFS Volume
1657b6cee71dSXin LI>>7186  string		x		named %s,
1658b6cee71dSXin LI>>7176  belong		x		volume label version %d,
1659b6cee71dSXin LI>>7180  bedate		x		created on %s,
1660b6cee71dSXin LI>8404	string		x		last mounted on %s,
1661b6cee71dSXin LI#>9504	bedate		x		last checked at %s,
1662b6cee71dSXin LI>8224	bedate		x		last written at %s,
1663b6cee71dSXin LI>8401	byte		x		clean flag %d,
1664b6cee71dSXin LI>8228	belong		x		number of blocks %d,
1665b6cee71dSXin LI>8232	belong		x		number of data blocks %d,
1666b6cee71dSXin LI>8236	belong		x		number of cylinder groups %d,
1667b6cee71dSXin LI>8240	belong		x		block size %d,
1668b6cee71dSXin LI>8244	belong		x		fragment size %d,
1669b6cee71dSXin LI>8252	belong		x		minimum percentage of free blocks %d,
1670b6cee71dSXin LI>8256	belong		x		rotational delay %dms,
1671b6cee71dSXin LI>8260	belong		x		disk rotational speed %drps,
1672b6cee71dSXin LI>8320	belong		0		TIME optimization
1673b6cee71dSXin LI>8320	belong		1		SPACE optimization
1674b6cee71dSXin LI
1675b6cee71dSXin LI42332	belong		0x19540119	Unix Fast File system [v2] (big-endian)
1676b6cee71dSXin LI>&-1164	string		x		last mounted on %s,
1677b6cee71dSXin LI>&-696	string		>\0		volume name %s,
1678b6cee71dSXin LI>&-304	beqldate	x		last written at %s,
1679b6cee71dSXin LI>&-1167	byte		x		clean flag %d,
1680b6cee71dSXin LI>&-1168	byte		x		readonly flag %d,
1681b6cee71dSXin LI>&-296	bequad		x		number of blocks %lld,
1682b6cee71dSXin LI>&-288	bequad		x		number of data blocks %lld,
1683b6cee71dSXin LI>&-1332	belong		x		number of cylinder groups %d,
1684b6cee71dSXin LI>&-1328	belong		x		block size %d,
1685b6cee71dSXin LI>&-1324	belong		x		fragment size %d,
1686b6cee71dSXin LI>&-180	belong		x		average file size %d,
1687b6cee71dSXin LI>&-176	belong		x		average number of files in dir %d,
1688b6cee71dSXin LI>&-272	bequad		x		pending blocks to free %lld,
1689b6cee71dSXin LI>&-264	belong		x		pending inodes to free %d,
1690b6cee71dSXin LI>&-664	bequad		x		system-wide uuid %0llx,
1691b6cee71dSXin LI>&-1316	belong		x		minimum percentage of free blocks %d,
1692b6cee71dSXin LI>&-1248	belong		0		TIME optimization
1693b6cee71dSXin LI>&-1248	belong		1		SPACE optimization
1694b6cee71dSXin LI
1695b6cee71dSXin LI66908	belong		0x19540119	Unix Fast File system [v2] (big-endian)
1696b6cee71dSXin LI>&-1164	string		x		last mounted on %s,
1697b6cee71dSXin LI>&-696	string		>\0		volume name %s,
1698b6cee71dSXin LI>&-304	beqldate	x		last written at %s,
1699b6cee71dSXin LI>&-1167	byte		x		clean flag %d,
1700b6cee71dSXin LI>&-1168	byte		x		readonly flag %d,
1701b6cee71dSXin LI>&-296	bequad		x		number of blocks %lld,
1702b6cee71dSXin LI>&-288	bequad		x		number of data blocks %lld,
1703b6cee71dSXin LI>&-1332	belong		x		number of cylinder groups %d,
1704b6cee71dSXin LI>&-1328	belong		x		block size %d,
1705b6cee71dSXin LI>&-1324	belong		x		fragment size %d,
1706b6cee71dSXin LI>&-180	belong		x		average file size %d,
1707b6cee71dSXin LI>&-176	belong		x		average number of files in dir %d,
1708b6cee71dSXin LI>&-272	bequad		x		pending blocks to free %lld,
1709b6cee71dSXin LI>&-264	belong		x		pending inodes to free %d,
1710b6cee71dSXin LI>&-664	bequad		x		system-wide uuid %0llx,
1711b6cee71dSXin LI>&-1316	belong		x		minimum percentage of free blocks %d,
1712b6cee71dSXin LI>&-1248	belong		0		TIME optimization
1713b6cee71dSXin LI>&-1248	belong		1		SPACE optimization
1714b6cee71dSXin LI
171540427ccaSGordon Tetlow0	ulequad		0xc8414d4dc5523031	HAMMER filesystem (little-endian),
171640427ccaSGordon Tetlow>0x90	lelong+1	x			volume %d
171740427ccaSGordon Tetlow>0x94	lelong		x			(of %d),
171840427ccaSGordon Tetlow>0x50	string		x			name %s,
171940427ccaSGordon Tetlow>0x98	ulelong		x			version %u,
172043a5ec4eSXin LI>0xa0	ulelong		x			flags %#x
172143a5ec4eSXin LI
172243a5ec4eSXin LI0	ulequad		0x48414d3205172011	HAMMER2 filesystem (little-endian),
172343a5ec4eSXin LI>0x3b	byte		x			volume %d,
172443a5ec4eSXin LI>0x28	ulequad/1073741824 x			size %lluGB,
172543a5ec4eSXin LI>0x30	ulelong		x			version %u,
172643a5ec4eSXin LI>0x34	ulelong		x			flags %#x
172740427ccaSGordon Tetlow
1728b6cee71dSXin LI# ext2/ext3 filesystems - Andreas Dilger <adilger@dilger.ca>
1729b6cee71dSXin LI# ext4 filesystem - Eric Sandeen <sandeen@sandeen.net>
1730b6cee71dSXin LI# volume label and UUID Russell Coker
173148c779cdSXin LI# https://etbe.coker.com.au/2008/07/08/label-vs-uuid-vs-device/
1732b6cee71dSXin LI0x438   leshort         0xEF53          Linux
1733b6cee71dSXin LI>0x44c  lelong          x               rev %d
1734b6cee71dSXin LI>0x43e  leshort         x               \b.%d
1735b6cee71dSXin LI# No journal?  ext2
1736b6cee71dSXin LI>0x45c  lelong          ^0x0000004      ext2 filesystem data
1737b6cee71dSXin LI>>0x43a leshort         ^0x0000001      (mounted or unclean)
1738b6cee71dSXin LI# Has a journal?  ext3 or ext4
1739b6cee71dSXin LI>0x45c  lelong          &0x0000004
1740b6cee71dSXin LI#  and small INCOMPAT?
1741b6cee71dSXin LI>>0x460 lelong          <0x0000040
1742b6cee71dSXin LI#   and small RO_COMPAT?
1743b6cee71dSXin LI>>>0x464 lelong         <0x0000008      ext3 filesystem data
1744b6cee71dSXin LI#   else large RO_COMPAT?
1745b6cee71dSXin LI>>>0x464 lelong         >0x0000007      ext4 filesystem data
1746b6cee71dSXin LI#  else large INCOMPAT?
1747b6cee71dSXin LI>>0x460	lelong          >0x000003f      ext4 filesystem data
174843a5ec4eSXin LI>0x468	ubelong		x		\b, UUID=%08x
174943a5ec4eSXin LI>0x46c	ubeshort	x		\b-%04x
175043a5ec4eSXin LI>0x46e	ubeshort	x		\b-%04x
175143a5ec4eSXin LI>0x470	ubeshort	x		\b-%04x
175243a5ec4eSXin LI>0x472	ubelong		x		\b-%08x
175343a5ec4eSXin LI>0x476	ubeshort	x		\b%04x
1754b6cee71dSXin LI>0x478	string		>0		\b, volume name "%s"
1755b6cee71dSXin LI# General flags for any ext* fs
1756b6cee71dSXin LI>0x460	lelong          &0x0000004      (needs journal recovery)
1757b6cee71dSXin LI>0x43a	leshort         &0x0000002      (errors)
1758b6cee71dSXin LI# INCOMPAT flags
1759b6cee71dSXin LI>0x460	lelong          &0x0000001      (compressed)
1760b6cee71dSXin LI#>0x460	lelong          &0x0000002      (filetype)
1761b6cee71dSXin LI#>0x460	lelong          &0x0000010      (meta bg)
1762b6cee71dSXin LI>0x460	lelong          &0x0000040      (extents)
1763b6cee71dSXin LI>0x460	lelong          &0x0000080      (64bit)
1764b6cee71dSXin LI#>0x460	lelong          &0x0000100      (mmp)
1765b6cee71dSXin LI#>0x460	lelong          &0x0000200      (flex bg)
1766b6cee71dSXin LI# RO_INCOMPAT flags
1767b6cee71dSXin LI#>0x464	lelong          &0x0000001      (sparse super)
1768b6cee71dSXin LI>0x464	lelong          &0x0000002      (large files)
1769b6cee71dSXin LI>0x464	lelong          &0x0000008      (huge files)
1770b6cee71dSXin LI#>0x464	lelong          &0x0000010      (gdt checksum)
1771b6cee71dSXin LI#>0x464	lelong          &0x0000020      (many subdirs)
1772b6cee71dSXin LI#>0x463	lelong          &0x0000040      (extra isize)
1773b6cee71dSXin LI
177458a0f0d0SEitan Adler# f2fs filesystem - Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi>
177558a0f0d0SEitan Adler0x400	lelong		0xF2F52010	F2FS filesystem
177643a5ec4eSXin LI>0x46c	ubelong		x		\b, UUID=%08x
177743a5ec4eSXin LI>0x470	ubeshort	x		\b-%04x
177843a5ec4eSXin LI>0x472	ubeshort	x		\b-%04x
177943a5ec4eSXin LI>0x474	ubeshort	x		\b-%04x
178043a5ec4eSXin LI>0x476	ubelong		x		\b-%08x
178143a5ec4eSXin LI>0x47a	ubeshort	x		\b%04x
178258a0f0d0SEitan Adler>0x147c	lestring16	x		\b, volume name "%s"
178358a0f0d0SEitan Adler
1784b6cee71dSXin LI# Minix filesystems - Juan Cespedes <cespedes@debian.org>
1785b6cee71dSXin LI0x410	leshort		0x137f
1786b6cee71dSXin LI!:strength / 2
1787b6cee71dSXin LI>0x402	beshort		< 100
17889ce06829SXin LI>0x402	beshort		> -1		Minix filesystem, V1, 14 char names, %d zones
1789b6cee71dSXin LI>0x1e	string		minix		\b, bootable
1790b6cee71dSXin LI0x410	beshort		0x137f
1791b6cee71dSXin LI!:strength / 2
1792b6cee71dSXin LI>0x402	beshort		< 100
1793b6cee71dSXin LI>0x402	beshort		> -1		Minix filesystem, V1 (big endian), %d zones
1794b6cee71dSXin LI>0x1e	string		minix		\b, bootable
1795b6cee71dSXin LI0x410	leshort		0x138f
1796b6cee71dSXin LI!:strength / 2
1797b6cee71dSXin LI>0x402	beshort		< 100
1798b6cee71dSXin LI>0x402	beshort		> -1		Minix filesystem, V1, 30 char names, %d zones
1799b6cee71dSXin LI>0x1e	string		minix		\b, bootable
1800b6cee71dSXin LI0x410	beshort		0x138f
1801b6cee71dSXin LI!:strength / 2
1802b6cee71dSXin LI>0x402	beshort		< 100
1803b6cee71dSXin LI>0x402	beshort		> -1		Minix filesystem, V1, 30 char names (big endian), %d zones
1804b6cee71dSXin LI>0x1e	string		minix		\b, bootable
18053e41d09dSXin LI# Weak Magic: this is $x
18063e41d09dSXin LI#0x410	leshort		0x2468
18073e41d09dSXin LI#>0x402	beshort		< 100
18083e41d09dSXin LI#>>0x402	beshort		> -1		Minix filesystem, V2, 14 char names
18093e41d09dSXin LI#>0x1e	string		minix		\b, bootable
18103e41d09dSXin LI#0x410	beshort		0x2468
18113e41d09dSXin LI#>0x402	beshort		< 100
18123e41d09dSXin LI#>0x402	beshort		> -1		Minix filesystem, V2 (big endian)
18133e41d09dSXin LI#>0x1e	string		minix		\b, bootable
18143e41d09dSXin LI#0x410	leshort		0x2478
18153e41d09dSXin LI#>0x402	beshort		< 100
18163e41d09dSXin LI#>0x402	beshort		> -1		Minix filesystem, V2, 30 char names
18173e41d09dSXin LI#>0x1e	string		minix		\b, bootable
18183e41d09dSXin LI#0x410	leshort		0x2478
18193e41d09dSXin LI#>0x402	beshort		< 100
18203e41d09dSXin LI#>0x402	beshort		> -1		Minix filesystem, V2, 30 char names
18213e41d09dSXin LI#>0x1e	string		minix		\b, bootable
18223e41d09dSXin LI#0x410	beshort		0x2478
18233e41d09dSXin LI#>0x402	beshort		!0		Minix filesystem, V2, 30 char names (big endian)
18243e41d09dSXin LI#>0x1e	string		minix		\b, bootable
18253e41d09dSXin LI# Weak Magic! this is MD
18263e41d09dSXin LI#0x418	leshort		0x4d5a
18273e41d09dSXin LI#>0x402	beshort		<100
18283e41d09dSXin LI#>>0x402	beshort		> -1		Minix filesystem, V3, 60 char names
1829b6cee71dSXin LI
1830b6cee71dSXin LI# SGI disk labels - Nathan Scott <nathans@debian.org>
1831b6cee71dSXin LI0	belong		0x0BE5A941	SGI disk label (volume header)
1832b6cee71dSXin LI
1833b6cee71dSXin LI# SGI XFS filesystem - Nathan Scott <nathans@debian.org>
1834b6cee71dSXin LI0	belong		0x58465342	SGI XFS filesystem data
1835b6cee71dSXin LI>0x4	belong		x		(blksz %d,
1836b6cee71dSXin LI>0x68	beshort		x		inosz %d,
1837b6cee71dSXin LI>0x64	beshort		^0x2004		v1 dirs)
1838b6cee71dSXin LI>0x64	beshort		&0x2004		v2 dirs)
1839b6cee71dSXin LI
1840b6cee71dSXin LI############################################################################
1841b6cee71dSXin LI# Minix-ST kernel floppy
1842b6cee71dSXin LI0x800	belong		0x46fc2700	Atari-ST Minix kernel image
184348c779cdSXin LI# https://en.wikipedia.org/wiki/BIOS_parameter_block
1844b6cee71dSXin LI# floppies with valid BPB and any instruction at beginning
1845b6cee71dSXin LI>19	string		\240\005\371\005\0\011\0\2\0	\b, 720k floppy
1846b6cee71dSXin LI>19	string		\320\002\370\005\0\011\0\1\0	\b, 360k floppy
1847b6cee71dSXin LI
1848b6cee71dSXin LI############################################################################
1849b6cee71dSXin LI# Hmmm, is this a better way of detecting _standard_ floppy images ?
1850b6cee71dSXin LI19	string		\320\002\360\003\0\011\0\1\0	DOS floppy 360k
1851b6cee71dSXin LI>0x1FE	leshort		0xAA55		\b, DOS/MBR hard disk boot sector
1852b6cee71dSXin LI19	string		\240\005\371\003\0\011\0\2\0	DOS floppy 720k
1853b6cee71dSXin LI>0x1FE	leshort		0xAA55		\b, DOS/MBR hard disk boot sector
1854b6cee71dSXin LI19	string		\100\013\360\011\0\022\0\2\0	DOS floppy 1440k
1855b6cee71dSXin LI>0x1FE	leshort		0xAA55		\b, DOS/MBR hard disk boot sector
1856b6cee71dSXin LI
1857b6cee71dSXin LI19	string		\240\005\371\005\0\011\0\2\0	DOS floppy 720k, IBM
1858b6cee71dSXin LI>0x1FE	leshort		0xAA55		\b, DOS/MBR hard disk boot sector
1859b6cee71dSXin LI19	string		\100\013\371\005\0\011\0\2\0	DOS floppy 1440k, mkdosfs
1860b6cee71dSXin LI>0x1FE	leshort		0xAA55		\b, DOS/MBR hard disk boot sector
1861b6cee71dSXin LI
1862b6cee71dSXin LI19	string		\320\002\370\005\0\011\0\1\0	Atari-ST floppy 360k
1863b6cee71dSXin LI19	string		\240\005\371\005\0\011\0\2\0	Atari-ST floppy 720k
1864b6cee71dSXin LI#			|       |   |     |     |
1865b6cee71dSXin LI#			|       |   |     |     heads
1866b6cee71dSXin LI#			|       |   |     sectors/track
1867b6cee71dSXin LI#			|       |   sectors/FAT
1868b6cee71dSXin LI#			|       media descriptor
1869b6cee71dSXin LI#		BPB:	sectors
1870b6cee71dSXin LI
1871b6cee71dSXin LI#  Valid media descriptor bytes for MS-DOS:
1872b6cee71dSXin LI#
1873b6cee71dSXin LI#     Byte   Capacity   Media Size and Type
1874b6cee71dSXin LI#     -------------------------------------------------
1875b6cee71dSXin LI#
1876b6cee71dSXin LI#     F0     2.88 MB    3.5-inch, 2-sided, 36-sector
1877b6cee71dSXin LI#     F0     1.44 MB    3.5-inch, 2-sided, 18-sector
1878b6cee71dSXin LI#     F9     720K       3.5-inch, 2-sided, 9-sector
1879b6cee71dSXin LI#     F9     1.2 MB     5.25-inch, 2-sided, 15-sector
1880b6cee71dSXin LI#     FD     360K       5.25-inch, 2-sided, 9-sector
1881b6cee71dSXin LI#     FF     320K       5.25-inch, 2-sided, 8-sector
1882b6cee71dSXin LI#     FC     180K       5.25-inch, 1-sided, 9-sector
1883b6cee71dSXin LI#     FE     160K       5.25-inch, 1-sided, 8-sector
1884b6cee71dSXin LI#     FE     250K       8-inch, 1-sided, single-density
1885b6cee71dSXin LI#     FD     500K       8-inch, 2-sided, single-density
1886b6cee71dSXin LI#     FE     1.2 MB     8-inch, 2-sided, double-density
1887b6cee71dSXin LI#     F8     -----      Fixed disk
1888b6cee71dSXin LI#
1889b6cee71dSXin LI#     FC     xxxK       Apricot 70x1x9 boot disk.
1890b6cee71dSXin LI#
1891b6cee71dSXin LI# Originally a bitmap:
1892b6cee71dSXin LI#  xxxxxxx0	Not two sided
1893b6cee71dSXin LI#  xxxxxxx1	Double sided
1894b6cee71dSXin LI#  xxxxxx0x	Not 8 SPT
1895b6cee71dSXin LI#  xxxxxx1x	8 SPT
1896b6cee71dSXin LI#  xxxxx0xx	Not Removable drive
1897b6cee71dSXin LI#  xxxxx1xx	Removable drive
1898b6cee71dSXin LI#  11111xxx	Must be one.
1899b6cee71dSXin LI#
1900b6cee71dSXin LI# But now it's rather random:
1901b6cee71dSXin LI#  111111xx	Low density disk
1902b6cee71dSXin LI#        00	SS, Not 8 SPT
1903b6cee71dSXin LI#        01	DS, Not 8 SPT
1904b6cee71dSXin LI#        10	SS, 8 SPT
1905b6cee71dSXin LI#        11	DS, 8 SPT
1906b6cee71dSXin LI#
1907b6cee71dSXin LI#  11111001	Double density 3 1/2 floppy disk, high density 5 1/4
1908b6cee71dSXin LI#  11110000	High density 3 1/2 floppy disk
1909b6cee71dSXin LI#  11111000	Hard disk any format
1910b6cee71dSXin LI#
1911b6cee71dSXin LI
1912b6cee71dSXin LI# all FAT12 (strength=70) floppies with sectorsize 512 added by Joerg Jenderek at Jun 2013
191348c779cdSXin LI# https://en.wikipedia.org/wiki/File_Allocation_Table#Exceptions
1914b6cee71dSXin LI# Too Weak.
1915b6cee71dSXin LI#512		ubelong&0xE0ffff00	0xE0ffff00
1916b6cee71dSXin LI# without valid Media descriptor in place of BPB, cases with are done at other places
1917b6cee71dSXin LI#>21		ubyte			<0xE5			floppy with old FAT filesystem
1918b6cee71dSXin LI# but valid Media descriptor at begin of FAT
1919b6cee71dSXin LI#>>512		ubyte			=0xed			720k
1920b6cee71dSXin LI#>>512		ubyte			=0xf0			1440k
1921b6cee71dSXin LI#>>512		ubyte			=0xf8			720k
1922b6cee71dSXin LI#>>512		ubyte			=0xf9			1220k
1923b6cee71dSXin LI#>>512		ubyte			=0xfa			320k
1924b6cee71dSXin LI#>>512		ubyte			=0xfb			640k
1925b6cee71dSXin LI#>>512		ubyte			=0xfc			180k
192648c779cdSXin LI# look like an old DOS directory entry
1927b6cee71dSXin LI#>>>0xA0E	ubequad			0
1928b6cee71dSXin LI#>>>>0xA00	ubequad			!0
1929b6cee71dSXin LI#!:mime application/x-ima
1930b6cee71dSXin LI#>>512		ubyte			=0xfd
1931b6cee71dSXin LI# look for 2nd FAT at different location to distinguish between 360k and 500k
1932b6cee71dSXin LI#>>>0x600	ubelong&0xE0ffff00	0xE0ffff00		360k
1933b6cee71dSXin LI#>>>0x500	ubelong&0xE0ffff00	0xE0ffff00		500k
1934b6cee71dSXin LI#>>>0xA0E	ubequad			0
1935b6cee71dSXin LI#!:mime application/x-ima
1936b6cee71dSXin LI#>>512		ubyte			=0xfe
1937b6cee71dSXin LI#>>>0x400	ubelong&0xE0ffff00	0xE0ffff00		160k
1938b6cee71dSXin LI#>>>>0x60E	ubequad			0
1939b6cee71dSXin LI#>>>>>0x600	ubequad			!0
1940b6cee71dSXin LI#!:mime application/x-ima
1941b6cee71dSXin LI#>>>0xC00	ubelong&0xE0ffff00	0xE0ffff00		1200k
1942b6cee71dSXin LI#>>512		ubyte			=0xff			320k
1943b6cee71dSXin LI#>>>0x60E	ubequad			0
1944b6cee71dSXin LI#>>>>0x600	ubequad			!0
1945b6cee71dSXin LI#!:mime application/x-ima
194643a5ec4eSXin LI#>>512		ubyte			x			\b, Media descriptor %#x
1947b6cee71dSXin LI# without x86 jump instruction
1948b6cee71dSXin LI#>>0		ulelong&0x804000E9	!0x000000E9
1949b6cee71dSXin LI# assembler instructions: CLI;MOV SP,1E7;MOV AX;07c0;MOV
1950b6cee71dSXin LI#>>>0	ubequad				0xfabce701b8c0078e	\b, MS-DOS 1.12 bootloader
1951b6cee71dSXin LI# IOSYS.COM+MSDOS.COM
1952b6cee71dSXin LI#>>>>0xc4	use			2xDOS-filename
1953b6cee71dSXin LI#>>0		ulelong&0x804000E9	=0x000000E9
1954b6cee71dSXin LI# only x86 short jump instruction found
1955b6cee71dSXin LI#>>>0		ubyte			=0xEB
195643a5ec4eSXin LI#>>>>1		ubyte			x			\b, code offset %#x+2
195748c779cdSXin LI# https://thestarman.pcministry.com/DOS/ibm100/Boot.htm
1958b6cee71dSXin LI# assembler instructions: CLI;MOV AX,CS;MOV DS,AX;MOV DX,0
1959b6cee71dSXin LI#>>>>(1.b+2)	ubequad			0xfa8cc88ed8ba0000	\b, PC-DOS 1.0 bootloader
1960b6cee71dSXin LI# ibmbio.com+ibmdos.com
1961b6cee71dSXin LI#>>>>>0x176	use			DOS-filename
1962b6cee71dSXin LI#>>>>>0x181	ubyte			x			\b+
1963b6cee71dSXin LI#>>>>>0x182	use			DOS-filename
196448c779cdSXin LI# https://thestarman.pcministry.com/DOS/ibm110/Boot.htm
1965b6cee71dSXin LI# assembler instructions: CLI;MOV AX,CS;MOV DS,AX;XOR DX,DX;MOV
1966b6cee71dSXin LI#>>>>(1.b+2)	ubequad			0xfa8cc88ed833d28e	\b, PC-DOS 1.1 bootloader
1967b6cee71dSXin LI# ibmbio.com+ibmdos.com
1968b6cee71dSXin LI#>>>>>0x18b	use			DOS-filename
1969b6cee71dSXin LI#>>>>>0x196	ubyte			x			\b+
1970b6cee71dSXin LI#>>>>>0x197	use			DOS-filename
197148c779cdSXin LI# https://en.wikipedia.org/wiki/Zenith_Data_Systems
1972b6cee71dSXin LI# assembler instructions: MOV BX,07c0;MOV SS,BX;MOV SP,01c6
1973b6cee71dSXin LI#>>>>(1.b+2)	ubequad			0xbbc0078ed3bcc601	\b, Zenith Data Systems MS-DOS 1.25 bootloader
1974b6cee71dSXin LI# IO.SYS+MSDOS.SYS
1975b6cee71dSXin LI#>>>>>0x20	use			2xDOS-filename
197648c779cdSXin LI# https://en.wikipedia.org/wiki/Corona_Data_Systems
1977b6cee71dSXin LI# assembler instructions: MOV AX,CS;MOV DS,AX;CLI;MOV SS,AX;
1978b6cee71dSXin LI#>>>>(1.b+2)	ubequad			0x8cc88ed8fa8ed0bc	\b, MS-DOS 1.25 bootloader
1979b6cee71dSXin LI# IO.SYS+MSDOS.SYS
1980b6cee71dSXin LI#>>>>>0x69	use			2xDOS-filename
1981b6cee71dSXin LI# assembler instructions: CLI;PUSH CS;POP SS;MOV SP,7c00;
1982b6cee71dSXin LI#>>>>(1.b+2)	ubequad			0xfa0e17bc007cb860	\b, MS-DOS 2.11 bootloader
1983b6cee71dSXin LI# defect IO.SYS+MSDOS.SYS ?
1984b6cee71dSXin LI#>>>>>0x162	use			2xDOS-filename
1985b6cee71dSXin LI
1986cd0b4959SXin LI0	name				cdrom
1987b6cee71dSXin LI>38913	string   !NSR0      ISO 9660 CD-ROM filesystem data
1988cd0b4959SXin LI!:mime	application/x-iso9660-image
198958a0f0d0SEitan Adler!:ext	iso/iso9660
1990b6cee71dSXin LI>38913	string    NSR0      UDF filesystem data
1991cd0b4959SXin LI!:mime	application/x-iso9660-image
199258a0f0d0SEitan Adler!:ext	iso/udf
1993b6cee71dSXin LI>>38917	string    1         (version 1.0)
1994b6cee71dSXin LI>>38917	string    2         (version 1.5)
1995b6cee71dSXin LI>>38917	string    3         (version 2.0)
199643a5ec4eSXin LI>>38917	byte     >0x33      (unknown version, ID %#X)
199743a5ec4eSXin LI>>38917	byte     <0x31      (unknown version, ID %#X)
1998a5d223e6SXin LI# The next line is not necessary because the MBR staff is done looking for boot signature
19995f0216bdSXin LI>0x1FE	leshort  0xAA55     (DOS/MBR boot sector)
2000b6cee71dSXin LI# "application id" which appears to be used as a volume label
200143a5ec4eSXin LI>32808	string/T  >\0       '%.32s'
2002b6cee71dSXin LI>34816	string    \000CD001\001EL\ TORITO\ SPECIFICATION    (bootable)
2003b6cee71dSXin LI37633	string    CD001     ISO 9660 CD-ROM filesystem data (raw 2352 byte sectors)
2004b6cee71dSXin LI!:mime	application/x-iso9660-image
2005b6cee71dSXin LI32777	string    CDROM     High Sierra CD-ROM filesystem data
200643a5ec4eSXin LI# "application id" which appears to be used as a volume label
200743a5ec4eSXin LI>32816	string/T  >\0       '%.32s'
200843a5ec4eSXin LI
2009b6cee71dSXin LI
2010cd0b4959SXin LI# CDROM Filesystems
2011cd0b4959SXin LI# https://en.wikipedia.org/wiki/ISO_9660
2012cd0b4959SXin LI# Modified for UDF by gerardo.cacciari@gmail.com
2013cd0b4959SXin LI32769	string    CD001
2014cd0b4959SXin LI# mime line at that position does not work
2015cd0b4959SXin LI# to display CD-ROM (70=81-11) after MBR (113=40+72+1), partition-table (71=50+21) and before Apple Driver Map (51)
201640427ccaSGordon Tetlow#!:strength -11
2017cd0b4959SXin LI# to display CD-ROM (114=81+33) before MBR (113=40+72+1), partition-table (71=50+21) and Apple Driver Map (51)
20182726a701SXin LI!:strength +35
2019cd0b4959SXin LI>0	use	cdrom
2020cd0b4959SXin LI
202158a0f0d0SEitan Adler# URL: https://en.wikipedia.org/wiki/NRG_(file_format)
202258a0f0d0SEitan Adler# Reference: https://dl.opendesktop.org/api/files/download/id/1460731811/
202358a0f0d0SEitan Adler#	11577-mount-iso-0.9.5.tar.bz2/mount-iso-0.9.5/install.sh
202458a0f0d0SEitan Adler# From: Joerg Jenderek
202558a0f0d0SEitan Adler# Note:	Only for nero disc with once (DAO) type after 300 KB header
202658a0f0d0SEitan Adler339969	string    CD001	Nero CD image at 0x4B000
202758a0f0d0SEitan Adler!:mime	application/x-nrg
202858a0f0d0SEitan Adler!:ext	nrg
202958a0f0d0SEitan Adler>307200	use cdrom
203058a0f0d0SEitan Adler
2031b6cee71dSXin LI# .cso files
203248c779cdSXin LI# Reference: https://pismotec.com/ciso/ciso.h
203340427ccaSGordon Tetlow# NOTE: There are two other formats with the same magic but
203440427ccaSGordon Tetlow# completely incompatible specifications:
203540427ccaSGordon Tetlow# - GameCube/Wii CISO: https://github.com/dolphin-emu/dolphin/blob/master/Source/Core/DiscIO/CISOBlob.h
203640427ccaSGordon Tetlow# - PSP CISO: https://github.com/jamie/ciso/blob/master/ciso.h
203740427ccaSGordon Tetlow0    string    CISO
203840427ccaSGordon Tetlow# Other fields are used to determine what type of CISO this is:
203940427ccaSGordon Tetlow# - 0x04 == 0x00200000: GameCube/Wii CISO (block_size)
204040427ccaSGordon Tetlow# - 0x10 == 0x00000800: PSP CISO (ISO-9660 sector size)
204148c779cdSXin LI# - 0x10 == 0x00004000: For >2GB files using maxcso...
204248c779cdSXin LI# 			https://github.com/unknownbrackets/maxcso/issues/26
204340427ccaSGordon Tetlow# - None of the above: Compact ISO.
204440427ccaSGordon Tetlow>4	lelong	!0
204540427ccaSGordon Tetlow>>4	lelong	!0x200000
204648c779cdSXin LI>>>16	lelong	!0x800
204748c779cdSXin LI>>>>16	lelong	!0x4000		Compressed ISO CD image
2048b6cee71dSXin LI
2049b6cee71dSXin LI# cramfs filesystem - russell@coker.com.au
2050b6cee71dSXin LI0       lelong    0x28cd3d45      Linux Compressed ROM File System data, little endian
2051b6cee71dSXin LI>4      lelong  x size %u
2052b6cee71dSXin LI>8      lelong  &1 version #2
2053b6cee71dSXin LI>8      lelong  &2 sorted_dirs
2054b6cee71dSXin LI>8      lelong  &4 hole_support
205543a5ec4eSXin LI>32     lelong  x CRC %#x,
2056b6cee71dSXin LI>36     lelong  x edition %u,
2057b6cee71dSXin LI>40     lelong  x %u blocks,
2058b6cee71dSXin LI>44     lelong  x %u files
2059b6cee71dSXin LI
2060b6cee71dSXin LI0       belong    0x28cd3d45      Linux Compressed ROM File System data, big endian
2061b6cee71dSXin LI>4      belong  x size %u
2062b6cee71dSXin LI>8      belong  &1 version #2
2063b6cee71dSXin LI>8      belong  &2 sorted_dirs
2064b6cee71dSXin LI>8      belong  &4 hole_support
206543a5ec4eSXin LI>32     belong  x CRC %#x,
2066b6cee71dSXin LI>36     belong  x edition %u,
2067b6cee71dSXin LI>40     belong  x %u blocks,
2068b6cee71dSXin LI>44     belong  x %u files
2069b6cee71dSXin LI
2070b6cee71dSXin LI# reiserfs - russell@coker.com.au
2071b6cee71dSXin LI0x10034		string	ReIsErFs	ReiserFS V3.5
2072b6cee71dSXin LI0x10034		string	ReIsEr2Fs	ReiserFS V3.6
2073b6cee71dSXin LI0x10034		string	ReIsEr3Fs	ReiserFS V3.6.19
2074b6cee71dSXin LI>0x1002c 	leshort	x		block size %d
2075b6cee71dSXin LI>0x10032	leshort	&2		(mounted or unclean)
2076b6cee71dSXin LI>0x10000	lelong	x		num blocks %d
2077b6cee71dSXin LI>0x10040	lelong	1		tea hash
2078b6cee71dSXin LI>0x10040	lelong	2		yura hash
2079b6cee71dSXin LI>0x10040	lelong	3		r5 hash
2080b6cee71dSXin LI
2081b6cee71dSXin LI# EST flat binary format (which isn't, but anyway)
2082b6cee71dSXin LI# From: Mark Brown <broonie@sirena.org.uk>
2083b6cee71dSXin LI0	string	ESTFBINR	EST flat binary
2084b6cee71dSXin LI
2085b6cee71dSXin LI# Aculab VoIP firmware
2086b6cee71dSXin LI# From: Mark Brown <broonie@sirena.org.uk>
2087b6cee71dSXin LI0	string	VoIP\ Startup\ and	Aculab VoIP firmware
2088b6cee71dSXin LI>35	string	x	format %s
2089b6cee71dSXin LI
2090b6cee71dSXin LI# From: Mark Brown <broonie@sirena.org.uk> [old]
2091b6cee71dSXin LI# From: Behan Webster <behanw@websterwood.com>
2092b6cee71dSXin LI0	belong	0x27051956	u-boot legacy uImage,
2093b6cee71dSXin LI>32	string	x		%s,
2094b6cee71dSXin LI>28	byte	0		Invalid os/
2095b6cee71dSXin LI>28	byte	1		OpenBSD/
2096b6cee71dSXin LI>28	byte	2		NetBSD/
2097b6cee71dSXin LI>28	byte	3		FreeBSD/
2098b6cee71dSXin LI>28	byte	4		4.4BSD/
2099b6cee71dSXin LI>28	byte	5		Linux/
2100b6cee71dSXin LI>28	byte	6		SVR4/
2101b6cee71dSXin LI>28	byte	7		Esix/
2102b6cee71dSXin LI>28	byte	8		Solaris/
2103b6cee71dSXin LI>28	byte	9		Irix/
2104b6cee71dSXin LI>28	byte	10		SCO/
2105b6cee71dSXin LI>28	byte	11		Dell/
2106b6cee71dSXin LI>28	byte	12		NCR/
2107b6cee71dSXin LI>28	byte	13		LynxOS/
2108b6cee71dSXin LI>28	byte	14		VxWorks/
2109b6cee71dSXin LI>28	byte	15		pSOS/
2110b6cee71dSXin LI>28	byte	16		QNX/
2111b6cee71dSXin LI>28	byte	17		Firmware/
2112b6cee71dSXin LI>28	byte	18		RTEMS/
2113b6cee71dSXin LI>28	byte	19		ARTOS/
2114b6cee71dSXin LI>28	byte	20		Unity OS/
2115b6cee71dSXin LI>28	byte	21		INTEGRITY/
2116b6cee71dSXin LI>29	byte	0		\bInvalid CPU,
2117b6cee71dSXin LI>29	byte	1		\bAlpha,
2118b6cee71dSXin LI>29	byte	2		\bARM,
2119b6cee71dSXin LI>29	byte	3		\bIntel x86,
2120b6cee71dSXin LI>29	byte	4		\bIA64,
2121b6cee71dSXin LI>29	byte	5		\bMIPS,
2122b6cee71dSXin LI>29	byte	6		\bMIPS 64-bit,
2123b6cee71dSXin LI>29	byte	7		\bPowerPC,
2124b6cee71dSXin LI>29	byte	8		\bIBM S390,
2125b6cee71dSXin LI>29	byte	9		\bSuperH,
2126b6cee71dSXin LI>29	byte	10		\bSparc,
2127b6cee71dSXin LI>29	byte	11		\bSparc 64-bit,
2128b6cee71dSXin LI>29	byte	12		\bM68K,
2129b6cee71dSXin LI>29	byte	13		\bNios-32,
2130b6cee71dSXin LI>29	byte	14		\bMicroBlaze,
2131b6cee71dSXin LI>29	byte	15		\bNios-II,
2132b6cee71dSXin LI>29	byte	16		\bBlackfin,
2133b6cee71dSXin LI>29	byte	17		\bAVR32,
2134b6cee71dSXin LI>29	byte	18		\bSTMicroelectronics ST200,
213540427ccaSGordon Tetlow>29	byte	19		\bSandbox architecture,
213640427ccaSGordon Tetlow>29	byte	20		\bANDES Technology NDS32,
213740427ccaSGordon Tetlow>29	byte	21		\bOpenRISC 1000,
213840427ccaSGordon Tetlow>29	byte	22		\bARM 64-bit,
213940427ccaSGordon Tetlow>29	byte	23		\bDesignWare ARC,
214040427ccaSGordon Tetlow>29	byte	24		\bx86_64,
214140427ccaSGordon Tetlow>29	byte	25		\bXtensa,
2142d38c30c0SXin LI>29	byte	26		\bRISC-V,
2143b6cee71dSXin LI>30	byte	0		Invalid Image
2144b6cee71dSXin LI>30	byte	1		Standalone Program
2145b6cee71dSXin LI>30	byte	2		OS Kernel Image
2146b6cee71dSXin LI>30	byte	3		RAMDisk Image
2147b6cee71dSXin LI>30	byte	4		Multi-File Image
2148b6cee71dSXin LI>30	byte	5		Firmware Image
2149b6cee71dSXin LI>30	byte	6		Script File
2150b6cee71dSXin LI>30	byte	7		Filesystem Image (any type)
2151b6cee71dSXin LI>30	byte	8		Binary Flat Device Tree BLOB
2152b6cee71dSXin LI>31	byte	0		(Not compressed),
2153b6cee71dSXin LI>31	byte	1		(gzip),
2154b6cee71dSXin LI>31	byte	2		(bzip2),
2155b6cee71dSXin LI>31	byte	3		(lzma),
2156b6cee71dSXin LI>12	belong	x		%d bytes,
2157b6cee71dSXin LI>8	bedate	x		%s,
215843a5ec4eSXin LI>16	belong	x		Load Address: %#08X,
215943a5ec4eSXin LI>20	belong	x		Entry Point: %#08X,
216043a5ec4eSXin LI>4	belong	x		Header CRC: %#08X,
216143a5ec4eSXin LI>24	belong	x		Data CRC: %#08X
2162b6cee71dSXin LI
2163b6cee71dSXin LI# JFFS2 file system
2164b6cee71dSXin LI0	leshort	0x1984		Linux old jffs2 filesystem data little endian
2165d38c30c0SXin LI0	beshort	0x1984		Linux old jffs2 filesystem data big endian
2166b6cee71dSXin LI0	leshort	0x1985		Linux jffs2 filesystem data little endian
2167d38c30c0SXin LI0	beshort	0x1985		Linux jffs2 filesystem data big endian
2168b6cee71dSXin LI
2169b6cee71dSXin LI# Squashfs
2170d38c30c0SXin LI0	name	squashfs
2171b6cee71dSXin LI>28	beshort	x	version %d.
2172b6cee71dSXin LI>30	beshort	x	\b%d,
2173d38c30c0SXin LI>20	beshort 0	uncompressed,
2174d38c30c0SXin LI>20	beshort 1	zlib
2175d38c30c0SXin LI>20	beshort 2	lzma
2176d38c30c0SXin LI>20	beshort 3	lzo
2177d38c30c0SXin LI>20	beshort 4	xz
2178d38c30c0SXin LI>20	beshort 5	lz4
2179d38c30c0SXin LI>20	beshort 6	zstd
2180d38c30c0SXin LI>20	beshort >0	compressed,
2181b6cee71dSXin LI>28	beshort <3
2182b6cee71dSXin LI>>8	belong	x	%d bytes,
2183b6cee71dSXin LI>28	beshort >2
2184b6cee71dSXin LI>>28	beshort <4
2185b6cee71dSXin LI>>>63	bequad x	%lld bytes,
2186b6cee71dSXin LI>>28	beshort >3
2187b6cee71dSXin LI>>>40	bequad x	%lld bytes,
2188b6cee71dSXin LI#>>67	belong	x	%d bytes,
2189b6cee71dSXin LI>4	belong	x	%d inodes,
2190b6cee71dSXin LI>28	beshort <2
2191b6cee71dSXin LI>>32	beshort	x	blocksize: %d bytes,
2192b6cee71dSXin LI>28	beshort >1
2193b6cee71dSXin LI>>28	beshort <4
2194b6cee71dSXin LI>>>51	belong	x	blocksize: %d bytes,
2195b6cee71dSXin LI>>28	beshort >3
2196b6cee71dSXin LI>>>12	belong	x	blocksize: %d bytes,
2197b6cee71dSXin LI>28	beshort <4
2198b6cee71dSXin LI>>39	bedate	x	created: %s
2199b6cee71dSXin LI>28	beshort >3
2200b6cee71dSXin LI>>8	bedate	x	created: %s
2201d38c30c0SXin LI
2202d38c30c0SXin LI0	string	sqsh	Squashfs filesystem, big endian,
2203d38c30c0SXin LI>0	use	squashfs
2204d38c30c0SXin LI
2205b6cee71dSXin LI0	string	hsqs	Squashfs filesystem, little endian,
22062726a701SXin LI>0	use	\^squashfs
2207b6cee71dSXin LI
2208b6cee71dSXin LI# AFS Dump Magic
2209b6cee71dSXin LI# From: Ty Sarna <tsarna@sarna.org>
2210b6cee71dSXin LI0       string                  \x01\xb3\xa1\x13\x22    AFS Dump
2211b6cee71dSXin LI>&0     belong                  x                       (v%d)
2212b6cee71dSXin LI>>&0    byte                    0x76
2213b6cee71dSXin LI>>>&0   belong                  x                       Vol %d,
2214b6cee71dSXin LI>>>>&0  byte                    0x6e
2215b6cee71dSXin LI>>>>>&0 string                  x                       %s
2216b6cee71dSXin LI>>>>>>&1        byte            0x74
2217b6cee71dSXin LI>>>>>>>&0       beshort         2
2218b6cee71dSXin LI>>>>>>>>&4      bedate          x                       on: %s
2219b6cee71dSXin LI>>>>>>>>&0      bedate          =0                      full dump
2220b6cee71dSXin LI>>>>>>>>&0      bedate          !0                      incremental since: %s
2221b6cee71dSXin LI
2222b6cee71dSXin LI#----------------------------------------------------------
2223b6cee71dSXin LI#delta ISO    Daniel Novotny (dnovotny@redhat.com)
2224b6cee71dSXin LI0	string  DISO	Delta ISO data
2225c2931133SXin LI!:strength +50
2226b6cee71dSXin LI>4	belong  x	version %d
2227b6cee71dSXin LI
2228b6cee71dSXin LI# VMS backup savesets - gerardo.cacciari@gmail.com
2229b6cee71dSXin LI#
2230b6cee71dSXin LI4            string  \x01\x00\x01\x00\x01\x00
2231b6cee71dSXin LI>(0.s+16)    string  \x01\x01
2232b6cee71dSXin LI>>&(&0.b+8)  byte    0x42       OpenVMS backup saveset data
2233b6cee71dSXin LI>>>40        lelong  x          (block size %d,
2234b6cee71dSXin LI>>>49        string  >\0        original name '%s',
2235b6cee71dSXin LI>>>2         short   1024       VAX generated)
2236b6cee71dSXin LI>>>2         short   2048       AXP generated)
2237b6cee71dSXin LI>>>2         short   4096       I64 generated)
2238b6cee71dSXin LI
2239b6cee71dSXin LI# Summary: Oracle Clustered Filesystem
2240b6cee71dSXin LI# Created by: Aaron Botsis <redhat@digitalmafia.org>
2241b6cee71dSXin LI8	string		OracleCFS	Oracle Clustered Filesystem,
2242b6cee71dSXin LI>4	long		x		rev %d
2243b6cee71dSXin LI>0	long		x		\b.%d,
2244b6cee71dSXin LI>560	string		x		label: %.64s,
2245b6cee71dSXin LI>136	string		x		mountpoint: %.128s
2246b6cee71dSXin LI
2247b6cee71dSXin LI# Summary: Oracle ASM tagged volume
2248b6cee71dSXin LI# Created by: Aaron Botsis <redhat@digitalmafia.org>
2249b6cee71dSXin LI32	string		ORCLDISK	Oracle ASM Volume,
2250b6cee71dSXin LI>40	string		x		Disk Name: %0.12s
2251b6cee71dSXin LI32	string		ORCLCLRD	Oracle ASM Volume (cleared),
2252b6cee71dSXin LI>40	string		x		Disk Name: %0.12s
2253b6cee71dSXin LI
2254b6cee71dSXin LI# Oracle Clustered Filesystem - Aaron Botsis <redhat@digitalmafia.org>
2255b6cee71dSXin LI8	string		OracleCFS	Oracle Clustered Filesystem,
2256b6cee71dSXin LI>4	long		x		rev %d
2257b6cee71dSXin LI>0	long		x		\b.%d,
2258b6cee71dSXin LI>560	string		x		label: %.64s,
2259b6cee71dSXin LI>136	string		x		mountpoint: %.128s
2260b6cee71dSXin LI
2261b6cee71dSXin LI# Oracle ASM tagged volume - Aaron Botsis <redhat@digitalmafia.org>
2262b6cee71dSXin LI32	string		ORCLDISK	Oracle ASM Volume,
2263b6cee71dSXin LI>40	string		x		Disk Name: %0.12s
2264b6cee71dSXin LI32	string		ORCLCLRD	Oracle ASM Volume (cleared),
2265b6cee71dSXin LI>40	string		x		Disk Name: %0.12s
2266b6cee71dSXin LI
2267b6cee71dSXin LI# Compaq/HP RILOE floppy image
2268b6cee71dSXin LI# From: Dirk Jagdmann <doj@cubic.org>
2269b6cee71dSXin LI0	string	CPQRFBLO	Compaq/HP RILOE floppy image
2270b6cee71dSXin LI
2271b6cee71dSXin LI#------------------------------------------------------------------------------
2272b6cee71dSXin LI# Files-11 On-Disk Structure (File system for various RSX-11 and VMS flavours).
2273b6cee71dSXin LI# These bits come from LBN 1 (home block) of ODS-1, ODS-2 and ODS-5 volumes,
2274b6cee71dSXin LI# which is mapped to VBN 2 of [000000]INDEXF.SYS;1 - gerardo.cacciari@gmail.com
2275b6cee71dSXin LI#
2276b6cee71dSXin LI1008    string          DECFILE11       Files-11 On-Disk Structure
2277b6cee71dSXin LI>525    byte            x               (ODS-%d);
2278b6cee71dSXin LI>1017   string          A               RSX-11, VAX/VMS or OpenVMS VAX file system;
2279b6cee71dSXin LI>1017   string          B
2280b6cee71dSXin LI>>525   byte            2               VAX/VMS or OpenVMS file system;
2281b6cee71dSXin LI>>525   byte            5               OpenVMS Alpha or Itanium file system;
2282b6cee71dSXin LI>984    string          x               volume label is '%-12.12s'
2283b6cee71dSXin LI
2284b6cee71dSXin LI# From: Thomas Klausner <wiz@NetBSD.org>
228548c779cdSXin LI# https://filext.com/file-extension/DAA
2286b6cee71dSXin LI# describes the daa file format. The magic would be:
2287b6cee71dSXin LI0	string		DAA\x0\x0\x0\x0\x0	PowerISO Direct-Access-Archive
2288b6cee71dSXin LI
2289b6cee71dSXin LI# From Albert Cahalan <acahalan@gmail.com>
2290b6cee71dSXin LI# really le32 operation,destination,payloadsize (but quite predictable)
2291b6cee71dSXin LI# 01 00 00 00 00 00 00 c0 00 02 00 00
2292b6cee71dSXin LI0	string		\1\0\0\0\0\0\0\300\0\2\0\0	Marvell Libertas firmware
2293b6cee71dSXin LI
2294b6cee71dSXin LI# From Eric Sandeen
2295b6cee71dSXin LI# GFS2
2296b6cee71dSXin LI0x10000         belong          0x01161970
2297b6cee71dSXin LI>0x10018        belong          0x0000051d      GFS1 Filesystem
2298b6cee71dSXin LI>>0x10024        belong          x               (blocksize %d,
2299b6cee71dSXin LI>>0x10060        string          >\0             lockproto %s)
2300b6cee71dSXin LI>0x10018        belong          0x00000709      GFS2 Filesystem
2301b6cee71dSXin LI>>0x10024        belong          x               (blocksize %d,
2302b6cee71dSXin LI>>0x10060        string          >\0             lockproto %s)
2303b6cee71dSXin LI
23049ce06829SXin LI# Russell Coker <russell@coker.com.au>
2305b6cee71dSXin LI0x10040		string		_BHRfS_M	BTRFS Filesystem
23069ce06829SXin LI>0x1012b	string		>\0		label "%s",
2307b6cee71dSXin LI>0x10090	lelong		x		sectorsize %d,
2308b6cee71dSXin LI>0x10094	lelong		x		nodesize %d,
23099ce06829SXin LI>0x10098	lelong		x		leafsize %d,
231043a5ec4eSXin LI>0x10020	ubelong		x		UUID=%08x-
231143a5ec4eSXin LI>0x10024	ubeshort	x		\b%04x-
231243a5ec4eSXin LI>0x10026	ubeshort	x		\b%04x-
231343a5ec4eSXin LI>0x10028	ubeshort	x		\b%04x-
231443a5ec4eSXin LI>0x1002a	ubeshort	x		\b%04x
231543a5ec4eSXin LI>0x1002c	ubelong		x		\b%08x,
23169ce06829SXin LI>0x10078	lequad		x		%lld/
23179ce06829SXin LI>0x10070	lequad		x		\b%lld bytes used,
23189ce06829SXin LI>0x10088	lequad		x		%lld devices
2319b6cee71dSXin LI
2320a4d6d3b8SXin LI0		string		btrfs-stream	BTRFS stream file
2321a4d6d3b8SXin LI
2322b6cee71dSXin LI# dvdisaster's .ecc
2323b6cee71dSXin LI# From: "Nelson A. de Oliveira" <naoliv@gmail.com>
2324b6cee71dSXin LI0	string	*dvdisaster*	dvdisaster error correction file
2325b6cee71dSXin LI
2326b6cee71dSXin LI# xfs metadump image
2327b6cee71dSXin LI# mb_magic XFSM at 0; superblock magic XFSB at 1 << mb_blocklog
2328b6cee71dSXin LI# but can we do the << ?  For now it's always 512 (0x200) anyway.
2329b6cee71dSXin LI0	string XFSM
2330b6cee71dSXin LI>0x200	string XFSB	XFS filesystem metadump image
2331b6cee71dSXin LI
2332b6cee71dSXin LI# Type:	CROM filesystem
2333b6cee71dSXin LI# From:	Werner Fink <werner@suse.de>
2334b6cee71dSXin LI0	string	CROMFS	CROMFS
2335b6cee71dSXin LI>6	string	>\0	\b version %2.2s,
2336b6cee71dSXin LI>8	ulequad	>0	\b block data at %lld,
2337b6cee71dSXin LI>16	ulequad	>0	\b fblock table at %lld,
2338b6cee71dSXin LI>24	ulequad	>0	\b inode table at %lld,
2339b6cee71dSXin LI>32	ulequad	>0	\b root at %lld,
2340b6cee71dSXin LI>40	ulelong	>0	\b fblock size = %d,
2341b6cee71dSXin LI>44	ulelong	>0	\b block size = %d,
2342b6cee71dSXin LI>48	ulequad	>0	\b bytes = %lld
2343b6cee71dSXin LI
2344b6cee71dSXin LI# Type:	xfs metadump image
2345b6cee71dSXin LI# From:	Daniel Novotny <dnovotny@redhat.com>
2346b6cee71dSXin LI# mb_magic XFSM at 0; superblock magic XFSB at 1 << mb_blocklog
2347b6cee71dSXin LI# but can we do the << ? For now it's always 512 (0x200) anyway.
2348b6cee71dSXin LI0	string	XFSM
2349b6cee71dSXin LI>0x200	string	XFSB	XFS filesystem metadump image
2350b6cee71dSXin LI
2351b6cee71dSXin LI# Type:	delta ISO
2352b6cee71dSXin LI# From:	Daniel Novotny <dnovotny@redhat.com>
2353b6cee71dSXin LI0	string	DISO	Delta ISO data,
2354b6cee71dSXin LI>4	belong	x	version %d
2355b6cee71dSXin LI
2356b6cee71dSXin LI# JFS2 (Journaling File System) image. (Old JFS1 has superblock at 0x1000.)
2357b6cee71dSXin LI# See linux/fs/jfs/jfs_superblock.h for layout; see jfs_filsys.h for flags.
2358b6cee71dSXin LI# From: Adam Buchbinder <adam.buchbinder@gmail.com>
2359b6cee71dSXin LI0x8000	string	JFS1
2360b6cee71dSXin LI# Because it's text-only magic, check a binary value (version) to be sure.
2361b6cee71dSXin LI# Should always be 2, but mkfs.jfs writes it as 1. Needs to be 2 or 1 to be
2362b6cee71dSXin LI# mountable.
2363b6cee71dSXin LI>&0	lelong	<3	JFS2 filesystem image
2364b6cee71dSXin LI# Label is followed by a UUID; we have to limit string length to avoid
2365b6cee71dSXin LI# appending the UUID in the case of a 16-byte label.
2366b6cee71dSXin LI>>&144	regex	[\x20-\x7E]{1,16}	(label "%s")
2367b6cee71dSXin LI>>&0	lequad	x	\b, %lld blocks
2368b6cee71dSXin LI>>&8	lelong	x	\b, blocksize %d
2369b6cee71dSXin LI>>&32	lelong&0x00000006	>0	(dirty)
2370b6cee71dSXin LI>>&36	lelong	>0	(compressed)
2371b6cee71dSXin LI
2372b6cee71dSXin LI# LFS
2373b6cee71dSXin LI0	lelong	0x070162	LFS filesystem image
2374b6cee71dSXin LI>4	lelong	1		version 1,
2375b6cee71dSXin LI>>8	lelong	x		\b blocks %u,
2376b6cee71dSXin LI>>12	lelong	x		\b blocks per segment %u,
2377b6cee71dSXin LI>4	lelong	2		version 2,
2378b6cee71dSXin LI>>8	lelong	x		\b fragments %u,
2379b6cee71dSXin LI>>12	lelong	x		\b bytes per segment %u,
2380b6cee71dSXin LI>16	lelong	x		\b disk blocks %u,
2381b6cee71dSXin LI>20	lelong	x		\b block size %u,
2382b6cee71dSXin LI>24	lelong	x		\b fragment size %u,
2383b6cee71dSXin LI>28	lelong	x		\b fragments per block %u,
2384b6cee71dSXin LI>32	lelong	x		\b start for free list %u,
2385b6cee71dSXin LI>36	lelong	x		\b number of free blocks %d,
2386b6cee71dSXin LI>40	lelong	x		\b number of files %u,
2387b6cee71dSXin LI>44	lelong	x		\b blocks available for writing %d,
2388b6cee71dSXin LI>48	lelong	x		\b inodes in cache %d,
238943a5ec4eSXin LI>52	lelong	x		\b inode file disk address %#x,
2390b6cee71dSXin LI>56	lelong	x		\b inode file inode number %u,
239143a5ec4eSXin LI>60	lelong	x		\b address of last segment written %#x,
239243a5ec4eSXin LI>64	lelong	x		\b address of next segment to write %#x,
239343a5ec4eSXin LI>68	lelong	x		\b address of current segment written %#x
2394b6cee71dSXin LI
2395b6cee71dSXin LI0	string	td\000		floppy image data (TeleDisk, compressed)
2396b6cee71dSXin LI0	string	TD\000		floppy image data (TeleDisk)
2397b6cee71dSXin LI
2398b6cee71dSXin LI0	string	CQ\024		floppy image data (CopyQM,
2399b6cee71dSXin LI>16	leshort	x		%d sectors,
2400b6cee71dSXin LI>18	leshort	x		%d heads.)
2401b6cee71dSXin LI
2402b6cee71dSXin LI0	string	ACT\020Apricot\020disk\020image\032\004	floppy image data (ApriDisk)
2403b6cee71dSXin LI
2404a4d6d3b8SXin LI# URL:		http://fileformats.archiveteam.org/wiki/LoadDskF/SaveDskF
2405a4d6d3b8SXin LI# Update:	Joerg Jenderek
2406a4d6d3b8SXin LI# Note:		called "IBM SKF disk image" by TrID
2407a4d6d3b8SXin LI#		verfied by 7-Zip `7z l -tFAT -slt *.dsk` and
2408a4d6d3b8SXin LI#		`deark -l -m loaddskf  06200D19.DSK`
2409a4d6d3b8SXin LI# Reference:	http://mark0.net/download/triddefs_xml.7z/defs/d/dsk-skf-old.trid.xml
2410a4d6d3b8SXin LI0	beshort	0xAA58
2411a4d6d3b8SXin LI>0	use		SaveDskF
2412a4d6d3b8SXin LI# Reference:	http://mark0.net/download/triddefs_xml.7z/defs/d/dsk-skf.trid.xml
2413a4d6d3b8SXin LI0	beshort	0xAA59
2414a4d6d3b8SXin LI>0	use		SaveDskF
2415a4d6d3b8SXin LI# Reference:	http://mark0.net/download/triddefs_xml.7z/defs/d/dsk-skf-comp.trid.xml
2416a4d6d3b8SXin LI0	beshort	0xAA5A
2417a4d6d3b8SXin LI# skip foo by additional check for unused upper byte of media type in SaveDskF header
2418a4d6d3b8SXin LI#>3	ubyte		=0
2419a4d6d3b8SXin LI# skip bar by additional check for valid "low" number of heads in SaveDskF header
2420a4d6d3b8SXin LI#>>26	uleshort	<3
2421a4d6d3b8SXin LI# skip foo by additional check for unused double word field in SaveDskF header
2422a4d6d3b8SXin LI#>>>30	long		=0
2423a4d6d3b8SXin LI#>>>>0	use		SaveDskF
2424a4d6d3b8SXin LI>0	use		SaveDskF
2425a4d6d3b8SXin LI# display information about IBM SaveDskF floppy disk images
2426a4d6d3b8SXin LI0	name			SaveDskF
2427a4d6d3b8SXin LI# SaveDskF magic
2428a4d6d3b8SXin LI>0	beshort	x		floppy image data (IBM SaveDskF
2429a4d6d3b8SXin LI#!:mime	application/octet-stream
2430a4d6d3b8SXin LI!:mime	application/x-ibm-dsk
2431a4d6d3b8SXin LI!:ext	dsk
2432a4d6d3b8SXin LI# also suffix with digit (1dk .2dk ...); NO example FOUND!
2433a4d6d3b8SXin LI#!:ext	dsk/1dk/2dk
2434a4d6d3b8SXin LI>1	ubyte		=0x58	\b, old)
2435a4d6d3b8SXin LI>1	ubyte		=0x59	\b)
2436a4d6d3b8SXin LI>1	ubyte		=0x5A	\b, compressed)
2437a4d6d3b8SXin LI# media type; the first byte of the FAT like: 0xF0 (usual floppy) 0xF9 0xFE
2438a4d6d3b8SXin LI# https://en.wikipedia.org/wiki/Design_of_the_FAT_file_system
2439a4d6d3b8SXin LI>2	ubyte		!0xF0	\b, Media descriptor %#x
2440a4d6d3b8SXin LI# upper byte of media type is not used; so this seems to be nil
2441a4d6d3b8SXin LI>3	ubyte		!0	\b, upper byte of media type %#x
2442a4d6d3b8SXin LI# sector size in bytes as in the BIOS parameter block like: 512 ; SAVEDSKF.EXE with other sizes produce garbage images
2443a4d6d3b8SXin LI>4	uleshort	!512	\b, Bytes/sector %u
2444a4d6d3b8SXin LI# cluster mask; number of sectors per cluster, minus 1
2445a4d6d3b8SXin LI>6	uleshort+1	>1	\b, sectors/cluster %u
2446a4d6d3b8SXin LI#>6	uleshort+1	x	\b, sectors/cluster %u
2447a4d6d3b8SXin LI# cluster shift; log2(cluster size / sector size) like: 0~1=ClusterSize/SectorSize
2448a4d6d3b8SXin LI>7	ubyte		>0	\b, cluster shift %u
2449a4d6d3b8SXin LI#>7	ubyte		x	\b, cluster shift %u
2450a4d6d3b8SXin LI# reserved sectors; as in the BIOS parameter block like: 1 256 (2M256R-K.DSK)
2451a4d6d3b8SXin LI>8	uleshort	>1	\b, reserved sectors %u
2452a4d6d3b8SXin LI#>8	uleshort	x	\b, reserved sectors %u
2453a4d6d3b8SXin LI# FAT copies; as in the BIOS parameter block like: 2 (usual) 1 (2-NK.DSK)
2454a4d6d3b8SXin LI>10	ubyte		!2	\b, FAT
2455a4d6d3b8SXin LI# plural s
2456a4d6d3b8SXin LI>>10	ubyte		>1	\bs
2457a4d6d3b8SXin LI>>10	ubyte		x	%u
2458a4d6d3b8SXin LI# root directory entries; as in the BIOS parameter block like: 224 (usual) 64 (H1-NK.DSK) 4096 (2-NK.DSK)
2459a4d6d3b8SXin LI>11	uleshort	!224	\b, root entries %u
2460a4d6d3b8SXin LI# sector number of first cluster (count sectors used by boot sector, FATs and root directory) like: 7 10 29 33 288
2461a4d6d3b8SXin LI>13	uleshort	!33	\b, 1st cluster at sector %u
2462a4d6d3b8SXin LI# number of clusters in image; empty clusters at the end are not saved and counted like: 2372 2848
2463a4d6d3b8SXin LI>15	uleshort	x	\b, %u clusters
2464a4d6d3b8SXin LI# sectors/FAT; as in the BIOS parameter block like: 1 (H1-NK.DSK) 7 9
2465a4d6d3b8SXin LI>17	ubyte		!9	\b, sectors/FAT %u
2466a4d6d3b8SXin LI# sector number of root directory (ie, count of sectors used by boot sector and FATs) like: 3 (H1-NK.DSK) 9 10 15 19 274 (2M256R-K.DSK)
2467a4d6d3b8SXin LI>18	uleshort	!19	\b, root directory at sector %u
2468a4d6d3b8SXin LI# checksum; sum of all bytes in the file
2469a4d6d3b8SXin LI>20	ulelong		x	\b, checksum %#8.8x
2470a4d6d3b8SXin LI# cylinders; number of cylinders like: 40 80
2471a4d6d3b8SXin LI>24 	uleshort	!80	\b, %u cylinders
2472a4d6d3b8SXin LI#>24 	uleshort	x	\b, %u cylinders
2473a4d6d3b8SXin LI# heads; number of heads as in the BIOS parameter block like: 1 (H1-NK.DSK) 2
2474a4d6d3b8SXin LI>26	uleshort	!2	\b, heads %u
2475a4d6d3b8SXin LI#>26	uleshort	x	\b, heads %u
2476a4d6d3b8SXin LI# sectors/track; number of sectors per track as in the BIOS parameter block like: 8 15 18 36
2477a4d6d3b8SXin LI>28	uleshort	!18	\b, sectors/track %u
2478a4d6d3b8SXin LI#>28	uleshort	x	\b, sectors/track %u
2479a4d6d3b8SXin LI# unused double word field seems to be always like: 0
2480a4d6d3b8SXin LI>30	ulelong		!0	\b, at 0x1E %#x
2481a4d6d3b8SXin LI# number of sectors in images like: 1017 2786 2880
2482a4d6d3b8SXin LI>34 	uleshort	x	\b, sectors %u
2483a4d6d3b8SXin LI# if string is "printable" it can be a real comment
2484a4d6d3b8SXin LI>(36.s)	ubyte		!0x00
2485a4d6d3b8SXin LI# if 1st sector is far enough away (> 0x29) then there is space for comment part
2486a4d6d3b8SXin LI>>38	uleshort	>41
2487a4d6d3b8SXin LI# offset to comment string like: 28h=40
2488a4d6d3b8SXin LI>>>36	uleshort	x	\b, at %#x
2489a4d6d3b8SXin LI# comment string terminated with \r\n\0
2490a4d6d3b8SXin LI>>>(36.s)	string	x	"%s"
2491a4d6d3b8SXin LI# offset to the first sector like: 0 (If this is 0, assume it is 0x200) 29h=41 (DISPLAY3.DSK) 31h 43h 45h 46h 48h 50h 200h=512
2492a4d6d3b8SXin LI>38	uleshort	!0	\b, 1st sector at %#x
2493a4d6d3b8SXin LI# FOR DEBUGGING!
2494a4d6d3b8SXin LI#>(38.s)	ubelong		x	SECTOR CONTENT %x
2495a4d6d3b8SXin LI# not compressed floppy image implies readable DOS boot sector inside image
2496a4d6d3b8SXin LI>>1		ubyte	!0x5A
2497a4d6d3b8SXin LI# when not compressed it is readable as DOS boot sector via ./filesystems
2498a4d6d3b8SXin LI#>>>(38.s)	indirect x	\b; contains
2499a4d6d3b8SXin LI>38	uleshort	=0	\b, 1st sector at 0x200 (0)
2500a4d6d3b8SXin LI# maybe standard DOS boot sector; NO example FOUND HERE!
2501a4d6d3b8SXin LI#>>0x200	indirect	x	\b; contains
2502b6cee71dSXin LI
2503b6cee71dSXin LI0	string	\074CPM_Disk\076	disk image data (YAZE)
2504b6cee71dSXin LI
2505a4d6d3b8SXin LI# From: 	Joerg Jenderek
2506a4d6d3b8SXin LI# URL:		https://en.wikipedia.org/wiki/Central_Point_Software#cite_note-6
2507a4d6d3b8SXin LI# Reference:	https://www.robcraig.com/download/transcopy-5-x-file-format
2508a4d6d3b8SXin LI#		https://www.robcraig.com/download/transcopy-file-format-by-gene-thompson
2509a4d6d3b8SXin LI#		http://mark0.net/download/triddefs_xml.7z/defs/t/tc-transcopy.trid.xml
2510a4d6d3b8SXin LI# TransCopy signature
2511a4d6d3b8SXin LI0		beshort		0x5AA5
2512a4d6d3b8SXin LI# skip Intel serial flash ROM with invalid 0 disk sides handled by ./intel
2513a4d6d3b8SXin LI>0x103		ubyte		!0
2514a4d6d3b8SXin LI# skip Intel serial flash ROM with unlikely "high" start cylinder 100 handled by ./intel
2515a4d6d3b8SXin LI#>>0x101		ubyte		<100		VALID_START_CYLINDER
2516a4d6d3b8SXin LI# skip Intel serial flash ROM with unlikely description handled by ./intel
2517a4d6d3b8SXin LI#>>>2		beshort		!0xF00f		VALID_DESCRIPTION
2518a4d6d3b8SXin LI# skip Intel serial flash ROM with invalid disk types 89h 88h handled by ./intel
2519a4d6d3b8SXin LI#>>>>0x100	byte		!0x89		VALID_DISK_TYPE
2520a4d6d3b8SXin LI>>0	use	tc-floppy
2521a4d6d3b8SXin LI#	display information of Central Point Software (CPS) Option Board TransCopy floppy image
2522a4d6d3b8SXin LI0	name		tc-floppy
2523a4d6d3b8SXin LI>0		beshort		x		TransCopy disk image
2524a4d6d3b8SXin LI#!:mime	application/octet-stream
2525a4d6d3b8SXin LI!:mime	application/x-floppy-image-tc
2526a4d6d3b8SXin LI# like: disk04.tc VOCALC2.TC WIZ5_A.tc WIZ2_720.IMG
2527a4d6d3b8SXin LI!:ext	tc/img
2528a4d6d3b8SXin LI# 1st description (optional 0-terminated maximal 32) like:
2529a4d6d3b8SXin LI# "Project Workbench 2.20" "Visi On Calc" "Wizardry V Disk 1 of 3"
2530a4d6d3b8SXin LI>2		string		>\0		%.32s
2531a4d6d3b8SXin LI# 2nd desc. (optional 0-terminated maximal 32) like:
2532a4d6d3b8SXin LI# "(1988)." "Advanced - Utility" 'Program Disk 2"
2533a4d6d3b8SXin LI>0x22		string		>\0		"%.32s"
2534a4d6d3b8SXin LI# Looks like ascii (like MESSAGES) formatted with attribute bytes (190)?
2535a4d6d3b8SXin LI# not needed for disk copy
2536a4d6d3b8SXin LI#>>0x42		string		x		'%.190s'
2537a4d6d3b8SXin LI#>>0x88		lestring16	x		"%.8s"
2538a4d6d3b8SXin LI# disktype: 2~MFM High Density 3~MFM Double Density 4~Apple II GCR 5~FM Single Density
2539a4d6d3b8SXin LI# 6~Commodore GCR 7~MFM Double Density 8~Commodore Amiga Ch~Atari FM FFh~Unknown
2540a4d6d3b8SXin LI>0x100		ubyte		!0xFF		\b, disk type %u
2541a4d6d3b8SXin LI# StartingCylinder like: 0
2542a4d6d3b8SXin LI>0x101		ubyte		x		\b, cylinder
2543a4d6d3b8SXin LI>0x101		ubyte		!0		start=%u
2544a4d6d3b8SXin LI# EndingCylinder like: 40 (often) 41 79
2545a4d6d3b8SXin LI>0x102		ubyte		x		end=%u
2546a4d6d3b8SXin LI# NumberOfSides like: 2
2547a4d6d3b8SXin LI>0x103		ubyte		!2		\b, %u sides
2548a4d6d3b8SXin LI# TrackIncrement like: 1
2549a4d6d3b8SXin LI>0x104		ubyte		!1		\b, track increment %u
2550a4d6d3b8SXin LI# TrackPosTbl Track skew
2551a4d6d3b8SXin LI#>0x105		ubequad		x		\b, Track skew %#16.16llx
2552a4d6d3b8SXin LI# TrackOffsTbl
2553a4d6d3b8SXin LI#>0x305		ubequad		x		\b, TrackOffsTbl %#16.16llx
2554a4d6d3b8SXin LI# TrackLngthTbl
2555a4d6d3b8SXin LI#>0x505		ubequad		x		\b, TrackLngthTbl %#16.16llx
2556a4d6d3b8SXin LI# TrackTypeTable
2557a4d6d3b8SXin LI#>0x705		ubequad		x		\b, TrackTypeTable %#16.16llx
2558a4d6d3b8SXin LI# Address mark timing
2559a4d6d3b8SXin LI#>0x905		ubequad		x		\b, Address mark timing %#16.16llx
2560a4d6d3b8SXin LI# Track fragment
2561a4d6d3b8SXin LI#>0x2905 ubequad			!0		\b, Track fragment %#16.16llx
2562a4d6d3b8SXin LI# Track data
2563a4d6d3b8SXin LI#>0x4000		ubequad		!0		\b, Track data %#16.16llx
2564a4d6d3b8SXin LI
2565b6cee71dSXin LI# ReFS
2566b6cee71dSXin LI# Richard W.M. Jones <rjones@redhat.com>
2567b6cee71dSXin LI0	string	\0\0\0ReFS\0	ReFS filesystem image
2568b6cee71dSXin LI
2569b6cee71dSXin LI# EFW encase image file format:
2570b6cee71dSXin LI# Gregoire Passault
2571b6cee71dSXin LI# http://www.forensicswiki.org/wiki/Encase_image_file_format
2572b6cee71dSXin LI0	string	EVF\x09\x0d\x0a\xff\x00	EWF/Expert Witness/EnCase image file format
2573b6cee71dSXin LI
2574b6cee71dSXin LI# UBIfs
2575b6cee71dSXin LI# Linux kernel sources: fs/ubifs/ubifs-media.h
2576cd0b4959SXin LI0	lelong	0x06101831
2577cd0b4959SXin LI>0x16	leshort	0		UBIfs image
2578b6cee71dSXin LI>0x08	lequad	x		\b, sequence number %llu
2579b6cee71dSXin LI>0x10	leshort x		\b, length %u
258043a5ec4eSXin LI>0x04	lelong	x		\b, CRC %#08x
2581b6cee71dSXin LI
2582cd0b4959SXin LI0	lelong	0x23494255
2583cd0b4959SXin LI>0x04	leshort	<2
2584b6cee71dSXin LI>0x05	string	\0\0\0
2585b6cee71dSXin LI>0x1c	string	\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0
2586cd0b4959SXin LI>0x04	leshort	x		UBI image, version %u
2587cd0b4959SXin LI
2588cd0b4959SXin LI# NEC PC-88 2D disk image
2589cd0b4959SXin LI# From Fabio R. Schmidlin <sd-snatcher@users.sourceforge.net>
2590cd0b4959SXin LI0x20		ulelong&0xFFFFFEFF	0x2A0
2591cd0b4959SXin LI>0x10		string			\0\0\0\0\0\0\0\0\0\0
2592cd0b4959SXin LI>>0x280		string			\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0
2593cd0b4959SXin LI>>>0x1A		ubyte&0xEF		0
2594cd0b4959SXin LI>>>>0x1B	ubyte&0x8F		0
2595cd0b4959SXin LI>>>>>0x1B	ubyte&70		<0x40
2596cd0b4959SXin LI>>>>>>0x1C	ulelong			>0x21
2597cd0b4959SXin LI>>>>>>>0	regex	[[:print:]]*	NEC PC-88 disk image, name=%s
2598cd0b4959SXin LI>>>>>>>>0x1B	ubyte	0		\b, media=2D
2599cd0b4959SXin LI>>>>>>>>0x1B	ubyte	0x10		\b, media=2DD
2600cd0b4959SXin LI>>>>>>>>0x1B	ubyte	0x20		\b, media=2HD
2601cd0b4959SXin LI>>>>>>>>0x1B	ubyte	0x30		\b, media=1D
2602cd0b4959SXin LI>>>>>>>>0x1B	ubyte	0x40		\b, media=1DD
2603cd0b4959SXin LI>>>>>>>>0x1A	ubyte	0x10		\b, write-protected
260440427ccaSGordon Tetlow
260540427ccaSGordon Tetlow# HDD Raw Copy Tool disk image, file extension: .imgc
260640427ccaSGordon Tetlow# From Benjamin Vanheuverzwijn <bvanheu@gmail.com>
260740427ccaSGordon Tetlow0	pstring	HDD\ Raw\ Copy\ Tool	%s
260840427ccaSGordon Tetlow>0x100	pstring	x			%s
260940427ccaSGordon Tetlow>0x200	pstring	x			- HD model: %s
261040427ccaSGordon Tetlow#>0x300	pstring	x			unknown %s
261140427ccaSGordon Tetlow>0x400	pstring	x			serial: %s
261240427ccaSGordon Tetlow#>0x500	pstring	x			unknown: %s
261340427ccaSGordon Tetlow!:ext	imgc
261443a5ec4eSXin LI
261543a5ec4eSXin LI# http://martin.hinner.info/fs/bfs/bfs-structure.html
261643a5ec4eSXin LI0	lelong	0x1BADFACE		SCO UnixWare BFS filesystem
261743a5ec4eSXin LI
261843a5ec4eSXin LI# https://arstechnica.com/information-technology/2018/07/the-beos-filesystem/
261943a5ec4eSXin LI32	lelong	0x42465331		BE/OS BFS1 filesystem
262043a5ec4eSXin LI>36	lelong	x			\b, byte order %d
262143a5ec4eSXin LI>40	lelong	x			\b, block size %d
262243a5ec4eSXin LI>44	lelong	x			\b, block shift %d
262343a5ec4eSXin LI>48	lequad	x			\b, total blocks %lld
262443a5ec4eSXin LI>56	lequad	x			\b, used blocks %lld
262543a5ec4eSXin LI
262643a5ec4eSXin LI
262743a5ec4eSXin LI0	name next
262843a5ec4eSXin LI>0	lelong	x			\b, size %d
262943a5ec4eSXin LI>4	string	x			\b, label %s
263043a5ec4eSXin LI
263143a5ec4eSXin LI# https://opensource.apple.com/source/IOStorageFamily/IOStorageFamily-44.3\
263243a5ec4eSXin LI# /IONeXTPartitionScheme.h
263343a5ec4eSXin LI0	string	NeXT			NeXT version 1 disklabel
263443a5ec4eSXin LI>12	use next
263543a5ec4eSXin LI0	string	dlV1			NeXT version 2 disklabel
263643a5ec4eSXin LI>12	use next
263743a5ec4eSXin LI0	string	dlV2			NeXT version 3 disklabel
263843a5ec4eSXin LI>12	use next
263943a5ec4eSXin LI
264043a5ec4eSXin LI# bcachefs
264143a5ec4eSXin LI# From: Thomas Wei�schuh <thomas@t-8ch.de>
264243a5ec4eSXin LI
264343a5ec4eSXin LI0	name	bcachefs-uuid
264443a5ec4eSXin LI>0	ubelong		x	\b%08x
264543a5ec4eSXin LI>4	ubeshort	x	\b-%04x
264643a5ec4eSXin LI>6	ubeshort	x	\b-%04x
264743a5ec4eSXin LI>8	ubeshort	x	\b-%04x
264843a5ec4eSXin LI>10	ubelong		x	\b-%08x
264943a5ec4eSXin LI>14	ubeshort	x	\b%04x
265043a5ec4eSXin LI
265143a5ec4eSXin LI0x1018		string		\xc6\x85\x73\xf6\x4e\x1a\x45\xca\x82\x65\xf5\x7f\x48\xba\x6d\x81	bcachefs
265243a5ec4eSXin LI>0x1068		lequad		8	\b, UUID=
265343a5ec4eSXin LI>>0x1038	use		bcachefs-uuid
265443a5ec4eSXin LI>>0x1048	string		>0	\b, label "%.32s"
265543a5ec4eSXin LI>>0x1010	uleshort	x	\b, version %u
265643a5ec4eSXin LI>>0x1012	uleshort	x	\b, min version %u
265743a5ec4eSXin LI>>0x107a	byte		x	\b, device %d
265843a5ec4eSXin LI# assumes the first field is the members field
265943a5ec4eSXin LI>>0x12f4	ulelong		0x01	\b/UUID=
266043a5ec4eSXin LI>>>0x12f0	default		x
266143a5ec4eSXin LI>>>&(0x107a.b*56)	use	bcachefs-uuid
266243a5ec4eSXin LI>>0x107b	byte		x	\b, %d devices
266343a5ec4eSXin LI>>0x1090	byte		^0x02	\b (unclean)
2664a2dfb722SXin LI
2665a2dfb722SXin LI# EROFS
2666a2dfb722SXin LI# https://kernel.googlesource.com/pub/scm/linux/kernel/git/xiang/erofs-utils/\
2667a2dfb722SXin LI# +/refs/heads/experimental/include/erofs_fs.h#12
2668a2dfb722SXin LI1024		lelong		0xE0F5E1E2	EROFS filesystem
2669a2dfb722SXin LI#>1028		lelong		x		\b, checksum=%#x
2670a2dfb722SXin LI>1032		lelong		>0		\b, compat:
2671a2dfb722SXin LI>>1032		lelong		&1		SB_CHKSUM
2672a2dfb722SXin LI>>1032		lelong		&2		MTIME
2673a2dfb722SXin LI>1036		byte		x		\b, blocksize=%u
2674a2dfb722SXin LI>1037		byte		x		\b, exslots=%u
2675a2dfb722SXin LI#>1038		leshort		x		\b, root_nid=%d
2676a2dfb722SXin LI#>1040		lequad		x		\b, inodes=%ld
2677a2dfb722SXin LI#>1048		leldate		x		\b, build_time=%s
2678a2dfb722SXin LI#>1056		lelong		x		\b.%d
2679a2dfb722SXin LI#>1060		lelong		x		\b, blocks=%d
2680a2dfb722SXin LI#>1064		lelong		x		\b, metadata@%#x
2681a2dfb722SXin LI#>1068		lelong		x		\b, xattr@%#x
2682a2dfb722SXin LI>1072		guid		x		\b, uuid=%s
2683a2dfb722SXin LI>1088		string		>0		\b, name=%s
2684a2dfb722SXin LI>1104		lelong		>0		\b, incompat:
2685a2dfb722SXin LI>>1104		lelong		&1		LZ4_0PADDING
2686a2dfb722SXin LI>>1104		lelong		&2		BIG_PCLUSTER
2687a2dfb722SXin LI>>1104		lelong		&4		CHUNKED_FILE
2688a2dfb722SXin LI>>1104		lelong		&8		DEVICE_TABLE
2689a2dfb722SXin LI>>1104		lelong		&16		ZTAILPACKING
2690