1#------------------------------------------------------------------------------
2# $File: filesystems,v 1.87 2014/03/01 03:04:06 christos Exp $
3# filesystems:  file(1) magic for different filesystems
4#
50	name	partid
6>0	ubyte	0x00	Unused
7>0	ubyte	0x01	12-bit FAT
8>0	ubyte	0x02	XENIX /
9>0	ubyte	0x03	XENIX /usr
10>0	ubyte	0x04	16-bit FAT, less than 32M
11>0	ubyte	0x05	extended partition
12>0	ubyte	0x06	16-bit FAT, more than 32M
13>0	ubyte	0x07	OS/2 HPFS, NTFS, QNX2, Adv. UNIX
14>0	ubyte	0x08	AIX or os, or etc.
15>0	ubyte	0x09	AIX boot partition or Coherent
16>0	ubyte	0x0a	O/2 boot manager or Coherent swap
17>0	ubyte	0x0b	32-bit FAT
18>0	ubyte	0x0c	32-bit FAT, LBA-mapped
19>0	ubyte	0x0d	7XXX, LBA-mapped
20>0	ubyte	0x0e	16-bit FAT, LBA-mapped
21>0	ubyte	0x0f	extended partition, LBA-mapped
22>0	ubyte	0x10	OPUS
23>0	ubyte	0x11 	OS/2 DOS 12-bit FAT
24>0	ubyte	0x12 	Compaq diagnostics
25>0	ubyte	0x14 	OS/2 DOS 16-bit FAT <32M
26>0	ubyte	0x16 	OS/2 DOS 16-bit FAT >=32M
27>0	ubyte	0x17 	OS/2 hidden IFS
28>0	ubyte	0x18 	AST Windows swapfile
29>0	ubyte	0x19 	Willowtech Photon coS
30>0	ubyte	0x1b 	hidden win95 fat 32
31>0	ubyte	0x1c 	hidden win95 fat 32 lba
32>0	ubyte	0x1d	hidden win95 fat 16 lba
33>0	ubyte	0x20 	Willowsoft OFS1
34>0	ubyte	0x21 	reserved
35>0	ubyte	0x23 	reserved
36>0	ubyte	0x24	NEC DOS
37>0	ubyte	0x26 	reserved
38>0	ubyte	0x31 	reserved
39>0	ubyte	0x32	Alien Internet Services NOS
40>0	ubyte	0x33 	reserved
41>0	ubyte	0x34 	reserved
42>0	ubyte	0x35 	JFS on OS2
43>0	ubyte	0x36 	reserved
44>0	ubyte	0x38 	Theos
45>0	ubyte	0x39 	Plan 9, or Theos spanned
46>0	ubyte	0x3a 	Theos ver 4 4gb partition
47>0	ubyte	0x3b 	Theos ve 4 extended partition
48>0	ubyte	0x3c 	PartitionMagic recovery
49>0	ubyte	0x3d 	Hidden Netware
50>0	ubyte	0x40 	VENIX 286 or LynxOS
51>0	ubyte	0x41	PReP
52>0	ubyte	0x42	linux swap sharing DRDOS disk
53>0	ubyte	0x43	linux sharing DRDOS disk
54>0	ubyte	0x44	GoBack change utility
55>0	ubyte	0x45	Boot US Boot manager
56>0	ubyte	0x46	EUMEL/Elan or Ergos 3
57>0	ubyte	0x47	EUMEL/Elan or Ergos 3
58>0	ubyte	0x48	EUMEL/Elan or Ergos 3
59>0	ubyte	0x4a	ALFX/THIN filesystem for DOS
60>0	ubyte	0x4c	Oberon partition
61>0	ubyte	0x4d 	QNX4.x
62>0	ubyte	0x4e 	QNX4.x 2nd part
63>0	ubyte	0x4f 	QNX4.x 3rd part
64>0	ubyte	0x50 	DM (disk manager)
65>0	ubyte	0x51 	DM6 Aux1 (or Novell)
66>0	ubyte	0x52 	CP/M or Microport SysV/AT
67>0	ubyte	0x53 	DM6 Aux3
68>0	ubyte	0x54	DM6 DDO
69>0	ubyte	0x55	EZ-Drive (disk manager)
70>0	ubyte	0x56	Golden Bow (disk manager)
71>0	ubyte	0x57	Drive PRO
72>0	ubyte	0x5c	Priam Edisk (disk manager)
73>0	ubyte	0x61	SpeedStor
74>0	ubyte	0x63	GNU HURD or Mach or Sys V/386
75>0	ubyte	0x64	Novell Netware 2.xx or Speedstore
76>0	ubyte	0x65	Novell Netware 3.xx
77>0	ubyte	0x66	Novell 386 Netware
78>0	ubyte	0x67	Novell
79>0	ubyte	0x68	Novell
80>0	ubyte	0x69	Novell
81>0	ubyte	0x70	DiskSecure Multi-Boot
82>0	ubyte	0x71	reserved
83>0	ubyte	0x73	reserved
84>0	ubyte	0x74	reserved
85>0	ubyte	0x75	PC/IX
86>0	ubyte	0x76	reserved
87>0	ubyte	0x77	M2FS/M2CS partition
88>0	ubyte	0x78	XOSL boot loader filesystem
89>0	ubyte	0x80	MINIX until 1.4a
90>0	ubyte	0x81	MINIX since 1.4b
91>0	ubyte	0x82	Linux swap or Solaris
92>0	ubyte	0x83	Linux native
93>0	ubyte	0x84	OS/2 hidden C: drive
94>0	ubyte	0x85	Linux extended partition
95>0	ubyte	0x86	NT FAT volume set
96>0	ubyte	0x87	NTFS volume set or HPFS mirrored
97>0	ubyte	0x8a	Linux Kernel AiR-BOOT partition
98>0	ubyte	0x8b	Legacy Fault tolerant FAT32
99>0	ubyte	0x8c	Legacy Fault tolerant FAT32 ext
100>0	ubyte	0x8d	Hidden free FDISK FAT12
101>0	ubyte	0x8e	Linux Logical Volume Manager
102>0	ubyte	0x90	Hidden free FDISK FAT16
103>0	ubyte	0x91	Hidden free FDISK DOS EXT
104>0	ubyte	0x92	Hidden free FDISK FAT16 Big
105>0	ubyte	0x93	Amoeba filesystem
106>0	ubyte	0x94	Amoeba bad block table
107>0	ubyte	0x95	MIT EXOPC native partitions
108>0	ubyte	0x97	Hidden free FDISK FAT32
109>0	ubyte	0x98	Datalight ROM-DOS Super-Boot
110>0	ubyte	0x99	Mylex EISA SCSI
111>0	ubyte	0x9a	Hidden free FDISK FAT16 LBA
112>0	ubyte	0x9b	Hidden free FDISK EXT LBA
113>0	ubyte	0x9f	BSDI?
114>0	ubyte	0xa0	IBM Thinkpad hibernation
115>0	ubyte	0xa1	HP Volume expansion (SpeedStor)
116>0	ubyte	0xa3	HP Volume expansion (SpeedStor)
117>0	ubyte	0xa4	HP Volume expansion (SpeedStor)
118>0	ubyte	0xa5	386BSD partition type
119>0	ubyte	0xa6	OpenBSD partition type
120>0	ubyte	0xa7	NeXTSTEP 486
121>0	ubyte	0xa8	Apple UFS
122>0	ubyte	0xa9	NetBSD partition type
123>0	ubyte	0xaa	Olivetty Fat12 1.44MB Service part
124>0	ubyte	0xab	Apple Boot
125>0	ubyte	0xae	SHAG OS filesystem
126>0	ubyte	0xaf	Apple HFS
127>0	ubyte	0xb0	BootStar Dummy
128>0	ubyte	0xb1	reserved
129>0	ubyte	0xb3	reserved
130>0	ubyte	0xb4	reserved
131>0	ubyte	0xb6	reserved
132>0	ubyte	0xb7	BSDI BSD/386 filesystem
133>0	ubyte	0xb8	BSDI BSD/386 swap
134>0	ubyte	0xbb	Boot Wizard Hidden
135>0	ubyte	0xbe	Solaris 8 partition type
136>0	ubyte	0xbf	Solaris partition type
137>0	ubyte	0xc0 	CTOS
138>0	ubyte	0xc1 	DRDOS/sec (FAT-12)
139>0	ubyte	0xc2 	Hidden Linux
140>0	ubyte	0xc3 	Hidden Linux swap
141>0	ubyte	0xc4 	DRDOS/sec (FAT-16, < 32M)
142>0	ubyte	0xc5 	DRDOS/sec (EXT)
143>0	ubyte	0xc6 	DRDOS/sec (FAT-16, >= 32M)
144>0	ubyte	0xc7 	Syrinx (Cyrnix?) or HPFS disabled
145>0	ubyte	0xc8 	Reserved for DR-DOS 8.0+
146>0	ubyte	0xc9 	Reserved for DR-DOS 8.0+
147>0	ubyte	0xca 	Reserved for DR-DOS 8.0+
148>0	ubyte	0xcb 	DR-DOS 7.04+ Secured FAT32 CHS
149>0	ubyte	0xcc 	DR-DOS 7.04+ Secured FAT32 LBA
150>0	ubyte	0xcd	CTOS Memdump
151>0	ubyte	0xce 	DR-DOS 7.04+ FAT16X LBA
152>0	ubyte	0xcf 	DR-DOS 7.04+ EXT LBA
153>0	ubyte	0xd0 	REAL/32 secure big partition
154>0	ubyte	0xd1 	Old Multiuser DOS FAT12
155>0	ubyte	0xd4 	Old Multiuser DOS FAT16 Small
156>0	ubyte	0xd5 	Old Multiuser DOS Extended
157>0	ubyte	0xd6 	Old Multiuser DOS FAT16 Big
158>0	ubyte	0xd8 	CP/M 86
159>0	ubyte	0xdb 	CP/M or Concurrent CP/M
160>0	ubyte	0xdd 	Hidden CTOS Memdump
161>0	ubyte	0xde 	Dell PowerEdge Server utilities
162>0	ubyte	0xdf 	DG/UX virtual disk manager
163>0	ubyte	0xe0 	STMicroelectronics ST AVFS
164>0	ubyte	0xe1 	DOS access or SpeedStor 12-bit
165>0	ubyte	0xe3 	DOS R/O or Storage Dimensions
166>0	ubyte	0xe4 	SpeedStor 16-bit FAT < 1024 cyl.
167>0	ubyte	0xe5	reserved
168>0	ubyte	0xe6	reserved
169>0	ubyte	0xeb 	BeOS
170>0	ubyte	0xee	GPT Protective MBR
171>0	ubyte	0xef	EFI system partition
172>0	ubyte	0xf0 	Linux PA-RISC boot loader
173>0	ubyte	0xf1 	SpeedStor or Storage Dimensions
174>0	ubyte	0xf2 	DOS 3.3+ Secondary
175>0	ubyte	0xf3	reserved
176>0	ubyte	0xf4	SpeedStor large partition
177>0	ubyte	0xf5	Prologue multi-volumen partition
178>0	ubyte	0xf6 	reserved
179>0	ubyte	0xf9 	pCache: ext2/ext3 persistent cache
180>0	ubyte	0xfa 	Bochs x86 emulator
181>0	ubyte	0xfb 	VMware File System
182>0	ubyte	0xfc 	VMware Swap
183>0	ubyte	0xfd 	Linux RAID partition persistent sb
184>0	ubyte	0xfe	LANstep or IBM PS/2 IML
185>0	ubyte	0xff 	Xenix Bad Block Table
186
1870	string	\366\366\366\366	PC formatted floppy with no filesystem
188# Sun disk labels
189# From /usr/include/sun/dklabel.h:
1900774	beshort		0xdabe
191# modified by Joerg Jenderek, because original test
192# succeeds for Cabinet archive dao360.dl_ with negative blocks
193>0770	long		>0		Sun disk label
194>>0	string		x		'%s
195>>>31	string		>\0		\b%s
196>>>>63	string		>\0		\b%s
197>>>>>95	string		>\0		\b%s
198>>0	string		x		\b'
199>>0734	short		>0		%d rpm,
200>>0736	short		>0		%d phys cys,
201>>0740	short		>0		%d alts/cyl,
202>>0746	short		>0		%d interleave,
203>>0750	short		>0		%d data cyls,
204>>0752	short		>0		%d alt cyls,
205>>0754	short		>0		%d heads/partition,
206>>0756	short		>0		%d sectors/track,
207>>0764	long		>0		start cyl %ld,
208>>0770	long		x		%ld blocks
209# Is there a boot block written 1 sector in?
210>512    belong&077777777	0600407	\b, boot block present
211
212# Joerg Jenderek: Smart Boot Manager backup file is 25 (MSDOS) or 41 (LINUX) byte header + first sectors of disk
213# (http://btmgr.sourceforge.net/docs/user-guide-3.html)
2140		string	SBMBAKUP_	Smart Boot Manager backup file
215>9		string	x		\b, version %-5.5s
216>>14		string	=_
217>>>15		string	x		%-.1s
218>>>>16		string	=_		\b.
219>>>>>17		string	x		\b%-.1s
220>>>>>>18	string	=_		\b.
221>>>>>>>19	string	x		\b%-.1s
222>>>22		ubyte	0
223>>>>21		ubyte	x		\b, from drive 0x%x
224>>>22		ubyte	>0
225>>>>21		string	x		\b, from drive %s
226>>>535		search/17	\x55\xAA
227>>>>&-512	indirect	x	\b; contains
228
229# updated by Joerg Jenderek at Nov 2012
230# DOS Emulator image is 128 byte, null right padded header + harddisc image
2310	string	DOSEMU\0
232>0x27E	leshort	0xAA55
233#offset is 128
234>>19	ubyte	128
235>>>(19.b-1)	ubyte	0x0	DOS Emulator image
236>>>>7	ulelong	>0		\b, %u heads
237>>>>11	ulelong	>0		\b, %d sectors/track
238>>>>15	ulelong	>0		\b, %d cylinders
239>>>>128	indirect	x	\b; contains
240
241# added by Joerg Jenderek at Nov 2012
242# http://www.thenakedpc.com/articles/v04/08/0408-05.html
243# Symantec (Peter Norton) Image.dat file consists of variable header, bootrecord, part of FAT and root directory data
2440	string	PNCIHISK\0		Norton Utilities disc image data
245# real x86 boot sector with jump instruction
246>509	search/1026	\x55\xAA\xeb
247>>&-1	indirect	x		\b; contains
248# http://file-extension.net/seeker/file_extension_dat
2490	string	PNCIUNDO		Norton Disk Doctor UnDo file
250#
251
252# DOS/MBR boot sector updated by Joerg Jenderek at Sep 2007,May 2011
253# for any allowed sector sizes
25430		search/481	\x55\xAA
255# 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)
256# DOS BPB information (70) and after DOS floppy (120) like in previous file version
257!:strength +72
258# for sector sizes < 512 Bytes
259>11		uleshort	<512
260>>(11.s-2)	uleshort	0xAA55		DOS/MBR boot sector
261# for sector sizes with 512 or more Bytes
262>0x1FE		leshort		0xAA55		DOS/MBR boot sector
263# keep old DOS/MBR boot sector as dummy for mbr and bootloader displaying
264# only for sector sizes with 512 or more Bytes
2650x1FE		leshort		0xAA55		DOS/MBR boot sector
266!:strength +72
267# to display information (50) before DOS BPB (strength=70) and after DOS floppy (120) like in old file version
268#!:strength +21
269>2	string	OSBS			\b, OS/BS MBR
270# added by Joerg Jenderek at Feb 2013 according to http://thestarman.pcministry.com/asm/mbr/
271# and http://en.wikipedia.org/wiki/Master_Boot_Record
272# test for nearly all MS-DOS Master Boot Record initial program loader (IPL) is now done by
273# characteristic assembler instructions: xor ax,ax;mov ss,ax;mov sp,7c00
274>0	search/2	\x33\xc0\x8e\xd0\xbc\x00\x7c	MS-MBR
275# Microsoft Windows 95A and early ( http://thestarman.pcministry.com/asm/mbr/STDMBR.htm )
276# assembler instructions: mov si,sp;push ax;pop es;push ax;pop ds;sti;cld
277>>8	ubequad		0x8bf45007501ffbfc
278# http://thestarman.pcministry.com/asm/mbr/200MBR.htm
279>>>0x16	ubyte		0xF3				\b,DOS 2
280>>>>219	regex		Author\ -\ 			Author:
281# found "David Litton" , "A Pehrsson  "
282>>>>>&0	string		x				"%s"
283>>>0x16	ubyte		0xF2
284# NEC MS-DOS 3.30 Rev. 3 . See http://thestarman.pcministry.com/asm/mbr/DOS33MBR.htm
285# assembler instructions: mov di,077c;cmp word ptrl[di],a55a;jnz
286>>>>0x22	ubequad	0xbf7c07813d5aa575		\b,NEC 3.3
287# version MS-DOS 3.30 til MS-Windows 95A (WinVer=4.00.1111)
288>>>>0x22	default	x				\b,D0S version 3.3-7.0
289# error messages are printed by assembler instructions: mov si,06nn;...;int 10 (0xBEnn06;...)
290# where nn is string offset varying for different languages
291# "Invalid partition table"				nn=0x8b for english version
292>>>>>(0x49.b)	string		Invalid\ partition\ table		english
293>>>>>(0x49.b)	string		Ung\201ltige\ Partitionstabelle		german
294>>>>>(0x49.b)	string		Table\ de\ partition\ invalide		french
295>>>>>(0x49.b)	string		Tabela\ de\ parti\207ao\ inv\240lida	portuguese
296>>>>>(0x49.b)	string		Tabla\ de\ partici\242n\ no\ v\240lida	spanish
297>>>>>(0x49.b)	string		Tavola\ delle\ partizioni\ non\ valida	italian
298>>>>>0x49	ubyte		>0			at offset 0x%x
299>>>>>>(0x49.b)	string		>\0			"%s"
300# "Error loading operating system"			nn=0xa3 for english version
301# "Fehler beim Laden des Betriebssystems"		nn=0xa7 for german version
302# "Erreur en chargeant syst\212me d'exploitation"	nn=0xa7 for french version
303# "Erro na inicializa\207ao do sistema operacional"	nn=0xa7 for portuguese Brazilian version
304# "Error al cargar sistema operativo"			nn=0xa8 for spanish version
305# "Errore durante il caricamento del sistema operativo"	nn=0xae for italian version
306>>>>>0x74	ubyte		>0			at offset 0x%x
307>>>>>>(0x74.b)	string		>\0			"%s"
308# "Missing operating system"				nn=0xc2 for english version
309# "Betriebssystem fehlt"				nn=0xcd for german version
310# "Syst\212me d'exploitation absent"			nn=0xd2 for french version
311# "Sistema operacional nao encontrado"			nn=0xd4 for portuguese Brazilian version
312# "Falta sistema operativo"				nn=0xca for spanish version
313# "Sistema operativo mancante"				nn=0xe2 for italian version
314>>>>>0x79	ubyte		>0			at offset 0x%x
315>>>>>>(0x79.b)	string		>\0			"%s"
316# Microsoft Windows 95B to XP (http://thestarman.pcministry.com/asm/mbr/95BMEMBR.htm)
317# assembler instructions: push ax;pop es;push  ax;pop ds;cld;mov si,7c1b
318>>8	ubequad		0x5007501ffcbe1b7c
319# assembler instructions: rep;movsb;retf;mov si,07be;mov cl,04
320>>>24		ubequad	0xf3a4cbbebe07b104		9M
321# "Invalid partition table"				nn=0x10F for english version
322# "Ungültige Partitionstabelle"				nn=0x10F for german version
323# "Table de partition erronée"				nn=0x10F for french version
324# "\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
325>>>>(0x3C.b+0x0FF)	string	Invalid\ partition\ table		english
326>>>>(0x3C.b+0x0FF)	string	Ung\201ltige\ Partitionstabelle		german
327>>>>(0x3C.b+0x0FF)	string	Table\ de\ partition\ erron\202e	french
328>>>>(0x3C.b+0x0FF)	string	\215\245\257\340\240\242\250\253\354\255\240\357\ \342\240\241\253\250\346\240	russian
329>>>>0x3C		ubyte	x			at offset 0x%x+0xFF
330>>>>(0x3C.b+0x0FF)	string	>\0			"%s"
331# "Error loading operating system"			nn=0x127 for english version
332# "Fehler beim Laden des Betriebssystems"		nn=0x12b for german version
333# "Erreur lors du chargement du système d'exploitation"	nn=0x12a for french version
334# "\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
335>>>>0xBD		ubyte	x			at offset 0x1%x
336>>>>(0xBD.b+0x100)	string	>\0			"%s"
337# "Missing operating system"				nn=0x146 for english version
338# "Betriebssystem fehlt"				nn=0x151 for german version
339# "Système d'exploitation manquant"			nn=0x15e for french version
340# "\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
341>>>>0xA9		ubyte	x			at offset 0x1%x
342>>>>(0xA9.b+0x100)	string	>\0			"%s"
343# http://thestarman.pcministry.com/asm/mbr/Win2kmbr.htm
344# assembler instructions: rep;movsb;retf;mov BP,07be;mov cl,04
345>>>24		ubequad	0xf3a4cbbdbe07b104		XP
346# where xxyyzz are lower bits from offsets of error messages varying for different languages
347>>>>0x1B4	ubelong&0x00FFFFFF	0x002c4463	english
348>>>>0x1B4	ubelong&0x00FFFFFF	0x002c486e	german
349# "Invalid partition table"				xx=0x12C for english version
350# "Ungültige Partitionstabelle"				xx=0x12C for german version
351>>>>0x1b5	ubyte		>0			at offset 0x1%x
352>>>>(0x1b5.b+0x100)	string	>\0			"%s"
353# "Error loading operating system"			yy=0x144 for english version
354# "Fehler beim Laden des Betriebssystems"		yy=0x148 for german version
355>>>>0x1b6	ubyte		>0			at offset 0x1%x
356>>>>(0x1b6.b+0x100)	string	>\0			"%s"
357# "Missing operating system"				zz=0x163 for english version
358# "Betriebssystem nicht vorhanden"			zz=0x16e for german version
359>>>>0x1b7	ubyte		>0			at offset 0x1%x
360>>>>(0x1b7.b+0x100)	string	>\0			"%s"
361# Microsoft Windows Vista or 7
362# assembler instructions: ..;mov ds,ax;mov si,7c00;mov di,..00
363>>8	ubequad		0xc08ed8be007cbf00
364# Microsoft Windows Vista (http://thestarman.pcministry.com/asm/mbr/VistaMBR.htm)
365# assembler instructions: jnz 0729;cmp ebx,"TCPA"
366>>>0xEC		ubequad	0x753b6681fb544350		Vista
367# where xxyyzz are lower bits from offsets of error messages varying for different languages
368>>>>0x1B4	ubelong&0x00FFFFFF	0x00627a99	english
369#>>>>0x1B4	ubelong&0x00FFFFFF	?		german
370# "Invalid partition table"				xx=0x162 for english version
371# "Ungültige Partitionstabelle"				xx=0x1?? for german version
372>>>>0x1b5	ubyte		>0			at offset 0x1%x
373>>>>(0x1b5.b+0x100)	string	>\0			"%s"
374# "Error loading operating system"			yy=0x17a for english version
375# "Fehler beim Laden des Betriebssystems"		yy= 0x1?? for german version
376>>>>0x1b6	ubyte		>0			at offset 0x1%x
377>>>>(0x1b6.b+0x100)	string	>\0			"%s"
378# "Missing operating system"				zz=0x199 for english version
379# "Betriebssystem nicht vorhanden"			zz=0x1?? for german version
380>>>>0x1b7	ubyte		>0			at offset 0x1%x
381>>>>(0x1b7.b+0x100)	string	>\0			"%s"
382# Microsoft Windows 7 (http://thestarman.pcministry.com/asm/mbr/W7MBR.htm)
383# assembler instructions: cmp ebx,"TCPA";cmp
384>>>0xEC		ubequad	0x6681fb5443504175		Windows 7
385# where xxyyzz are lower bits from offsets of error messages varying for different languages
386>>>>0x1B4	ubelong&0x00FFFFFF	0x00637b9a	english
387#>>>>0x1B4	ubelong&0x00FFFFFF	?		german
388# "Invalid partition table"				xx=0x163 for english version
389# "Ungültige Partitionstabelle"				xx=0x1?? for german version
390>>>>0x1b5	ubyte		>0			at offset 0x1%x
391>>>>(0x1b5.b+0x100)	string	>\0			"%s"
392# "Error loading operating system"			yy=0x17b for english version
393# "Fehler beim Laden des Betriebssystems"		yy=0x1?? for german version
394>>>>0x1b6	ubyte		>0			at offset 0x1%x
395>>>>(0x1b6.b+0x100)	string	>\0			"%s"
396# "Missing operating system"				zz=0x19a for english version
397# "Betriebssystem nicht vorhanden"			zz=0x1?? for german version
398>>>>0x1b7	ubyte		>0			at offset 0x1%x
399>>>>(0x1b7.b+0x100)	string	>\0			"%s"
400# http://thestarman.pcministry.com/asm/mbr/Win2kmbr.htm#DiskSigs
401# http://en.wikipedia.org/wiki/MBR_disk_signature#ID
402>>0x1b8	ulelong		>0				\b, disk signature 0x%-.4x
403# driveID/timestamp for Win 95B,98,98SE and ME. See http://thestarman.pcministry.com/asm/mbr/mystery.htm
404>>0xDA	uleshort		0
405>>>0xDC 	ulelong		>0			\b, created
406# physical drive number (0x80-0xFF) when the Windows wrote that byte to the drive
407>>>>0xDC	ubyte		x			with driveID 0x%x
408# hours, minutes and seconds
409>>>>0xDf	ubyte		x			at %x
410>>>>0xDe	ubyte		x			\b:%x
411>>>>0xDd	ubyte		x			\b:%x
412# special case for Microsoft MS-DOS 3.21 spanish
413# assembler instructions: cli;mov $0x30,%ax;mov %ax,%ss;mov
414>0	ubequad		0xfab830008ed0bc00
415# assembler instructions: $0x1f00,%sp;mov $0x80cb,%di;add %cl,(%bx,%si);in (%dx),%ax;mov
416>>8	ubequad		0x1fbfcb800008ed8		MS-MBR,D0S version 3.21 spanish
417# Microsoft MBR IPL end
418
419# dr-dos with some upper-, lowercase variants
420>0x9D	string	Invalid\ partition\ table$
421>>181	string	No\ Operating\ System$
422>>>201	string	Operating\ System\ load\ error$	\b, DR-DOS MBR, Version 7.01 to 7.03
423>0x9D	string	Invalid\ partition\ table$
424>>181	string	No\ operating\ system$
425>>>201	string	Operating\ system\ load\ error$	\b, DR-DOS MBR, Version 7.01 to 7.03
426>342	string	Invalid\ partition\ table$
427>>366	string	No\ operating\ system$
428>>>386	string	Operating\ system\ load\ error$	\b, DR-DOS MBR, version 7.01 to 7.03
429>295	string	NEWLDR\0
430>>302	string	Bad\ PT\ $
431>>>310	string	No\ OS\ $
432>>>>317	string	OS\ load\ err$
433>>>>>329	string	Moved\ or\ missing\ IBMBIO.LDR\n\r
434>>>>>>358	string	Press\ any\ key\ to\ continue.\n\r$
435>>>>>>>387	string	Copyright\ (c)\ 1984,1998
436>>>>>>>>411	string	Caldera\ Inc.\0		\b, DR-DOS MBR (IBMBIO.LDR)
437#
438# tests for different MS-DOS Master Boot Records (MBR) moved and merged
439#
440#>0x145	string	Default:\ F				\b, FREE-DOS MBR
441#>0x14B	string	Default:\ F				\b, FREE-DOS 1.0 MBR
442>0x145	search/7	Default:\ F			\b, FREE-DOS MBR
443#>>313		string	F0\ .\ .\ .
444#>>>322		string	disk\ 1
445#>>>>382	string	FAT3
446>64	string	no\ active\ partition\ found
447>>96	string	read\ error\ while\ reading\ drive	\b, FREE-DOS Beta 0.9 MBR
448# Ranish Partition Manager http://www.ranish.com/part/
449>387	search/4	\0\ Error!\r
450>>378	search/7	Virus!
451>>>397	search/4	Booting\
452>>>>408	search/4	HD1/\0	 			\b, Ranish MBR (
453>>>>>416	string	Writing\ changes...		\b2.37
454>>>>>>438	ubyte		x			\b,0x%x dots
455>>>>>>440	ubyte		>0			\b,virus check
456>>>>>>441	ubyte		>0			\b,partition %c
457#2.38,2.42,2.44
458>>>>>416	string	!Writing\ changes...		\b
459>>>>>>418	ubyte	1				\bvirus check,
460>>>>>>419	ubyte	x				\b0x%x seconds
461>>>>>>420	ubyte&0x0F	>0			\b,partition
462>>>>>>>420	ubyte&0x0F	<5			\b %x
463>>>>>>>420	ubyte&0x0F	0Xf			\b ask
464>>>>>420	ubyte		x			\b)
465#
466# SYSLINUX MBR moved
467# http://www.acronis.de/
468>362	string	MBR\ Error\ \0\r
469>>376	string	ress\ any\ key\ to\
470>>>392	string	boot\ from\ floppy...\0			\b, Acronis MBR
471# added by Joerg Jenderek
472# http://www.visopsys.org/
473# http://partitionlogic.org.uk/
474>309	string	No\ bootable\ partition\ found\r
475>>339	string	I/O\ Error\ reading\ boot\ sector\r	\b, Visopsys MBR
476>349	string	No\ bootable\ partition\ found\r
477>>379	string	I/O\ Error\ reading\ boot\ sector\r	\b, simple Visopsys MBR
478# bootloader, bootmanager
479>0x40	string	SBML
480# label with 11 characters of FAT 12 bit filesystem
481>>43	string	SMART\ BTMGR
482>>>430	string	SBMK\ Bad!\r			\b, Smart Boot Manager
483# OEM-ID not always "SBM"
484#>>>>3	strings	SBM
485>>>>6	string	>\0                             \b, version %s
486>382	string	XOSLLOADXCF			\b, eXtended Operating System Loader
487>6	string	LILO				\b, LInux i386 boot LOader
488>>120	string	LILO				\b, version 22.3.4 SuSe
489>>172	string	LILO				\b, version 22.5.8 Debian
490# updated by Joerg Jenderek at Oct 2008
491# variables according to grub-0.97/stage1/stage1.S or
492# http://www.gnu.org/software/grub/manual/grub.html#Embedded-data
493# usual values are marked with comments to get only informations of strange GRUB loaders
494>342		search/60	\0Geom\0
495#>0		ulelong		x		%x=0x009048EB ,	0x2a9048EB  0
496>>0x41		ubyte		<2
497>>>0x3E		ubyte		>2		\b; GRand Unified Bootloader
498# 0x3 for 0.5.95,0.93,0.94,0.96 0x4 for 1.90
499>>>>0x3E	ubyte		x		\b, stage1 version 0x%x
500#If it is 0xFF, use a drive passed by BIOS
501>>>>0x40	ubyte		<0xFF		\b, boot drive 0x%x
502# in most case 0,1,0x2e for GRUB 0.5.95
503>>>>0x41	ubyte		>0		\b, LBA flag 0x%x
504>>>>0x42	uleshort	<0x8000		\b, stage2 address 0x%x
505#>>>>0x42	uleshort	=0x8000		\b, stage2 address 0x%x (usual)
506>>>>0x42	uleshort	>0x8000		\b, stage2 address 0x%x
507#>>>>0x44	ulelong		=1		\b, 1st sector stage2 0x%x (default)
508>>>>0x44	ulelong		>1		\b, 1st sector stage2 0x%x
509>>>>0x48	uleshort	<0x800		\b, stage2 segment 0x%x
510#>>>>0x48	uleshort	=0x800		\b, stage2 segment 0x%x (usual)
511>>>>0x48	uleshort	>0x800		\b, stage2 segment 0x%x
512>>>>402		string	Geom\0Hard\ Disk\0Read\0\ Error\0
513>>>>>394	string	stage1			\b, GRUB version 0.5.95
514>>>>382		string	Geom\0Hard\ Disk\0Read\0\ Error\0
515>>>>>376	string	GRUB\ \0		\b, GRUB version 0.93 or 1.94
516>>>>383		string	Geom\0Hard\ Disk\0Read\0\ Error\0
517>>>>>377	string	GRUB\ \0		\b, GRUB version 0.94
518>>>>385		string	Geom\0Hard\ Disk\0Read\0\ Error\0
519>>>>>379	string	GRUB\ \0		\b, GRUB version 0.95 or 0.96
520>>>>391		string	Geom\0Hard\ Disk\0Read\0\ Error\0
521>>>>>385	string	GRUB\ \0		\b, GRUB version 0.97
522#unkown version
523>>>343		string	Geom\0Read\0\ Error\0
524>>>>321		string	Loading\ stage1.5	\b, GRUB version x.y
525>>>380		string	Geom\0Hard\ Disk\0Read\0\ Error\0
526>>>>374		string	GRUB\ \0		\b, GRUB version n.m
527# SYSLINUX bootloader moved
528>395	string	chksum\0\ ERROR!\0		\b, Gujin bootloader
529# http://www.bcdwb.de/bcdw/index_e.htm
530>3	string	BCDL
531>>498	string	BCDL\ \ \ \ BIN			\b, Bootable CD Loader (1.50Z)
532# mbr partition table entries updated by Joerg Jenderek at Sep 2013
533# skip Norton Utilities disc image data
534>3		string		!IHISK
535# skip Linux style boot sector starting with assember instructions mov 0x7c0,ax;
536>>0		belong		!0xb8c0078e
537# not Linux kernel
538>>>514		string		!HdrS
539# not BeOS
540>>>>422		string		!Be\ Boot\ Loader
541# jump over BPB instruction implies DOS bootsector or AdvanceMAME mbr
542>>>>>0		ubelong&0xFD000000	=0xE9000000
543# AdvanceMAME mbr
544>>>>>>(1.b+2)	ubequad		0xfa31c08ed88ec08e
545>>>>>>>446	use		partition-table
546# mbr, Norton Utilities disc image data, or 2nd,etc. sector of x86 bootloader
547>>>>>0		ubelong&0xFD000000	!0xE9000000
548# skip FSInfosector
549>>>>>>0		string		!RRaA
550# skip 3rd sector of MS x86 bootloader with assember instructions cli;MOVZX EAX,BYTE PTR [BP+10];MOV ECX,
551# http://thestarman.pcministry.com/asm/mbr/MSWIN41.htm
552>>>>>>>0	ubequad		!0xfa660fb64610668b
553# skip 13rd sector of MS x86 bootloader
554>>>>>>>>0	ubequad		!0x660fb64610668b4e
555# skip sector starting with DOS new line
556>>>>>>>>>0	string		!\r\n
557# allowed active flag 0,80h-FFh
558>>>>>>>>>>446	ubyte		0
559>>>>>>>>>>>446	use		partition-table
560>>>>>>>>>>446	ubyte		>0x7F
561>>>>>>>>>>>446	use		partition-table
562# TODO: test for extended bootrecord (ebr) moved and merged with mbr partition table entries
563# mbr partition table entries end
564# http://www.acronis.de/
565#FAT label=ACRONIS\ SZ
566#OEM-ID=BOOTWIZ0
567>442	string	Non-system\ disk,\
568>>459	string	press\ any\ key...\x7\0		\b, Acronis Startup Recovery Loader
569# updated by Joerg Jenderek at Nov 2012
570# DOS names like F11.SYS or BOOTWIZ.SYS are 8 right space padded bytes+3 bytes
571>>>477		ubyte&0xDF	>0
572>>>>477		string		x 		\b %-.3s
573>>>>>480	ubyte&0xDF	>0
574>>>>>>480	string		x 		\b%-.4s
575>>>>>>>484	ubyte&0xDF	>0
576>>>>>>>>484	string		x 		\b%-.1s
577>>>>485		ubyte&0xDF	>0
578>>>>>485	string		x 		\b.%-.3s
579#
580>185	string	FDBOOT\ Version\
581>>204	string	\rNo\ Systemdisk.\
582>>>220	string	Booting\ from\ harddisk.\n\r
583>>>245	string	Cannot\ load\ from\ harddisk.\n\r
584>>>>273 string	Insert\ Systemdisk\
585>>>>>291 string and\ press\ any\ key.\n\r		\b, FDBOOT harddisk Bootloader
586>>>>>>200 string	>\0                             \b, version %-3s
587>242	string	Bootsector\ from\ C.H.\ Hochst\204
588# http://freecode.com/projects/dosfstools	dosfstools-n.m/src/mkdosfs.c
589# updated by Joerg Jenderek at Nov 2012. Use search directive with offset instead of string
590# skip name "C.H. Hochstaetter" partly because it is sometimes written without umlaut
591>242	search/127	Bootsector\ from\ C.H.\ Hochst
592>>278	search/127	No\ Systemdisk.\ Booting\ from\ harddisk
593# followed by variants with point,CR-NL or NL-CR
594>>>208	search/261	Cannot\ load\ from\ harddisk.
595# followed by variants CR-NL or NL-CR
596>>>>236	search/235	Insert\ Systemdisk\ and\ press\ any\ key.
597# followed by variants with point,CR-NL or NL-CR
598>>>>>180	search/96	Disk\ formatted\ with\ WinImage\ 	\b, WinImage harddisk Bootloader
599# followed by string like "6.50 (c) 1993-2004 Gilles Vollant"
600>>>>>>&0	string		x 					\b, version %-4.4s
601>(1.b+2)	ubyte		0xe
602>>(1.b+3)	ubyte		0x1f
603>>>(1.b+4)	ubyte		0xbe
604# message offset found at (1.b+5) is 0x77 for FAT32 or 0x5b for others
605>>>>(1.b+5)	ubyte&0xd3	0x53
606>>>>>(1.b+6)	ubyte		0x7c
607# assembler instructions: lodsb;and al,al;jz 0xb;push si;mov ah,
608>>>>>>(1.b+7)	ubyte		0xac
609>>>>>>>(1.b+8)	ubyte		0x22
610>>>>>>>>(1.b+9)	ubyte		0xc0
611>>>>>>>>>(1.b+10)	ubyte	0x74
612>>>>>>>>>>(1.b+11)	ubyte	0x0b
613>>>>>>>>>>>(1.b+12)	ubyte	0x56
614>>>>>>>>>>>>(1.b+13)	ubyte	0xb4			\b, mkdosfs boot message display
615# FAT1X version
616>>>>>>>>>>>>>(1.b+5)	ubyte	0x5b
617>>>>>>>>>>>>>>0x5b	string	>\0			"%-s"
618# FAT32 version
619>>>>>>>>>>>>>(1.b+5)	ubyte	0x77
620>>>>>>>>>>>>>>0x77	string	>\0			"%-s"
621>214	string	Please\ try\ to\ install\ FreeDOS\ 	\b, DOS Emulator boot message display
622#>>244	string	from\ dosemu-freedos-*-bin.tgz\r
623#>>>170	string	Sorry,\ could\ not\ load\ an\
624#>>>>195	string	operating\ system.\r\n
625#
626>103	string	This\ is\ not\ a\ bootable\ disk.\
627>>132	string	Please\ insert\ a\ bootable\
628>>>157	string	floppy\ and\r\n
629>>>>169	string	press\ any\ key\ to\ try\ again...\r	\b, FREE-DOS message display
630#
631>66	string	Solaris\ Boot\ Sector
632>>99	string	Incomplete\ MDBoot\ load.
633>>>89	string	Version 				\b, Sun Solaris Bootloader
634>>>>97	byte	x					version %c
635#
636>408	string	OS/2\ !!\ SYS01475\r\0
637>>429	string	OS/2\ !!\ SYS02025\r\0
638>>>450	string	OS/2\ !!\ SYS02027\r\0
639>>>469	string	OS2BOOT\ \ \ \ 				\b, IBM OS/2 Warp bootloader
640#
641>409	string	OS/2\ !!\ SYS01475\r\0
642>>430	string	OS/2\ !!\ SYS02025\r\0
643>>>451	string	OS/2\ !!\ SYS02027\r\0
644>>>470	string	OS2BOOT\ \ \ \ 				\b, IBM OS/2 Warp Bootloader
645>112		string	This\ disk\ is\ not\ bootable\r
646>>142		string	If\ you\ wish\ to\ make\ it\ bootable
647>>>176		string	run\ the\ DOS\ program\ SYS\
648>>>200		string	after\ the\r
649>>>>216		string	system\ has\ been\ loaded\r\n
650>>>>>242	string	Please\ insert\ a\ DOS\ diskette\
651>>>>>271	string	into\r\n\ the\ drive\ and\
652>>>>>>292	string	strike\ any\ key...\0		\b, IBM OS/2 Warp message display
653# XP
654>430	string	NTLDR\ is\ missing\xFF\r\n
655>>449	string	Disk\ error\xFF\r\n
656>>>462	string	Press\ any\ key\ to\ restart\r		\b, Microsoft Windows XP Bootloader
657# DOS names like NTLDR,CMLDR,$LDR$ are 8 right space padded bytes+3 bytes
658>>>>417		ubyte&0xDF	>0
659>>>>>417	string		x			%-.5s
660>>>>>>422	ubyte&0xDF	>0
661>>>>>>>422	string		x 			\b%-.3s
662>>>>>425	ubyte&0xDF	>0
663>>>>>>425	string		>\ 			\b.%-.3s
664#
665>>>>371		ubyte		>0x20
666>>>>>368	ubyte&0xDF	>0
667>>>>>>368	string		x 			%-.5s
668>>>>>>>373	ubyte&0xDF	>0
669>>>>>>>>373	string		x 			\b%-.3s
670>>>>>>376	ubyte&0xDF	>0
671>>>>>>>376	string		x 			\b.%-.3s
672#
673>430	string	NTLDR\ nicht\ gefunden\xFF\r\n
674>>453	string	Datentr\204gerfehler\xFF\r\n
675>>>473	string	Neustart\ mit\ beliebiger\ Taste\r	\b, Microsoft Windows XP Bootloader (german)
676>>>>417		ubyte&0xDF	>0
677>>>>>417	string		x			%-.5s
678>>>>>>422	ubyte&0xDF	>0
679>>>>>>>422	string		x 			\b%-.3s
680>>>>>425	ubyte&0xDF	>0
681>>>>>>425	string		>\ 			\b.%-.3s
682# offset variant
683>>>>379	string	\0
684>>>>>368	ubyte&0xDF	>0
685>>>>>>368	string		x 			%-.5s
686>>>>>>>373	ubyte&0xDF	>0
687>>>>>>>>373	string		x 			\b%-.3s
688#
689>430	string	NTLDR\ fehlt\xFF\r\n
690>>444	string	Datentr\204gerfehler\xFF\r\n
691>>>464	string	Neustart\ mit\ beliebiger\ Taste\r	\b, Microsoft Windows XP Bootloader (2.german)
692>>>>417		ubyte&0xDF	>0
693>>>>>417	string		x			%-.5s
694>>>>>>422	ubyte&0xDF	>0
695>>>>>>>422	string		x 			\b%-.3s
696>>>>>425	ubyte&0xDF	>0
697>>>>>>425	string		>\ 			\b.%-.3s
698# variant
699>>>>371		ubyte		>0x20
700>>>>>368	ubyte&0xDF	>0
701>>>>>>368	string		x 			%-.5s
702>>>>>>>373	ubyte&0xDF	>0
703>>>>>>>>373	string		x 			\b%-.3s
704>>>>>>376	ubyte&0xDF	>0
705>>>>>>>376	string		x 			\b.%-.3s
706#
707>430	string	NTLDR\ fehlt\xFF\r\n
708>>444	string	Medienfehler\xFF\r\n
709>>>459	string	Neustart:\ Taste\ dr\201cken\r		\b, Microsoft Windows XP Bootloader (3.german)
710>>>>371		ubyte		>0x20
711>>>>>368	ubyte&0xDF	>0
712>>>>>>368	string		x 			%-.5s
713>>>>>>>373	ubyte&0xDF	>0
714>>>>>>>>373	string		x 			\b%-.3s
715>>>>>>376	ubyte&0xDF	>0
716>>>>>>>376	string		x 			\b.%-.3s
717# variant
718>>>>417		ubyte&0xDF	>0
719>>>>>417	string		x			%-.5s
720>>>>>>422	ubyte&0xDF	>0
721>>>>>>>422	string		x 			\b%-.3s
722>>>>>425	ubyte&0xDF	>0
723>>>>>>425	string		>\ 			\b.%-.3s
724#
725>430	string	Datentr\204ger\ entfernen\xFF\r\n
726>>454	string	Medienfehler\xFF\r\n
727>>>469	string	Neustart:\ Taste\ dr\201cken\r		\b, Microsoft Windows XP Bootloader (4.german)
728>>>>379		string		\0
729>>>>>368	ubyte&0xDF	>0
730>>>>>>368	string		x 			%-.5s
731>>>>>>>373	ubyte&0xDF	>0
732>>>>>>>>373	string		x 			\b%-.3s
733>>>>>>376	ubyte&0xDF	>0
734>>>>>>>376	string		x 			\b.%-.3s
735# variant
736>>>>417		ubyte&0xDF	>0
737>>>>>417	string		x			%-.5s
738>>>>>>422	ubyte&0xDF	>0
739>>>>>>>422	string		x 			\b%-.3s
740>>>>>425	ubyte&0xDF	>0
741>>>>>>425	string		>\ 			\b.%-.3s
742#
743
744#>3	string	NTFS\ \ \ \
745>389	string	Fehler\ beim\ Lesen\
746>>407	string	des\ Datentr\204gers
747>>>426	string	NTLDR\ fehlt
748>>>>440	string	NTLDR\ ist\ komprimiert
749>>>>>464 string	Neustart\ mit\ Strg+Alt+Entf\r		\b, Microsoft Windows XP Bootloader NTFS (german)
750#>3	string	NTFS\ \ \ \
751>313	string	A\ disk\ read\ error\ occurred.\r
752>>345	string	A\ kernel\ file\ is\ missing\
753>>>370	string	from\ the\ disk.\r
754>>>>484	string	NTLDR\ is\ compressed
755>>>>>429 string	Insert\ a\ system\ diskette\
756>>>>>>454 string and\ restart\r\nthe\ system.\r		\b, Microsoft Windows XP Bootloader NTFS
757# DOS loader variants different languages,offsets
758>472	ubyte&0xDF	>0
759>>389	string	Invalid\ system\ disk\xFF\r\n
760>>>411	string	Disk\ I/O\ error
761>>>>428	string	Replace\ the\ disk,\ and\
762>>>>>455 string	press\ any\ key				\b, Microsoft Windows 98 Bootloader
763#IO.SYS
764>>>>>>472	ubyte&0xDF	>0
765>>>>>>>472	string		x 			\b %-.2s
766>>>>>>>>474	ubyte&0xDF	>0
767>>>>>>>>>474	string		x 			\b%-.5s
768>>>>>>>>>>479	ubyte&0xDF	>0
769>>>>>>>>>>>479 string		x 			\b%-.1s
770>>>>>>>480	ubyte&0xDF	>0
771>>>>>>>>480	string		x 			\b.%-.3s
772#MSDOS.SYS
773>>>>>>>483	ubyte&0xDF	>0			\b+
774>>>>>>>>483	string		x 			\b%-.5s
775>>>>>>>>>488	ubyte&0xDF	>0
776>>>>>>>>>>488	string		x 			\b%-.3s
777>>>>>>>>491	ubyte&0xDF	>0
778>>>>>>>>>491	string		x 			\b.%-.3s
779#
780>>390	string	Invalid\ system\ disk\xFF\r\n
781>>>412	string	Disk\ I/O\ error\xFF\r\n
782>>>>429	string	Replace\ the\ disk,\ and\
783>>>>>451 string	then\ press\ any\ key\r			\b, Microsoft Windows 98 Bootloader
784>>388	string	Ungueltiges\ System\ \xFF\r\n
785>>>410	string	E/A-Fehler\ \ \ \ \xFF\r\n
786>>>>427	string	Datentraeger\ wechseln\ und\
787>>>>>453 string	Taste\ druecken\r			\b, Microsoft Windows 95/98/ME Bootloader (german)
788#WINBOOT.SYS only not spaces (0xDF)
789>>>>>>497	ubyte&0xDF	>0
790>>>>>>>497	string		x 			%-.5s
791>>>>>>>>502	ubyte&0xDF	>0
792>>>>>>>>>502	string		x 			\b%-.1s
793>>>>>>>>>>503	ubyte&0xDF	>0
794>>>>>>>>>>>503	string		x 			\b%-.1s
795>>>>>>>>>>>>504	ubyte&0xDF	>0
796>>>>>>>>>>>>>504 string		x 			\b%-.1s
797>>>>>>505	ubyte&0xDF	>0
798>>>>>>>505	string		x 			\b.%-.3s
799#IO.SYS
800>>>>>>472	ubyte&0xDF	>0			or
801>>>>>>>472	string		x 			\b %-.2s
802>>>>>>>>474	ubyte&0xDF	>0
803>>>>>>>>>474	string		x 			\b%-.5s
804>>>>>>>>>>479	ubyte&0xDF	>0
805>>>>>>>>>>>479 string		x 			\b%-.1s
806>>>>>>>480	ubyte&0xDF	>0
807>>>>>>>>480	string		x 			\b.%-.3s
808#MSDOS.SYS
809>>>>>>>483	ubyte&0xDF	>0			\b+
810>>>>>>>>483	string		x 			\b%-.5s
811>>>>>>>>>488	ubyte&0xDF	>0
812>>>>>>>>>>488	string		x 			\b%-.3s
813>>>>>>>>491	ubyte&0xDF	>0
814>>>>>>>>>491	string		x 			\b.%-.3s
815#
816>>390	string	Ungueltiges\ System\ \xFF\r\n
817>>>412	string	E/A-Fehler\ \ \ \ \xFF\r\n
818>>>>429	string	Datentraeger\ wechseln\ und\
819>>>>>455 string	Taste\ druecken\r			\b, Microsoft Windows 95/98/ME Bootloader (German)
820#WINBOOT.SYS only not spaces (0xDF)
821>>>>>>497	ubyte&0xDF	>0
822>>>>>>>497	string		x 			%-.7s
823>>>>>>>>504	ubyte&0xDF	>0
824>>>>>>>>>504	string		x 			\b%-.1s
825>>>>>>505	ubyte&0xDF	>0
826>>>>>>>505	string		x 			\b.%-.3s
827#IO.SYS
828>>>>>>472	ubyte&0xDF	>0			or
829>>>>>>>472	string		x 			\b %-.2s
830>>>>>>>>474	ubyte&0xDF	>0
831>>>>>>>>>474	string		x 			\b%-.6s
832>>>>>>>480	ubyte&0xDF	>0
833>>>>>>>>480	string		x 			\b.%-.3s
834#MSDOS.SYS
835>>>>>>>483	ubyte&0xDF	>0			\b+
836>>>>>>>>483	string		x 			\b%-.5s
837>>>>>>>>>488	ubyte&0xDF	>0
838>>>>>>>>>>488	string		x 			\b%-.3s
839>>>>>>>>491	ubyte&0xDF	>0
840>>>>>>>>>491	string		x 			\b.%-.3s
841#
842>>389	string	Ungueltiges\ System\ \xFF\r\n
843>>>411	string	E/A-Fehler\ \ \ \ \xFF\r\n
844>>>>428	string	Datentraeger\ wechseln\ und\
845>>>>>454 string	Taste\ druecken\r			\b, Microsoft Windows 95/98/ME Bootloader (GERMAN)
846# DOS names like IO.SYS,WINBOOT.SYS,MSDOS.SYS,WINBOOT.INI are 8 right space padded bytes+3 bytes
847>>>>>>472	string		x 			%-.2s
848>>>>>>>474	ubyte&0xDF	>0
849>>>>>>>>474	string		x 			\b%-.5s
850>>>>>>>>479	ubyte&0xDF	>0
851>>>>>>>>>479	string		x 			\b%-.1s
852>>>>>>480	ubyte&0xDF	>0
853>>>>>>>480	string		x 			\b.%-.3s
854>>>>>>483	ubyte&0xDF	>0			\b+
855>>>>>>>483	string		x 			\b%-.5s
856>>>>>>>488	ubyte&0xDF	>0
857>>>>>>>>488	string		x 			\b%-.2s
858>>>>>>>>490	ubyte&0xDF	>0
859>>>>>>>>>490	string		x 			\b%-.1s
860>>>>>>>491	ubyte&0xDF	>0
861>>>>>>>>491	string		x 			\b.%-.3s
862>479	ubyte&0xDF	>0
863>>416	string	Kein\ System\ oder\
864>>>433	string	Laufwerksfehler
865>>>>450	string	Wechseln\ und\ Taste\ dr\201cken	\b, Microsoft DOS Bootloader (german)
866#IO.SYS
867>>>>>479	string		x 			\b %-.2s
868>>>>>>481	ubyte&0xDF	>0
869>>>>>>>481	string		x 			\b%-.6s
870>>>>>487	ubyte&0xDF	>0
871>>>>>>487	string		x 			\b.%-.3s
872#MSDOS.SYS
873>>>>>>490	ubyte&0xDF	>0			\b+
874>>>>>>>490	string		x 			\b%-.5s
875>>>>>>>>495	ubyte&0xDF	>0
876>>>>>>>>>495	string		x 			\b%-.3s
877>>>>>>>498	ubyte&0xDF	>0
878>>>>>>>>498	string		x 			\b.%-.3s
879#
880>376	search/41	Non-System\ disk\ or\
881>>395	search/41	disk\ error\r
882>>>407	search/41	Replace\ and\
883>>>>419	search/41	press\ 				\b,
884>>>>419	search/41	strike\ 			\b, old
885>>>>426	search/41	any\ key\ when\ ready\r		MS or PC-DOS bootloader
886#449			Disk\ Boot\ failure\r		MS 3.21
887#466			Boot\ Failure\r			MS 3.30
888>>>>>468 search/18	\0
889#IO.SYS,IBMBIO.COM
890>>>>>>&0	string		x 			\b %-.2s
891>>>>>>>&-20	ubyte&0xDF	>0
892>>>>>>>>&-1	string		x 			\b%-.4s
893>>>>>>>>>&-16	ubyte&0xDF	>0
894>>>>>>>>>>&-1	string		x 			\b%-.2s
895>>>>>>&8	ubyte&0xDF	>0			\b.
896>>>>>>>&-1	string		x 			\b%-.3s
897#MSDOS.SYS,IBMDOS.COM
898>>>>>>&11	ubyte&0xDF	>0			\b+
899>>>>>>>&-1	string		x 			\b%-.5s
900>>>>>>>>&-6	ubyte&0xDF	>0
901>>>>>>>>>&-1	string		x 			\b%-.1s
902>>>>>>>>>>&-5	ubyte&0xDF	>0
903>>>>>>>>>>>&-1	string		x 			\b%-.2s
904>>>>>>>&7	ubyte&0xDF	>0			\b.
905>>>>>>>>&-1	string		x 			\b%-.3s
906>441	string	Cannot\ load\ from\ harddisk.\n\r
907>>469	string	Insert\ Systemdisk\
908>>>487	string	and\ press\ any\ key.\n\r		\b, MS (2.11) DOS bootloader
909#>43	string	\224R-LOADER\ \ SYS			=label
910>54	string	SYS
911>>324	string	VASKK
912>>>495	string	NEWLDR\0				\b, DR-DOS Bootloader (LOADER.SYS)
913#
914>98	string	Press\ a\ key\ to\ retry\0\r
915>>120	string	Cannot\ find\ file\ \0\r
916>>>139	string	Disk\ read\ error\0\r
917>>>>156	string	Loading\ ...\0				\b, DR-DOS (3.41) Bootloader
918#DRBIOS.SYS
919>>>>>44		ubyte&0xDF	>0
920>>>>>>44	string		x			\b %-.6s
921>>>>>>>50	ubyte&0xDF	>0
922>>>>>>>>50	string		x 			\b%-.2s
923>>>>>>52	ubyte&0xDF	>0
924>>>>>>>52	string		x 			\b.%-.3s
925#
926>70	string	IBMBIO\ \ COM
927>>472	string	Cannot\ load\ DOS!\
928>>>489	string	Any\ key\ to\ retry			\b, DR-DOS Bootloader
929>>471	string	Cannot\ load\ DOS\
930>>487	string	press\ key\ to\ retry			\b, Open-DOS Bootloader
931#??
932>444	string	KERNEL\ \ SYS
933>>314	string	BOOT\ error!				\b, FREE-DOS Bootloader
934>499	string	KERNEL\ \ SYS
935>>305	string	BOOT\ err!\0				\b, Free-DOS Bootloader
936>449	string	KERNEL\ \ SYS
937>>319	string	BOOT\ error!				\b, FREE-DOS 0.5 Bootloader
938#
939>449	string	Loading\ FreeDOS
940>>0x1AF		ulelong		>0			\b, FREE-DOS 0.95,1.0 Bootloader
941>>>497		ubyte&0xDF	>0
942>>>>497		string		x 			\b %-.6s
943>>>>>503	ubyte&0xDF	>0
944>>>>>>503	string		x 			\b%-.1s
945>>>>>>>504	ubyte&0xDF	>0
946>>>>>>>>504	string		x 			\b%-.1s
947>>>>505		ubyte&0xDF	>0
948>>>>>505	string		x 			\b.%-.3s
949#
950>331	string	Error!.0				\b, FREE-DOS 1.0 bootloader
951#
952>125	string	Loading\ FreeDOS...\r
953>>311	string	BOOT\ error!\r				\b, FREE-DOS bootloader
954>>>441		ubyte&0xDF	>0
955>>>>441		string		x 			\b %-.6s
956>>>>>447	ubyte&0xDF	>0
957>>>>>>447	string		x 			\b%-.1s
958>>>>>>>448	ubyte&0xDF	>0
959>>>>>>>>448	string		x 			\b%-.1s
960>>>>449		ubyte&0xDF	>0
961>>>>>449	string		x 			\b.%-.3s
962>124	string	FreeDOS\0
963>>331	string	\ err\0					\b, FREE-DOS BETa 0.9 Bootloader
964# DOS names like KERNEL.SYS,KERNEL16.SYS,KERNEL32.SYS,METAKERN.SYS are 8 right space padded bytes+3 bytes
965>>>497		ubyte&0xDF	>0
966>>>>497		string		x 			\b %-.6s
967>>>>>503	ubyte&0xDF	>0
968>>>>>>503	string		x 			\b%-.1s
969>>>>>>>504	ubyte&0xDF	>0
970>>>>>>>>504	string		x 			\b%-.1s
971>>>>505		ubyte&0xDF	>0
972>>>>>505	string		x 			\b.%-.3s
973>>333	string	\ err\0					\b, FREE-DOS BEta 0.9 Bootloader
974>>>497		ubyte&0xDF	>0
975>>>>497		string		x 			\b %-.6s
976>>>>>503	ubyte&0xDF	>0
977>>>>>>503	string		x 			\b%-.1s
978>>>>>>>504	ubyte&0xDF	>0
979>>>>>>>>504	string		x 			\b%-.1s
980>>>>505		ubyte&0xDF	>0
981>>>>>505	string		x 			\b.%-.3s
982>>334	string	\ err\0					\b, FREE-DOS Beta 0.9 Bootloader
983>>>497		ubyte&0xDF	>0
984>>>>497		string		x 			\b %-.6s
985>>>>>503	ubyte&0xDF	>0
986>>>>>>503	string		x 			\b%-.1s
987>>>>>>>504	ubyte&0xDF	>0
988>>>>>>>>504	string		x 			\b%-.1s
989>>>>505		ubyte&0xDF	>0
990>>>>>505	string		x 			\b.%-.3s
991>336	string	Error!\
992>>343	string	Hit\ a\ key\ to\ reboot.		\b, FREE-DOS Beta 0.9sr1 Bootloader
993>>>497		ubyte&0xDF	>0
994>>>>497		string		x 			\b %-.6s
995>>>>>503	ubyte&0xDF	>0
996>>>>>>503	string		x 			\b%-.1s
997>>>>>>>504	ubyte&0xDF	>0
998>>>>>>>>504	string		x 			\b%-.1s
999>>>>505		ubyte&0xDF	>0
1000>>>>>505	string		x 			\b.%-.3s
1001# added by Joerg Jenderek
1002# http://www.visopsys.org/
1003# http://partitionlogic.org.uk/
1004# OEM-ID=Visopsys
1005>478		ulelong	0
1006>>(1.b+326)	string	I/O\ Error\ reading\
1007>>>(1.b+344)	string	Visopsys\ loader\r
1008>>>>(1.b+361)	string	Press\ any\ key\ to\ continue.\r	\b, Visopsys loader
1009# http://alexfru.chat.ru/epm.html#bootprog
1010>494	ubyte	>0x4D
1011>>495	string	>E
1012>>>495	string	<S
1013#OEM-ID is not reliable
1014>>>>3	string	BootProg
1015# It just looks for a program file name at the root directory
1016# and loads corresponding file with following execution.
1017# DOS names like STARTUP.BIN,STARTUPC.COM,STARTUPE.EXE are 8 right space padded bytes+3 bytes
1018>>>>499			ubyte&0xDF	>0		\b, COM/EXE Bootloader
1019>>>>>499		string		x 		\b %-.1s
1020>>>>>>500		ubyte&0xDF	>0
1021>>>>>>>500		string		x 		\b%-.1s
1022>>>>>>>>501		ubyte&0xDF	>0
1023>>>>>>>>>501		string		x 		\b%-.1s
1024>>>>>>>>>>502		ubyte&0xDF	>0
1025>>>>>>>>>>>502		string		x 		\b%-.1s
1026>>>>>>>>>>>>503		ubyte&0xDF	>0
1027>>>>>>>>>>>>>503	string		x 		\b%-.1s
1028>>>>>>>>>>>>>>504	ubyte&0xDF	>0
1029>>>>>>>>>>>>>>>504	string		x 		\b%-.1s
1030>>>>>>>>>>>>>>>>505	ubyte&0xDF	>0
1031>>>>>>>>>>>>>>>>>505	string		x 		\b%-.1s
1032>>>>>>>>>>>>>>>>>>506	ubyte&0xDF	>0
1033>>>>>>>>>>>>>>>>>>>506	string		x 		\b%-.1s
1034#name extension
1035>>>>>507		ubyte&0xDF	>0		\b.
1036>>>>>>507		string		x 		\b%-.1s
1037>>>>>>>508		ubyte&0xDF	>0
1038>>>>>>>>508		string		x 		\b%-.1s
1039>>>>>>>>>509		ubyte&0xDF	>0
1040>>>>>>>>>>509		string		x 		\b%-.1s
1041#If the boot sector fails to read any other sector,
1042#it prints a very short message ("RE") to the screen and hangs the computer.
1043#If the boot sector fails to find needed program in the root directory,
1044#it also hangs with another message ("NF").
1045>>>>>492		string		RENF		\b, FAT (12 bit)
1046>>>>>495		string		RENF		\b, FAT (16 bit)
1047# http://alexfru.chat.ru/epm.html#bootprog
1048>494	ubyte	>0x4D
1049>>495	string	>E
1050>>>495	string	<S
1051#OEM-ID is not reliable
1052>>>>3	string	BootProg
1053# It just looks for a program file name at the root directory
1054# and loads corresponding file with following execution.
1055# DOS names like STARTUP.BIN,STARTUPC.COM,STARTUPE.EXE are 8 right space padded bytes+3 bytes
1056>>>>499			ubyte&0xDF	>0		\b, COM/EXE Bootloader
1057>>>>>499		string		x 		\b %-.1s
1058>>>>>>500		ubyte&0xDF	>0
1059>>>>>>>500		string		x 		\b%-.1s
1060>>>>>>>>501		ubyte&0xDF	>0
1061>>>>>>>>>501		string		x 		\b%-.1s
1062>>>>>>>>>>502		ubyte&0xDF	>0
1063>>>>>>>>>>>502		string		x 		\b%-.1s
1064>>>>>>>>>>>>503		ubyte&0xDF	>0
1065>>>>>>>>>>>>>503	string		x 		\b%-.1s
1066>>>>>>>>>>>>>>504	ubyte&0xDF	>0
1067>>>>>>>>>>>>>>>504	string		x 		\b%-.1s
1068>>>>>>>>>>>>>>>>505	ubyte&0xDF	>0
1069>>>>>>>>>>>>>>>>>505	string		x 		\b%-.1s
1070>>>>>>>>>>>>>>>>>>506	ubyte&0xDF	>0
1071>>>>>>>>>>>>>>>>>>>506	string		x 		\b%-.1s
1072#name extension
1073>>>>>507		ubyte&0xDF	>0		\b.
1074>>>>>>507		string		x 		\b%-.1s
1075>>>>>>>508		ubyte&0xDF	>0
1076>>>>>>>>508		string		x 		\b%-.1s
1077>>>>>>>>>509		ubyte&0xDF	>0
1078>>>>>>>>>>509		string		x 		\b%-.1s
1079#If the boot sector fails to read any other sector,
1080#it prints a very short message ("RE") to the screen and hangs the computer.
1081#If the boot sector fails to find needed program in the root directory,
1082#it also hangs with another message ("NF").
1083>>>>>492		string		RENF		\b, FAT (12 bit)
1084>>>>>495		string		RENF		\b, FAT (16 bit)
1085# x86 bootloader end
1086
1087# by Joerg Jenderek at Apr 2013
1088#	Print the DOS filenames from directory entry form with 8 right space padded bytes + 3 bytes for extension
1089#	like IO.SYS. MSDOS.SYS , KERNEL.SYS , DRBIO.SYS
10900	name			DOS-filename
1091# space=0x20 (00100000b) means empty
1092>0			ubyte&0xDF	>0
1093>>0			ubyte		x 		\b%c
1094>>>1			ubyte&0xDF	>0
1095>>>>1			ubyte		x 		\b%c
1096>>>>>2			ubyte&0xDF	>0
1097>>>>>>2			ubyte		x 		\b%c
1098>>>>>>>3		ubyte&0xDF	>0
1099>>>>>>>>3		ubyte		x 		\b%c
1100>>>>>>>>>4		ubyte&0xDF	>0
1101>>>>>>>>>>4		ubyte		x 		\b%c
1102>>>>>>>>>>>5		ubyte&0xDF	>0
1103>>>>>>>>>>>>5		ubyte		x 		\b%c
1104>>>>>>>>>>>>>6		ubyte&0xDF	>0
1105>>>>>>>>>>>>>>6		ubyte		x 		\b%c
1106>>>>>>>>>>>>>>>7	ubyte&0xDF	>0
1107>>>>>>>>>>>>>>>>7	ubyte		x 		\b%c
1108# DOS filename extension
1109>>8			ubyte&0xDF	>0		\b.
1110>>>8			ubyte		x 		\b%c
1111>>>>9			ubyte&0xDF	>0
1112>>>>>9			ubyte		x 		\b%c
1113>>>>>>10		ubyte&0xDF	>0
1114>>>>>>>10		ubyte		x 		\b%c
1115#	Print 2 following DOS filenames from directory entry form
1116#	like IO.SYS+MSDOS.SYS or ibmbio.com+ibmdos.com
11170	name			2xDOS-filename
1118# display 1 space
1119>0			ubyte		x		\b
1120>0			use		DOS-filename
1121>11			ubyte		x		\b+
1122>11			use		DOS-filename
1123
1124# added by Joerg Jenderek at Feb 2013 according to http://thestarman.pcministry.com/asm/mbr/MSWIN41.htm#FSINFO
1125# and http://en.wikipedia.org/wiki/File_Allocation_Table#FS_Information_Sector
1126>0		string		RRaA
1127>>0x1E4		string		rrAa		\b, FSInfosector
1128#>>0x1FC	uleshort	=0		SHOULD BE ZERO
1129>>>0x1E8	ulelong		<0xffffffff	\b, %u free clusters
1130>>>0x1EC	ulelong		<0xffffffff	\b, last allocated cluster %u
1131
1132# updated by Joerg Jenderek at Sep 2007
1133>3	ubyte	0
1134#no active flag
1135>>446	ubyte	0
1136# partition 1 not empty
1137>>>450	ubyte	>0
1138# partitions 3,4 empty
1139>>>>482		ubyte	0
1140>>>>>498	ubyte	0
1141# partition 2 ID=0,5,15
1142>>>>>>466	ubyte	<0x10
1143>>>>>>>466	ubyte	0x05			\b, extended partition table
1144>>>>>>>466	ubyte	0x0F			\b, extended partition table (LBA)
1145>>>>>>>466	ubyte	0x0			\b, extended partition table (last)
1146
1147# DOS x86 sector separated and moved from "DOS/MBR boot sector" by Joerg Jenderek at May 2011
1148
1149>0x200	lelong	0x82564557		\b, BSD disklabel
1150
1151# http://en.wikipedia.org/wiki/Master_boot_record#PTE
1152# display standard partition table
11530	name				partition-table
1154#>0		ubyte		x	PARTITION-TABLE
1155# test and display 1st til 4th partition table entry
1156>0		use			partition-entry-test
1157>16		use			partition-entry-test
1158>32		use			partition-entry-test
1159>48		use			partition-entry-test
1160#		test for entry of partition table
11610	name				partition-entry-test
1162# partition type ID > 0
1163>4		ubyte		>0
1164# active flag 0
1165>>0		ubyte		0
1166>>>0		use		partition-entry
1167# active flag 0x80, 0x81, ...
1168>>0		ubyte		>0x7F
1169>>>0		use		partition-entry
1170#		Print entry of partition table
11710	name				partition-entry
1172# partition type ID > 0
1173>4		ubyte		>0	\b; partition
1174>>64		leshort		0xAA55	1
1175>>48		leshort		0xAA55	2
1176>>32		leshort		0xAA55	3
1177>>16		leshort		0xAA55	4
1178>>4		ubyte		x	: ID=0x%x
1179>>0		ubyte&0x80	0x80	\b, active
1180>>0		ubyte		>0x80	0x%x
1181>>1		ubyte		x	\b, start-CHS (
1182>>1		use		partition-chs
1183>>5		ubyte		x	\b), end-CHS (
1184>>5		use		partition-chs
1185>>8		ulelong		x	\b), startsector %u
1186>>12		ulelong		x	\b, %u sectors
1187#		Print cylinder,head,sector (CHS) of partition entry
11880	name				partition-chs
1189# cylinder
1190>1		ubyte		x	\b0x
1191>1		ubyte&0xC0	0x40	\b1
1192>1		ubyte&0xC0	0x80	\b2
1193>1		ubyte&0xC0	0xC0	\b3
1194>2		ubyte		x	\b%x
1195# head
1196>0		ubyte		x	\b,%u
1197# sector
1198>1		ubyte&0x3F	x	\b,%u
1199
1200# FATX
12010		string		FATX		FATX filesystem data
1202
1203# romfs filesystems - Juan Cespedes <cespedes@debian.org>
12040	string		-rom1fs-	romfs filesystem, version 1
1205>8	belong	x			%d bytes,
1206>16	string	x			named %s.
1207
1208# netboot image - Juan Cespedes <cespedes@debian.org>
12090	lelong		0x1b031336L	Netboot image,
1210>4	lelong&0xFFFFFF00	0
1211>>4	lelong&0x100	0x000		mode 2
1212>>4	lelong&0x100	0x100		mode 3
1213>4	lelong&0xFFFFFF00	!0	unknown mode
1214
12150x18b	string	OS/2	OS/2 Boot Manager
1216
1217# updated by Joerg Jenderek at Oct 2008 and Sep 2012
1218# http://syslinux.zytor.com/iso.php
1219# 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
1220# assembler instructions: cli;jmp 0:7Cyy (yy=0x40,0x5e,0x6c,0x6e,0x77);nop;nop
12210	ulequad&0x909000007cc0eafa	0x909000007c40eafa
1222>631	search/689	ISOLINUX\ 	isolinux Loader
1223>>&0	string		x		(version %-4.4s)
1224# http://syslinux.zytor.com/pxe.php
1225# assembler instructions: jmp 7C05
12260	ulelong	0x007c05ea		pxelinux loader (version 2.13 or older)
1227# assembler instructions: pushfd;pushad
12280	ulelong	0x60669c66		pxelinux loader
1229# assembler instructions: jmp 05
12300	ulelong	0xc00005ea		pxelinux loader (version 3.70 or newer)
1231# http://syslinux.zytor.com/wiki/index.php/SYSLINUX
12320	string	LDLINUX\ SYS\ 		SYSLINUX loader
1233>12	string	x			(older version %-4.4s)
12340	string	\r\nSYSLINUX\ 		SYSLINUX loader
1235>11	string	x			(version %-4.4s)
1236# syslinux updated and separated from "DOS/MBR boot sector" by Joerg Jenderek at Sep 2012
1237# assembler instructions: jmp yy (yy=0x3c,0x58);nop;"SYSLINUX"
12380	ulelong&0x80909bEB	0x009018EB
1239# OEM-ID not always "SYSLINUX"
1240>434	search/47	Boot\ failed
1241# followed by \r\n\0 or :\
1242>>482	search/132	\0LDLINUX\ SYS		Syslinux bootloader (version 2.13 or older)
1243>>1	ubyte		0x58			Syslinux bootloader (version 3.0-3.9)
1244>459	search/30	Boot\ error\r\n\0
1245>>1	ubyte		0x58			Syslinux bootloader (version 3.10 or newer)
1246# SYSLINUX MBR updated and separated from "DOS/MBR boot sector" by Joerg Jenderek at Sep 2012
1247# assembler instructions: mov di,0600h;mov cx,0100h
124816	search/4	\xbf\x00\x06\xb9\x00\x01
1249# to display SYSLINUX MBR (36) before old DOS/MBR boot sector one with partition table (strength=50+21)
1250!:strength +36
1251>94	search/249	Missing\ operating\ system
1252# followed by \r for versions older 3.35 , .\r for versions newer 3.52 and point for other
1253# skip Ranish MBR
1254>>408	search/4	HD1/\0
1255>>408	default		x
1256>>>250	search/118	\0Operating\ system\ load		SYSLINUX MBR
1257# followed by "ing " or space
1258>>>>292	search/98	error
1259>>>>>&0	string		\r		    			(version 3.35 or older)
1260>>>>>&0	string		.\r					(version 3.52 or newer)
1261>>>>>&0	default		x					(version 3.36-3.51 )
1262>368	search/106	\0Disk\ error\ on\ boot\r\n		SYSLINUX GPT-MBR
1263>>156	search/10	\0Boot\ partition\ not\ found\r\n
1264>>>270	search/10	\0OS\ not\ bootable\r\n			(version 3.86 or older)
1265>>174	search/10	\0Missing\ OS\r\n
1266>>>189	search/10	\0Multiple\ active\ partitions\r\n	(version 4.00 or newer)
1267# SYSLINUX END
1268
1269# NetBSD mbr variants (master-boot-code version 1.22) added by Joerg Jenderek at Nov 2012
1270# assembler instructions: xor ax,ax;mov	ax,ss;mov sp,0x7c00;mov	ax,
12710	ubequad		0x31c08ed0bc007c8e
1272# mbr_bootsel magic before partition table not reliable with small ipl fragments
1273#>444	uleshort	0xb5e1
1274>0004	uleshort	x
1275# ERRorTeXT
1276>>181	search/166		Error\ \0\r\n				NetBSD mbr
1277# NT Drive Serial Number http://thestarman.pcministry.com/asm/mbr/Win2kmbr.htm#DS
1278>>>0x1B8	ubelong		>0					\b,Serial 0x%-.8x
1279# BOOTSEL definitions contains assembler instructions: int 0x13;pop dx;push dx;push dx
1280>>>0xbb		search/71	\xcd\x13\x5a\x52\x52			\b,bootselector
1281# BOOT_EXTENDED definitions contains assembler instructions:
1282# xchg ecx,edx;addl ecx,edx;movw lba_info,si;movb 0x42,ah;pop dx;push dx;int 0x13
1283>>>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
1284# COM_PORT_VAL definitions contains assembler instructions: outb al,dx;add 5,dl;inb %dx;test 0x40,al
1285>>>0x130	search/55	\xee\x80\xc2\x05\xec\xa8\x40		\b,serial IO
1286# not TERSE_ERROR
1287>>>196		search/106	No\ active\ partition\0
1288>>>>&0		string		Disk\ read\ error\0
1289>>>>>&0		string		No\ operating\ system\0			\b,verbose
1290# not NO_CHS definitions contains assembler instructions: pop dx;push dx;movb $8,ah;int0x13
1291>>>0x7d		search/7	\x5a\x52\xb4\x08\xcd\x13		\b,CHS
1292# not NO_LBA_CHECK definitions contains assembler instructions: movw 0x55aa,bx;movb 0x41,ah;pop	dx;push	dx;int 0x13
1293>>>0xa4		search/84	\xbb\xaa\x55\xb4\x41\x5a\x52\xcd\x13	\b,LBA-check
1294# assembler instructions: movw nametab,bx
1295>>>0x26	    search/21	\xBB\x94\x07
1296# not NO_BANNER definitions contains assembler instructions: mov banner,si;call message_crlf
1297>>>>&-9	ubequad&0xBE00f0E800febb94	0xBE0000E80000bb94
1298>>>>>181	search/166		Error\ \0
1299# "a: disk" , "Fn: diskn" or "NetBSD MBR boot"
1300>>>>>>&3	string			x				\b,"%s"
1301# Andrea Mazzoleni AdvanceCD mbr loader of http://advancemame.sourceforge.net/boot-readme.html
1302# added by Joerg Jenderek at Nov 2012 for versions 1.3 - 1.4
1303# assembler instructions: jmp short 0x58;nop;ASCII
13040	ubequad&0xeb58908000000000	0xeb58900000000000
1305# assembler instructions: cli;xor ax,ax;mov ds,ax;mov es,ax;mov ss,
1306>(1.b+2)	ubequad			0xfa31c08ed88ec08e
1307# Error messages at end of code
1308>>376		string	No\ operating\ system\r\n\0
1309>>>398		string	Disk\ error\r\n\0FDD\0HDD\0
1310>>>>419		string	\ EBIOS\r\n\0				AdvanceMAME mbr
1311
1312# Neil Turton mbr loader variant of http://www.chiark.greenend.org.uk/~neilt/mbr/
1313# added by Joerg Jenderek at Mar 2011 for versions 1.0.0 - 1.1.11
1314# for 1st version assembler instructions:	cld;xor ax,ax;mov DS,ax;MOV ES,AX;mov SI,
1315# or  	  	  	    			cld;xor ax,ax;mov SS,ax;XOR SP,SP;mov DS,
13160	ulequad&0xcE1b40D48EC031FC	0x8E0000D08EC031FC
1317# pointer to the data starting with Neil Turton signature string
1318>(0x1BC.s)		string		NDTmbr
1319>>&-14			string		1234F\0			Turton mbr (
1320# parameters also viewed by install-mbr --list
1321>>>(0x1BC.s+7)		ubyte		x			\b%u<=
1322>>>(0x1BC.s+9)		ubyte		x			\bVersion<=%u
1323#>>>(0x1BC.s+8)		ubyte		x			asm_flag_%x
1324>>>(0x1BC.s+8)		ubyte&1		1			\b,Y2K-Fix
1325# variant used by testdisk of http://www.cgsecurity.org/wiki/Menu_MBRCode
1326>>>(0x1BC.s+8)		ubyte&2		2			\b,TestDisk
1327#0x1~1,..,0x8~4,0x10~F,0x80~A enabled
1328#>>>(0x1BC.s+10)		ubyte		x			\b,flags 0x%x
1329#0x0~1,0x1~2,...,0x3~4,0x4~F,0x7~D default boot
1330#>>>(0x1BC.s+11)		ubyte		x			\b,cfg_def 0x%x
1331# for older versions
1332>>>(0x1BC.s+9)		ubyte		<2
1333#>>>>(0x1BC.s+12)	ubyte		18			\b,%u/18 seconds
1334>>>>(0x1BC.s+12)	ubyte		!18			\b,%u/18 seconds
1335# floppy A: or B:
1336>>>>(0x1BC.s+13)	ubyte		<2			\b,floppy 0x%x
1337>>>>(0x1BC.s+13)	ubyte		>1
1338# 1st hard disc
1339#>>>>>(0x1BC.s+13)	ubyte		0x80			\b,drive 0x%x
1340# not 1st hard disc
1341>>>>>(0x1BC.s+13)	ubyte		!0x80			\b,drive 0x%x
1342# for version >= 2 maximal timeout can be 65534
1343>>>(0x1BC.s+9)		ubyte		>1
1344#>>>>(0x1BC.s+12)	uleshort	18			\b,%u/18 seconds
1345>>>>(0x1BC.s+12)	uleshort	!18			\b,%u/18 seconds
1346# floppy A: or B:
1347>>>>(0x1BC.s+14)	ubyte		<2			\b,floppy 0x%x
1348>>>>(0x1BC.s+14)	ubyte		>1
1349# 1st hard disc
1350#>>>>>(0x1BC.s+14)	ubyte		0x80			\b,drive 0x%x
1351# not 1st hard disc
1352>>>>>(0x1BC.s+14)	ubyte		!0x80			\b,drive 0x%x
1353>>>0	ubyte		x					\b)
1354
1355# added by Joerg Jenderek
1356# In the second sector (+0x200) are variables according to grub-0.97/stage2/asm.S or
1357# grub-1.94/kern/i386/pc/startup.S
1358# http://www.gnu.org/software/grub/manual/grub.html#Embedded-data
1359# usual values are marked with comments to get only informations of strange GRUB loaders
13600x200	uleshort		0x70EA
1361# found only version 3.{1,2}
1362>0x206		ubeshort	>0x0300
1363# GRUB version (0.5.)95,0.93,0.94,0.96,0.97 > "00"
1364>>0x212 	ubyte		>0x29
1365>>>0x213 	ubyte		>0x29
1366# not iso9660_stage1_5
1367#>>>0	ulelong&0x00BE5652	0x00BE5652
1368>>>>0x213 	ubyte		>0x29		GRand Unified Bootloader
1369# config_file for stage1_5 is 0xffffffff + default "/boot/grub/stage2"
1370>>>>0x217 	ubyte		0xFF		stage1_5
1371>>>>0x217 	ubyte		<0xFF		stage2
1372>>>>0x206	ubyte		x		\b version %u
1373>>>>0x207	ubyte		x		\b.%u
1374# module_size for 1.94
1375>>>>0x208	ulelong		<0xffffff	\b, installed partition %u
1376#>>>>0x208	ulelong		=0xffffff	\b, %u (default)
1377>>>>0x208	ulelong		>0xffffff	\b, installed partition %u
1378# GRUB 0.5.95 unofficial
1379>>>>0x20C	ulelong&0x2E300000 0x2E300000
1380# 0=stage2	1=ffs	2=e2fs	3=fat	4=minix	5=reiserfs
1381>>>>>0x20C	ubyte		x		\b, identifier 0x%x
1382#>>>>>0x20D	ubyte		=0		\b, LBA flag 0x%x (default)
1383>>>>>0x20D	ubyte		>0		\b, LBA flag 0x%x
1384# GRUB version as string
1385>>>>>0x20E 	string		>\0		\b, GRUB version %-s
1386# for stage1_5 is 0xffffffff + config_file "/boot/grub/stage2" default
1387>>>>>>0x215 	ulong		0xffffffff
1388>>>>>>>0x219 	string		>\0		\b, configuration file %-s
1389>>>>>>0x215 	ulong		!0xffffffff
1390>>>>>>>0x215 	string		>\0		\b, configuration file %-s
1391# newer GRUB versions
1392>>>>0x20C	ulelong&0x2E300000 !0x2E300000
1393##>>>>>0x20C	ulelong		=0		\b, saved entry %d (usual)
1394>>>>>0x20C	ulelong		>0		\b, saved entry %d
1395# for 1.94 contains kernel image size
1396# for 0.93,0.94,0.96,0.97
1397# 0=stage2	1=ffs	2=e2fs	3=fat	4=minix	5=reiserfs	6=vstafs	7=jfs	8=xfs	9=iso9660	a=ufs2
1398>>>>>0x210	ubyte		x		\b, identifier 0x%x
1399# The flag for LBA forcing is in most cases 0
1400#>>>>>0x211	ubyte		=0		\b, LBA flag 0x%x (default)
1401>>>>>0x211	ubyte		>0		\b, LBA flag 0x%x
1402# GRUB version as string
1403>>>>>0x212 	string		>\0		\b, GRUB version %-s
1404# for stage1_5 is 0xffffffff + config_file "/boot/grub/stage2" default
1405>>>>>0x217 	ulong		0xffffffff
1406>>>>>>0x21b 	string		>\0		\b, configuration file %-s
1407>>>>>0x217 	ulong		!0xffffffff
1408>>>>>>0x217 	string		>\0		\b, configuration file %-s
1409
1410# DOS x86 sector updated and separated from "DOS/MBR boot sector" by Joerg Jenderek at May 2011
1411# JuMP short     bootcodeoffset NOP assembler instructions will usually be EB xx 90
1412# over BIOS parameter block (BPB)
1413# http://thestarman.pcministry.com/asm/2bytejumps.htm#FWD
1414# older drives may use Near JuMP instruction E9 xx xx
1415# minimal short forward jump found 0x29 for bootloaders or 0x0
1416# maximal short forward jump is 0x7f
1417# OEM-ID is empty or contain readable bytes
14180		ulelong&0x804000E9	0x000000E9
1419# mtools-3.9.8/msdos.h
1420# usual values are marked with comments to get only informations of strange FAT systems
1421# valid sectorsize must be a power of 2 from 32 to 32768
1422>11		uleshort&0xf001f	0
1423>>11		uleshort	<32769
1424>>>11		uleshort	>31
1425>>>>21		ubyte&0xf0	0xF0
1426>>>>>0		ubyte		0xEB
1427>>>>>>1		ubyte		x		\b, code offset 0x%x+2
1428>>>>>0		ubyte		0xE9
1429>>>>>>1		uleshort	x		\b, code offset 0x%x+2
1430>>>>>3		string		>\0		\b, OEM-ID "%-.8s"
1431#http://mirror.href.com/thestarman/asm/debug/debug2.htm#IHC
1432>>>>>>8		string		IHC		\b cached by Windows 9M
1433>>>>>11		uleshort	>512		\b, Bytes/sector %u
1434#>>>>>11	uleshort	=512		\b, Bytes/sector %u=512 (usual)
1435>>>>>11		uleshort	<512		\b, Bytes/sector %u
1436>>>>>13		ubyte		>1		\b, sectors/cluster %u
1437#>>>>>13	ubyte		=1		\b, sectors/cluster %u (usual on Floppies)
1438>>>>>82		string		FAT32
1439>>>>>>14	uleshort	!32		\b, reserved sectors %u
1440#>>>>>>14	uleshort	=32		\b, reserved sectors %u (usual Fat32)
1441>>>>>82		string		!FAT32
1442>>>>>>14	uleshort	>1		\b, reserved sectors %u
1443#>>>>>>14	uleshort	=1		\b, reserved sectors %u (usual FAT12,FAT16)
1444#>>>>>>14	uleshort	0		\b, reserved sectors %u (usual NTFS)
1445>>>>>16		ubyte		>2		\b, FATs %u
1446#>>>>>16	ubyte		=2		\b, FATs %u (usual)
1447>>>>>16		ubyte		=1		\b, FAT  %u
1448>>>>>16		ubyte		>0
1449>>>>>17		uleshort	>0		\b, root entries %u
1450#>>>>>17	uleshort	=0		\b, root entries %u=0 (usual Fat32)
1451>>>>>19		uleshort	>0		\b, sectors %u (volumes <=32 MB)
1452#>>>>>19	uleshort	=0		\b, sectors %u=0 (usual Fat32)
1453>>>>>21		ubyte		>0xF0		\b, Media descriptor 0x%x
1454#>>>>>21	ubyte		=0xF0		\b, Media descriptor 0x%x (usual floppy)
1455>>>>>21		ubyte		<0xF0		\b, Media descriptor 0x%x
1456>>>>>22		uleshort	>0		\b, sectors/FAT %u
1457#>>>>>22	uleshort	=0		\b, sectors/FAT %u=0 (usual Fat32)
1458>>>>>24		uleshort	x		\b, sectors/track %u
1459>>>>>26		ubyte		>2		\b, heads %u
1460#>>>>>26	ubyte		=2		\b, heads %u (usual floppy)
1461>>>>>26		ubyte		=1		\b, heads %u
1462# valid only for sector sizes with more then 32 Bytes
1463>>>>>11		uleshort	>32
1464# skip for Digital Research DOS (version 3.41) 1440 kB Bootdisk
1465>>>>>>38	ubyte		!0x70
1466>>>>>>>28	ulelong		>0		\b, hidden sectors %u
1467#>>>>>>>28	ulelong		=0		\b, hidden sectors %u (usual floppy)
1468>>>>>>>32	ulelong		>0		\b, sectors %u (volumes > 32 MB)
1469#>>>>>>>32	ulelong		=0		\b, sectors %u (volumes > 32 MB)
1470# FAT<32 bit specific
1471>>>>>>>82	string		!FAT32
1472#>>>>>>>>36	ubyte		0x80		\b, physical drive 0x%x=0x80 (usual harddisk)
1473#>>>>>>>>36	ubyte		0		\b, physical drive 0x%x=0 (usual floppy)
1474>>>>>>>>36	ubyte		!0x80
1475>>>>>>>>>36	ubyte		!0		\b, physical drive 0x%x
1476>>>>>>>>37	ubyte		>0		\b, reserved 0x%x
1477#>>>>>>>>37	ubyte		=0		\b, reserved 0x%x
1478# value is 0x80 for NTFS
1479>>>>>>>>38	ubyte		!0x29		\b, dos < 4.0 BootSector (0x%x)
1480>>>>>>>>38	ubyte		=0x29
1481>>>>>>>>>39	ulelong		x		\b, serial number 0x%x
1482>>>>>>>>>43	string		<NO\ NAME	\b, label: "%11.11s"
1483>>>>>>>>>43	string		>NO\ NAME	\b, label: "%11.11s"
1484>>>>>>>>>43	string		=NO\ NAME	\b, unlabeled
1485# there exist some old floppies without word FAT at offset 54
1486# a word like "FATnm   " is only a hint for a FAT size on nm-bits
1487# Normally the number of clusters is calculated by the values of BPP.
1488# if it is small enough FAT is 12 bit, if it is too big enough FAT is 32 bit,
1489# otherwise FAT is 16 bit.
1490# http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/determining-fat-widths.html
1491>>>>>>54	string		FAT		\b, FAT
1492>>>>>>>54	string		FAT12		\b (12 bit)
1493>>>>>>>54	string		FAT16		\b (16 bit)
1494# FAT32 bit specific
1495>>>>>82		string		FAT32		\b, FAT (32 bit)
1496>>>>>>36	ulelong		x		\b, sectors/FAT %u
1497# http://technet.microsoft.com/en-us/library/cc977221.aspx
1498>>>>>>40	uleshort	>0		\b, extension flags 0x%x
1499#>>>>>>40	uleshort	=0		\b, extension flags %u
1500>>>>>>42	uleshort	>0		\b, fsVersion %u
1501#>>>>>>42	uleshort	=0		\b, fsVersion %u (usual)
1502>>>>>>44	ulelong		>2		\b, rootdir cluster %u
1503#>>>>>>44	ulelong		=2		\b, rootdir cluster %u
1504#>>>>>>44	ulelong		=1		\b, rootdir cluster %u
1505>>>>>>48	uleshort	>1		\b, infoSector %u
1506#>>>>>>48	uleshort	=1		\b, infoSector %u (usual)
1507>>>>>>48	uleshort	<1		\b, infoSector %u
1508>>>>>>50	uleshort	>6		\b, Backup boot sector %u
1509#>>>>>>50	uleshort	=6		\b, Backup boot sector %u (usual)
1510>>>>>>50	uleshort	<6		\b, Backup boot sector %u
1511# corrected by Joerg Jenderek at Feb 2011 according to http://thestarman.pcministry.com/asm/mbr/MSWIN41.htm#FSINFO
1512>>>>>>52	ulelong		>0		\b, reserved1 0x%x
1513>>>>>>56	ulelong		>0		\b, reserved2 0x%x
1514>>>>>>60	ulelong		>0		\b, reserved3 0x%x
1515# same structure as FAT1X
1516#>>>>>>64	ubyte		=0x80		\b, physical drive 0x%x=80 (usual harddisk)
1517#>>>>>>64	ubyte		=0		\b, physical drive 0x%x=0 (usual floppy)
1518>>>>>>64	ubyte		!0x80
1519>>>>>>>64	ubyte		>0		\b, physical drive 0x%x
1520# in Windows NT bit 0 is a dirty flag to request chkdsk at boot time. bit 1 requests surface scan too
1521>>>>>>65	ubyte		>0		\b, reserved 0x%x
1522>>>>>>66	ubyte		!0x29		\b, dos < 4.0 BootSector (0x%x)
1523>>>>>>66	ubyte		=0x29
1524>>>>>>>67	ulelong		x		\b, serial number 0x%x
1525>>>>>>>71	string		<NO\ NAME	\b, label: "%11.11s"
1526>>>>>>>71	string		>NO\ NAME	\b, label: "%11.11s"
1527>>>>>>>71	string		=NO\ NAME	\b, unlabeled
1528# additional tests for floppy image added by Joerg Jenderek
1529# no fixed disk
1530>>>>>21		ubyte		!0xF8
1531# floppy media with 12 bit FAT
1532>>>>>>54	string		!FAT16
1533# test for FAT after bootsector
1534>>>>>>>(11.s)	ulelong&0x00ffffF0	0x00ffffF0	\b, followed by FAT
1535# floppy image
1536!:mime application/x-ima
1537# NTFS specific added by Joerg Jenderek at Mar 2011 according to http://thestarman.pcministry.com/asm/mbr/NTFSBR.htm
1538# and http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/bios-parameter-block.html
1539# 0 FATs
1540>>>>>16	ubyte		=0
1541# 0 root entries
1542>>>>>>17	uleshort	=0
1543# 0 DOS sectors
1544>>>>>>>19	uleshort	=0
1545# 0 sectors/FAT
1546# dos < 4.0 BootSector value found is 0x80
1547#38	ubyte		=0x80			\b, dos < 4.0 BootSector (0x%x)
1548>>>>>>>>22	uleshort	=0		\b; NTFS
1549>>>>>>>>>24	uleshort	>0		\b, sectors/track %u
1550>>>>>>>>>36	ulelong		!0x800080	\b, physical drive 0x%x
1551>>>>>>>>>40	ulequad		>0		\b, sectors %lld
1552>>>>>>>>>48	ulequad		>0		\b, $MFT start cluster %lld
1553>>>>>>>>>56	ulequad		>0		\b, $MFTMirror start cluster %lld
1554# Values 0 to 127 represent MFT record sizes of 0 to 127 clusters.
1555# Values 128 to 255 represent MFT record sizes of 2^(256-N) bytes.
1556>>>>>>>>>64	lelong		<256
1557>>>>>>>>>>64	lelong		<128		\b, clusters/RecordSegment %d
1558>>>>>>>>>>64	ubyte		>127		\b, bytes/RecordSegment 2^(-1*%hhi)
1559# Values 0 to 127 represent index block sizes of 0 to 127 clusters.
1560# Values 128 to 255 represent index block sizes of 2^(256-N) byte
1561>>>>>>>>>68	ulelong		<256
1562>>>>>>>>>>68	ulelong		<128		\b, clusters/index block %d
1563#>>>>>>>>>>68	ulelong		>127		\b, bytes/index block 2^(256-%d)
1564>>>>>>>>>>68	ubyte		>127		\b, bytes/index block 2^(-1*%hhi)
1565>>>>>>>>>72	ulequad		x		\b, serial number 0%llx
1566>>>>>>>>>80	ulelong		>0		\b, checksum 0x%x
1567#>>>>>>>>>80	ulelong		=0		\b, checksum 0x%x=0 (usual)
1568>>>>>>>>>0x258	ulelong&0x00009090	=0x00009090
1569>>>>>>>>>>&-92		indirect	x	\b; contains
1570# For 2nd NTFS sector added by Joerg Jenderek at Jan 2013
1571# http://thestarman.pcministry.com/asm/mbr/NTFSbrHexEd.htm
1572# unused assembler instructions JMP y2;NOP;NOP
15730x056		ulelong&0xFFFF0FFF	0x909002EB
1574# unicode loadername terminated by CTRL-D
1575>(0.s*2)	ulelong&0xFFFFFF00	0x00040000
1576# loadernames are NTLDR,CMLDR,PELDR,$LDR$ or BOOTMGR
1577>>0x002		lestring16	x	Microsoft Windows XP/VISTA bootloader %-5.5s
1578>>0x12		string		$
1579>>>0x0c		lestring16	x	\b%-2.2s
1580### DOS,NTFS boot sectors end
1581
15829564	lelong		0x00011954	Unix Fast File system [v1] (little-endian),
1583>8404	string		x		last mounted on %s,
1584#>9504	ledate		x		last checked at %s,
1585>8224	ledate		x		last written at %s,
1586>8401	byte		x		clean flag %d,
1587>8228	lelong		x		number of blocks %d,
1588>8232	lelong		x		number of data blocks %d,
1589>8236	lelong		x		number of cylinder groups %d,
1590>8240	lelong		x		block size %d,
1591>8244	lelong		x		fragment size %d,
1592>8252	lelong		x		minimum percentage of free blocks %d,
1593>8256	lelong		x		rotational delay %dms,
1594>8260	lelong		x		disk rotational speed %drps,
1595>8320	lelong		0		TIME optimization
1596>8320	lelong		1		SPACE optimization
1597
159842332	lelong		0x19540119	Unix Fast File system [v2] (little-endian)
1599>&-1164	string		x		last mounted on %s,
1600>&-696	string		>\0		volume name %s,
1601>&-304	leqldate	x		last written at %s,
1602>&-1167	byte		x		clean flag %d,
1603>&-1168	byte		x		readonly flag %d,
1604>&-296	lequad		x		number of blocks %lld,
1605>&-288	lequad		x		number of data blocks %lld,
1606>&-1332	lelong		x		number of cylinder groups %d,
1607>&-1328	lelong		x		block size %d,
1608>&-1324	lelong		x		fragment size %d,
1609>&-180	lelong		x		average file size %d,
1610>&-176	lelong		x		average number of files in dir %d,
1611>&-272	lequad		x		pending blocks to free %lld,
1612>&-264	lelong		x		pending inodes to free %ld,
1613>&-664	lequad		x		system-wide uuid %0llx,
1614>&-1316	lelong		x		minimum percentage of free blocks %d,
1615>&-1248	lelong		0		TIME optimization
1616>&-1248	lelong		1		SPACE optimization
1617
161866908	lelong		0x19540119	Unix Fast File system [v2] (little-endian)
1619>&-1164	string		x		last mounted on %s,
1620>&-696	string		>\0		volume name %s,
1621>&-304	leqldate	x		last written at %s,
1622>&-1167	byte		x		clean flag %d,
1623>&-1168	byte		x		readonly flag %d,
1624>&-296	lequad		x		number of blocks %lld,
1625>&-288	lequad		x		number of data blocks %lld,
1626>&-1332	lelong		x		number of cylinder groups %d,
1627>&-1328	lelong		x		block size %d,
1628>&-1324	lelong		x		fragment size %d,
1629>&-180	lelong		x		average file size %d,
1630>&-176	lelong		x		average number of files in dir %d,
1631>&-272	lequad		x		pending blocks to free %lld,
1632>&-264	lelong		x		pending inodes to free %ld,
1633>&-664	lequad		x		system-wide uuid %0llx,
1634>&-1316	lelong		x		minimum percentage of free blocks %d,
1635>&-1248	lelong		0		TIME optimization
1636>&-1248	lelong		1		SPACE optimization
1637
16389564	belong		0x00011954	Unix Fast File system [v1] (big-endian),
1639>7168   belong		0x4c41424c	Apple UFS Volume
1640>>7186  string		x		named %s,
1641>>7176  belong		x		volume label version %d,
1642>>7180  bedate		x		created on %s,
1643>8404	string		x		last mounted on %s,
1644#>9504	bedate		x		last checked at %s,
1645>8224	bedate		x		last written at %s,
1646>8401	byte		x		clean flag %d,
1647>8228	belong		x		number of blocks %d,
1648>8232	belong		x		number of data blocks %d,
1649>8236	belong		x		number of cylinder groups %d,
1650>8240	belong		x		block size %d,
1651>8244	belong		x		fragment size %d,
1652>8252	belong		x		minimum percentage of free blocks %d,
1653>8256	belong		x		rotational delay %dms,
1654>8260	belong		x		disk rotational speed %drps,
1655>8320	belong		0		TIME optimization
1656>8320	belong		1		SPACE optimization
1657
165842332	belong		0x19540119	Unix Fast File system [v2] (big-endian)
1659>&-1164	string		x		last mounted on %s,
1660>&-696	string		>\0		volume name %s,
1661>&-304	beqldate	x		last written at %s,
1662>&-1167	byte		x		clean flag %d,
1663>&-1168	byte		x		readonly flag %d,
1664>&-296	bequad		x		number of blocks %lld,
1665>&-288	bequad		x		number of data blocks %lld,
1666>&-1332	belong		x		number of cylinder groups %d,
1667>&-1328	belong		x		block size %d,
1668>&-1324	belong		x		fragment size %d,
1669>&-180	belong		x		average file size %d,
1670>&-176	belong		x		average number of files in dir %d,
1671>&-272	bequad		x		pending blocks to free %lld,
1672>&-264	belong		x		pending inodes to free %ld,
1673>&-664	bequad		x		system-wide uuid %0llx,
1674>&-1316	belong		x		minimum percentage of free blocks %d,
1675>&-1248	belong		0		TIME optimization
1676>&-1248	belong		1		SPACE optimization
1677
167866908	belong		0x19540119	Unix Fast File system [v2] (big-endian)
1679>&-1164	string		x		last mounted on %s,
1680>&-696	string		>\0		volume name %s,
1681>&-304	beqldate	x		last written at %s,
1682>&-1167	byte		x		clean flag %d,
1683>&-1168	byte		x		readonly flag %d,
1684>&-296	bequad		x		number of blocks %lld,
1685>&-288	bequad		x		number of data blocks %lld,
1686>&-1332	belong		x		number of cylinder groups %d,
1687>&-1328	belong		x		block size %d,
1688>&-1324	belong		x		fragment size %d,
1689>&-180	belong		x		average file size %d,
1690>&-176	belong		x		average number of files in dir %d,
1691>&-272	bequad		x		pending blocks to free %lld,
1692>&-264	belong		x		pending inodes to free %ld,
1693>&-664	bequad		x		system-wide uuid %0llx,
1694>&-1316	belong		x		minimum percentage of free blocks %d,
1695>&-1248	belong		0		TIME optimization
1696>&-1248	belong		1		SPACE optimization
1697
1698# ext2/ext3 filesystems - Andreas Dilger <adilger@dilger.ca>
1699# ext4 filesystem - Eric Sandeen <sandeen@sandeen.net>
1700# volume label and UUID Russell Coker
1701# http://etbe.coker.com.au/2008/07/08/label-vs-uuid-vs-device/
17020x438   leshort         0xEF53          Linux
1703>0x44c  lelong          x               rev %d
1704>0x43e  leshort         x               \b.%d
1705# No journal?  ext2
1706>0x45c  lelong          ^0x0000004      ext2 filesystem data
1707>>0x43a leshort         ^0x0000001      (mounted or unclean)
1708# Has a journal?  ext3 or ext4
1709>0x45c  lelong          &0x0000004
1710#  and small INCOMPAT?
1711>>0x460 lelong          <0x0000040
1712#   and small RO_COMPAT?
1713>>>0x464 lelong         <0x0000008      ext3 filesystem data
1714#   else large RO_COMPAT?
1715>>>0x464 lelong         >0x0000007      ext4 filesystem data
1716#  else large INCOMPAT?
1717>>0x460	lelong          >0x000003f      ext4 filesystem data
1718>0x468	belong		x		\b, UUID=%08x
1719>0x46c	beshort		x		\b-%04x
1720>0x46e	beshort		x		\b-%04x
1721>0x470	beshort		x		\b-%04x
1722>0x472	belong		x		\b-%08x
1723>0x476	beshort		x		\b%04x
1724>0x478	string		>0		\b, volume name "%s"
1725# General flags for any ext* fs
1726>0x460	lelong          &0x0000004      (needs journal recovery)
1727>0x43a	leshort         &0x0000002      (errors)
1728# INCOMPAT flags
1729>0x460	lelong          &0x0000001      (compressed)
1730#>0x460	lelong          &0x0000002      (filetype)
1731#>0x460	lelong          &0x0000010      (meta bg)
1732>0x460	lelong          &0x0000040      (extents)
1733>0x460	lelong          &0x0000080      (64bit)
1734#>0x460	lelong          &0x0000100      (mmp)
1735#>0x460	lelong          &0x0000200      (flex bg)
1736# RO_INCOMPAT flags
1737#>0x464	lelong          &0x0000001      (sparse super)
1738>0x464	lelong          &0x0000002      (large files)
1739>0x464	lelong          &0x0000008      (huge files)
1740#>0x464	lelong          &0x0000010      (gdt checksum)
1741#>0x464	lelong          &0x0000020      (many subdirs)
1742#>0x463	lelong          &0x0000040      (extra isize)
1743
1744# Minix filesystems - Juan Cespedes <cespedes@debian.org>
17450x410	leshort		0x137f
1746!:strength / 2
1747>0x402	beshort		< 100
1748>0x402	beshort		> -1		Minix filesystem, V1, %d zones
1749>0x1e	string		minix		\b, bootable
17500x410	beshort		0x137f
1751!:strength / 2
1752>0x402	beshort		< 100
1753>0x402	beshort		> -1		Minix filesystem, V1 (big endian), %d zones
1754>0x1e	string		minix		\b, bootable
17550x410	leshort		0x138f
1756!:strength / 2
1757>0x402	beshort		< 100
1758>0x402	beshort		> -1		Minix filesystem, V1, 30 char names, %d zones
1759>0x1e	string		minix		\b, bootable
17600x410	beshort		0x138f
1761!:strength / 2
1762>0x402	beshort		< 100
1763>0x402	beshort		> -1		Minix filesystem, V1, 30 char names (big endian), %d zones
1764>0x1e	string		minix		\b, bootable
17650x410	leshort		0x2468
1766>0x402	beshort		< 100
1767>>0x402	beshort		> -1		Minix filesystem, V2, %d zones
1768>0x1e	string		minix		\b, bootable
17690x410	beshort		0x2468
1770>0x402	beshort		< 100
1771>0x402	beshort		> -1		Minix filesystem, V2 (big endian), %d zones
1772>0x1e	string		minix		\b, bootable
1773
17740x410	leshort		0x2478
1775>0x402	beshort		< 100
1776>0x402	beshort		> -1		Minix filesystem, V2, 30 char names, %d zones
1777>0x1e	string		minix		\b, bootable
17780x410	leshort		0x2478
1779>0x402	beshort		< 100
1780>0x402	beshort		> -1		Minix filesystem, V2, 30 char names, %d zones
1781>0x1e	string		minix		\b, bootable
17820x410	beshort		0x2478
1783>0x402	beshort		!0		Minix filesystem, V2, 30 char names (big endian), %d zones
1784>0x1e	string		minix		\b, bootable
17850x410	leshort		0x4d5a
1786>0x402	beshort		!0		Minix filesystem, V3, %d zones
1787>0x1e	string		minix		\b, bootable
1788
1789# SGI disk labels - Nathan Scott <nathans@debian.org>
17900	belong		0x0BE5A941	SGI disk label (volume header)
1791
1792# SGI XFS filesystem - Nathan Scott <nathans@debian.org>
17930	belong		0x58465342	SGI XFS filesystem data
1794>0x4	belong		x		(blksz %d,
1795>0x68	beshort		x		inosz %d,
1796>0x64	beshort		^0x2004		v1 dirs)
1797>0x64	beshort		&0x2004		v2 dirs)
1798
1799############################################################################
1800# Minix-ST kernel floppy
18010x800	belong		0x46fc2700	Atari-ST Minix kernel image
1802# http://en.wikipedia.org/wiki/BIOS_parameter_block
1803# floppies with valid BPB and any instruction at beginning
1804>19	string		\240\005\371\005\0\011\0\2\0	\b, 720k floppy
1805>19	string		\320\002\370\005\0\011\0\1\0	\b, 360k floppy
1806
1807############################################################################
1808# Hmmm, is this a better way of detecting _standard_ floppy images ?
180919	string		\320\002\360\003\0\011\0\1\0	DOS floppy 360k
1810>0x1FE	leshort		0xAA55		\b, DOS/MBR hard disk boot sector
181119	string		\240\005\371\003\0\011\0\2\0	DOS floppy 720k
1812>0x1FE	leshort		0xAA55		\b, DOS/MBR hard disk boot sector
181319	string		\100\013\360\011\0\022\0\2\0	DOS floppy 1440k
1814>0x1FE	leshort		0xAA55		\b, DOS/MBR hard disk boot sector
1815
181619	string		\240\005\371\005\0\011\0\2\0	DOS floppy 720k, IBM
1817>0x1FE	leshort		0xAA55		\b, DOS/MBR hard disk boot sector
181819	string		\100\013\371\005\0\011\0\2\0	DOS floppy 1440k, mkdosfs
1819>0x1FE	leshort		0xAA55		\b, DOS/MBR hard disk boot sector
1820
182119	string		\320\002\370\005\0\011\0\1\0	Atari-ST floppy 360k
182219	string		\240\005\371\005\0\011\0\2\0	Atari-ST floppy 720k
1823#			|       |   |     |     |
1824#			|       |   |     |     heads
1825#			|       |   |     sectors/track
1826#			|       |   sectors/FAT
1827#			|       media descriptor
1828#		BPB:	sectors
1829
1830#  Valid media descriptor bytes for MS-DOS:
1831#
1832#     Byte   Capacity   Media Size and Type
1833#     -------------------------------------------------
1834#
1835#     F0     2.88 MB    3.5-inch, 2-sided, 36-sector
1836#     F0     1.44 MB    3.5-inch, 2-sided, 18-sector
1837#     F9     720K       3.5-inch, 2-sided, 9-sector
1838#     F9     1.2 MB     5.25-inch, 2-sided, 15-sector
1839#     FD     360K       5.25-inch, 2-sided, 9-sector
1840#     FF     320K       5.25-inch, 2-sided, 8-sector
1841#     FC     180K       5.25-inch, 1-sided, 9-sector
1842#     FE     160K       5.25-inch, 1-sided, 8-sector
1843#     FE     250K       8-inch, 1-sided, single-density
1844#     FD     500K       8-inch, 2-sided, single-density
1845#     FE     1.2 MB     8-inch, 2-sided, double-density
1846#     F8     -----      Fixed disk
1847#
1848#     FC     xxxK       Apricot 70x1x9 boot disk.
1849#
1850# Originally a bitmap:
1851#  xxxxxxx0	Not two sided
1852#  xxxxxxx1	Double sided
1853#  xxxxxx0x	Not 8 SPT
1854#  xxxxxx1x	8 SPT
1855#  xxxxx0xx	Not Removable drive
1856#  xxxxx1xx	Removable drive
1857#  11111xxx	Must be one.
1858#
1859# But now it's rather random:
1860#  111111xx	Low density disk
1861#        00	SS, Not 8 SPT
1862#        01	DS, Not 8 SPT
1863#        10	SS, 8 SPT
1864#        11	DS, 8 SPT
1865#
1866#  11111001	Double density 3 1/2 floppy disk, high density 5 1/4
1867#  11110000	High density 3 1/2 floppy disk
1868#  11111000	Hard disk any format
1869#
1870
1871# all FAT12 (strength=70) floppies with sectorsize 512 added by Joerg Jenderek at Jun 2013
1872# http://en.wikipedia.org/wiki/File_Allocation_Table#Exceptions
1873# Too Weak.
1874#512		ubelong&0xE0ffff00	0xE0ffff00
1875# without valid Media descriptor in place of BPB, cases with are done at other places
1876#>21		ubyte			<0xE5			floppy with old FAT filesystem
1877# but valid Media descriptor at begin of FAT
1878#>>512		ubyte			=0xed			720k
1879#>>512		ubyte			=0xf0			1440k
1880#>>512		ubyte			=0xf8			720k
1881#>>512		ubyte			=0xf9			1220k
1882#>>512		ubyte			=0xfa			320k
1883#>>512		ubyte			=0xfb			640k
1884#>>512		ubyte			=0xfc			180k
1885# look like an an old DOS directory entry
1886#>>>0xA0E	ubequad			0
1887#>>>>0xA00	ubequad			!0
1888#!:mime application/x-ima
1889#>>512		ubyte			=0xfd
1890# look for 2nd FAT at different location to distinguish between 360k and 500k
1891#>>>0x600	ubelong&0xE0ffff00	0xE0ffff00		360k
1892#>>>0x500	ubelong&0xE0ffff00	0xE0ffff00		500k
1893#>>>0xA0E	ubequad			0
1894#!:mime application/x-ima
1895#>>512		ubyte			=0xfe
1896#>>>0x400	ubelong&0xE0ffff00	0xE0ffff00		160k
1897#>>>>0x60E	ubequad			0
1898#>>>>>0x600	ubequad			!0
1899#!:mime application/x-ima
1900#>>>0xC00	ubelong&0xE0ffff00	0xE0ffff00		1200k
1901#>>512		ubyte			=0xff			320k
1902#>>>0x60E	ubequad			0
1903#>>>>0x600	ubequad			!0
1904#!:mime application/x-ima
1905#>>512		ubyte			x			\b, Media descriptor 0x%x
1906# without x86 jump instruction
1907#>>0		ulelong&0x804000E9	!0x000000E9
1908# assembler instructions: CLI;MOV SP,1E7;MOV AX;07c0;MOV
1909#>>>0	ubequad				0xfabce701b8c0078e	\b, MS-DOS 1.12 bootloader
1910# IOSYS.COM+MSDOS.COM
1911#>>>>0xc4	use			2xDOS-filename
1912#>>0		ulelong&0x804000E9	=0x000000E9
1913# only x86 short jump instruction found
1914#>>>0		ubyte			=0xEB
1915#>>>>1		ubyte			x			\b, code offset 0x%x+2
1916# http://thestarman.pcministry.com/DOS/ibm100/Boot.htm
1917# assembler instructions: CLI;MOV AX,CS;MOV DS,AX;MOV DX,0
1918#>>>>(1.b+2)	ubequad			0xfa8cc88ed8ba0000	\b, PC-DOS 1.0 bootloader
1919# ibmbio.com+ibmdos.com
1920#>>>>>0x176	use			DOS-filename
1921#>>>>>0x181	ubyte			x			\b+
1922#>>>>>0x182	use			DOS-filename
1923# http://thestarman.pcministry.com/DOS/ibm110/Boot.htm
1924# assembler instructions: CLI;MOV AX,CS;MOV DS,AX;XOR DX,DX;MOV
1925#>>>>(1.b+2)	ubequad			0xfa8cc88ed833d28e	\b, PC-DOS 1.1 bootloader
1926# ibmbio.com+ibmdos.com
1927#>>>>>0x18b	use			DOS-filename
1928#>>>>>0x196	ubyte			x			\b+
1929#>>>>>0x197	use			DOS-filename
1930# http://en.wikipedia.org/wiki/Zenith_Data_Systems
1931# assembler instructions: MOV BX,07c0;MOV SS,BX;MOV SP,01c6
1932#>>>>(1.b+2)	ubequad			0xbbc0078ed3bcc601	\b, Zenith Data Systems MS-DOS 1.25 bootloader
1933# IO.SYS+MSDOS.SYS
1934#>>>>>0x20	use			2xDOS-filename
1935# http://en.wikipedia.org/wiki/Corona_Data_Systems
1936# assembler instructions: MOV AX,CS;MOV DS,AX;CLI;MOV SS,AX;
1937#>>>>(1.b+2)	ubequad			0x8cc88ed8fa8ed0bc	\b, MS-DOS 1.25 bootloader
1938# IO.SYS+MSDOS.SYS
1939#>>>>>0x69	use			2xDOS-filename
1940# assembler instructions: CLI;PUSH CS;POP SS;MOV SP,7c00;
1941#>>>>(1.b+2)	ubequad			0xfa0e17bc007cb860	\b, MS-DOS 2.11 bootloader
1942# defect IO.SYS+MSDOS.SYS ?
1943#>>>>>0x162	use			2xDOS-filename
1944
1945# CDROM Filesystems
1946# Modified for UDF by gerardo.cacciari@gmail.com
194732769	string    CD001     #
1948!:mime	application/x-iso9660-image
1949>38913	string   !NSR0      ISO 9660 CD-ROM filesystem data
1950>38913	string    NSR0      UDF filesystem data
1951>>38917	string    1         (version 1.0)
1952>>38917	string    2         (version 1.5)
1953>>38917	string    3         (version 2.0)
1954>>38917	byte     >0x33      (unknown version, ID 0x%X)
1955>>38917	byte     <0x31      (unknown version, ID 0x%X)
1956# "application id" which appears to be used as a volume label
1957>32808	string/T  >\0       '%s'
1958>34816	string    \000CD001\001EL\ TORITO\ SPECIFICATION    (bootable)
195937633	string    CD001     ISO 9660 CD-ROM filesystem data (raw 2352 byte sectors)
1960!:mime	application/x-iso9660-image
196132777	string    CDROM     High Sierra CD-ROM filesystem data
1962
1963# .cso files
19640    string    CISO	Compressed ISO CD image
1965
1966# cramfs filesystem - russell@coker.com.au
19670       lelong    0x28cd3d45      Linux Compressed ROM File System data, little endian
1968>4      lelong  x size %lu
1969>8      lelong  &1 version #2
1970>8      lelong  &2 sorted_dirs
1971>8      lelong  &4 hole_support
1972>32     lelong  x CRC 0x%x,
1973>36     lelong  x edition %lu,
1974>40     lelong  x %lu blocks,
1975>44     lelong  x %lu files
1976
19770       belong    0x28cd3d45      Linux Compressed ROM File System data, big endian
1978>4      belong  x size %lu
1979>8      belong  &1 version #2
1980>8      belong  &2 sorted_dirs
1981>8      belong  &4 hole_support
1982>32     belong  x CRC 0x%x,
1983>36     belong  x edition %lu,
1984>40     belong  x %lu blocks,
1985>44     belong  x %lu files
1986
1987# reiserfs - russell@coker.com.au
19880x10034		string	ReIsErFs	ReiserFS V3.5
19890x10034		string	ReIsEr2Fs	ReiserFS V3.6
19900x10034		string	ReIsEr3Fs	ReiserFS V3.6.19
1991>0x1002c 	leshort	x		block size %d
1992>0x10032	leshort	&2		(mounted or unclean)
1993>0x10000	lelong	x		num blocks %d
1994>0x10040	lelong	1		tea hash
1995>0x10040	lelong	2		yura hash
1996>0x10040	lelong	3		r5 hash
1997
1998# JFFS - russell@coker.com.au
19990	lelong	0x34383931	Linux Journalled Flash File system, little endian
20000	belong	0x34383931	Linux Journalled Flash File system, big endian
2001
2002# EST flat binary format (which isn't, but anyway)
2003# From: Mark Brown <broonie@sirena.org.uk>
20040	string	ESTFBINR	EST flat binary
2005
2006# Aculab VoIP firmware
2007# From: Mark Brown <broonie@sirena.org.uk>
20080	string	VoIP\ Startup\ and	Aculab VoIP firmware
2009>35	string	x	format %s
2010
2011# From: Mark Brown <broonie@sirena.org.uk> [old]
2012# From: Behan Webster <behanw@websterwood.com>
20130	belong	0x27051956	u-boot legacy uImage,
2014>32	string	x		%s,
2015>28	byte	0		Invalid os/
2016>28	byte	1		OpenBSD/
2017>28	byte	2		NetBSD/
2018>28	byte	3		FreeBSD/
2019>28	byte	4		4.4BSD/
2020>28	byte	5		Linux/
2021>28	byte	6		SVR4/
2022>28	byte	7		Esix/
2023>28	byte	8		Solaris/
2024>28	byte	9		Irix/
2025>28	byte	10		SCO/
2026>28	byte	11		Dell/
2027>28	byte	12		NCR/
2028>28	byte	13		LynxOS/
2029>28	byte	14		VxWorks/
2030>28	byte	15		pSOS/
2031>28	byte	16		QNX/
2032>28	byte	17		Firmware/
2033>28	byte	18		RTEMS/
2034>28	byte	19		ARTOS/
2035>28	byte	20		Unity OS/
2036>28	byte	21		INTEGRITY/
2037>29	byte	0		\bInvalid CPU,
2038>29	byte	1		\bAlpha,
2039>29	byte	2		\bARM,
2040>29	byte	3		\bIntel x86,
2041>29	byte	4		\bIA64,
2042>29	byte	5		\bMIPS,
2043>29	byte	6		\bMIPS 64-bit,
2044>29	byte	7		\bPowerPC,
2045>29	byte	8		\bIBM S390,
2046>29	byte	9		\bSuperH,
2047>29	byte	10		\bSparc,
2048>29	byte	11		\bSparc 64-bit,
2049>29	byte	12		\bM68K,
2050>29	byte	13		\bNios-32,
2051>29	byte	14		\bMicroBlaze,
2052>29	byte	15		\bNios-II,
2053>29	byte	16		\bBlackfin,
2054>29	byte	17		\bAVR32,
2055>29	byte	18		\bSTMicroelectronics ST200,
2056>30	byte	0		Invalid Image
2057>30	byte	1		Standalone Program
2058>30	byte	2		OS Kernel Image
2059>30	byte	3		RAMDisk Image
2060>30	byte	4		Multi-File Image
2061>30	byte	5		Firmware Image
2062>30	byte	6		Script File
2063>30	byte	7		Filesystem Image (any type)
2064>30	byte	8		Binary Flat Device Tree BLOB
2065>31	byte	0		(Not compressed),
2066>31	byte	1		(gzip),
2067>31	byte	2		(bzip2),
2068>31	byte	3		(lzma),
2069>12	belong	x		%d bytes,
2070>8	bedate	x		%s,
2071>16	belong	x		Load Address: 0x%08X,
2072>20	belong	x		Entry Point: 0x%08X,
2073>4	belong	x		Header CRC: 0x%08X,
2074>24	belong	x		Data CRC: 0x%08X
2075
2076# JFFS2 file system
20770	leshort	0x1984		Linux old jffs2 filesystem data little endian
20780	leshort	0x1985		Linux jffs2 filesystem data little endian
2079
2080# Squashfs
20810	string	sqsh	Squashfs filesystem, big endian,
2082>28	beshort	x	version %d.
2083>30	beshort x	\b%d,
2084>28	beshort <3
2085>>8	belong	x	%d bytes,
2086>28	beshort >2
2087>>28 beshort <4
2088>>>63	bequad x	%lld bytes,
2089>>28 beshort >3
2090>>>40	bequad x	%lld bytes,
2091#>>67	belong	x	%d bytes,
2092>4	belong	x	%d inodes,
2093>28	beshort <2
2094>>32	beshort	x	blocksize: %d bytes,
2095>28	beshort >1
2096>>28 beshort <4
2097>>>51	belong	x	blocksize: %d bytes,
2098>>28 beshort >3
2099>>>12	belong	x	blocksize: %d bytes,
2100>28 beshort <4
2101>>39	bedate	x	created: %s
2102>28 beshort >3
2103>>8	bedate	x	created: %s
21040	string	hsqs	Squashfs filesystem, little endian,
2105>28	leshort	x	version %d.
2106>30	leshort	x	\b%d,
2107>28	leshort <3
2108>>8	lelong	x	%d bytes,
2109>28	leshort >2
2110>>28 leshort <4
2111>>>63	lequad x	%lld bytes,
2112>>28 leshort >3
2113>>>40	lequad x	%lld bytes,
2114#>>63	lelong	x	%d bytes,
2115>4	lelong	x	%d inodes,
2116>28	leshort <2
2117>>32	leshort	x	blocksize: %d bytes,
2118>28	leshort >1
2119>>28 leshort <4
2120>>>51	lelong	x	blocksize: %d bytes,
2121>>28 leshort >3
2122>>>12	lelong	x	blocksize: %d bytes,
2123>28 leshort <4
2124>>39	ledate	x	created: %s
2125>28 leshort >3
2126>>8	ledate	x	created: %s
2127
2128# AFS Dump Magic
2129# From: Ty Sarna <tsarna@sarna.org>
21300       string                  \x01\xb3\xa1\x13\x22    AFS Dump
2131>&0     belong                  x                       (v%d)
2132>>&0    byte                    0x76
2133>>>&0   belong                  x                       Vol %d,
2134>>>>&0  byte                    0x6e
2135>>>>>&0 string                  x                       %s
2136>>>>>>&1        byte            0x74
2137>>>>>>>&0       beshort         2
2138>>>>>>>>&4      bedate          x                       on: %s
2139>>>>>>>>&0      bedate          =0                      full dump
2140>>>>>>>>&0      bedate          !0                      incremental since: %s
2141
2142#----------------------------------------------------------
2143#delta ISO    Daniel Novotny (dnovotny@redhat.com)
21440	string  DISO	Delta ISO data
2145>4	belong  x	version %d
2146
2147# VMS backup savesets - gerardo.cacciari@gmail.com
2148#
21494            string  \x01\x00\x01\x00\x01\x00
2150>(0.s+16)    string  \x01\x01
2151>>&(&0.b+8)  byte    0x42       OpenVMS backup saveset data
2152>>>40        lelong  x          (block size %d,
2153>>>49        string  >\0        original name '%s',
2154>>>2         short   1024       VAX generated)
2155>>>2         short   2048       AXP generated)
2156>>>2         short   4096       I64 generated)
2157
2158# Summary: Oracle Clustered Filesystem
2159# Created by: Aaron Botsis <redhat@digitalmafia.org>
21608	string		OracleCFS	Oracle Clustered Filesystem,
2161>4	long		x		rev %d
2162>0	long		x		\b.%d,
2163>560	string		x		label: %.64s,
2164>136	string		x		mountpoint: %.128s
2165
2166# Summary: Oracle ASM tagged volume
2167# Created by: Aaron Botsis <redhat@digitalmafia.org>
216832	string		ORCLDISK	Oracle ASM Volume,
2169>40	string		x		Disk Name: %0.12s
217032	string		ORCLCLRD	Oracle ASM Volume (cleared),
2171>40	string		x		Disk Name: %0.12s
2172
2173# Oracle Clustered Filesystem - Aaron Botsis <redhat@digitalmafia.org>
21748	string		OracleCFS	Oracle Clustered Filesystem,
2175>4	long		x		rev %d
2176>0	long		x		\b.%d,
2177>560	string		x		label: %.64s,
2178>136	string		x		mountpoint: %.128s
2179
2180# Oracle ASM tagged volume - Aaron Botsis <redhat@digitalmafia.org>
218132	string		ORCLDISK	Oracle ASM Volume,
2182>40	string		x		Disk Name: %0.12s
218332	string		ORCLCLRD	Oracle ASM Volume (cleared),
2184>40	string		x		Disk Name: %0.12s
2185
2186# Compaq/HP RILOE floppy image
2187# From: Dirk Jagdmann <doj@cubic.org>
21880	string	CPQRFBLO	Compaq/HP RILOE floppy image
2189
2190#------------------------------------------------------------------------------
2191# Files-11 On-Disk Structure (File system for various RSX-11 and VMS flavours).
2192# These bits come from LBN 1 (home block) of ODS-1, ODS-2 and ODS-5 volumes,
2193# which is mapped to VBN 2 of [000000]INDEXF.SYS;1 - gerardo.cacciari@gmail.com
2194#
21951008    string          DECFILE11       Files-11 On-Disk Structure
2196>525    byte            x               Level %d
2197>525    byte            x               (ODS-%d);
2198>1017   string          A               RSX-11, VAX/VMS or OpenVMS VAX file system;
2199>1017   string          B
2200>>525   byte            2               VAX/VMS or OpenVMS file system;
2201>>525   byte            5               OpenVMS Alpha or Itanium file system;
2202>984    string          x               volume label is '%-12.12s'
2203
2204# From: Thomas Klausner <wiz@NetBSD.org>
2205# http://filext.com/file-extension/DAA
2206# describes the daa file format. The magic would be:
22070	string		DAA\x0\x0\x0\x0\x0	PowerISO Direct-Access-Archive
2208
2209# From Albert Cahalan <acahalan@gmail.com>
2210# really le32 operation,destination,payloadsize (but quite predictable)
2211# 01 00 00 00 00 00 00 c0 00 02 00 00
22120	string		\1\0\0\0\0\0\0\300\0\2\0\0	Marvell Libertas firmware
2213
2214# From Eric Sandeen
2215# GFS2
22160x10000         belong          0x01161970
2217>0x10018        belong          0x0000051d      GFS1 Filesystem
2218>>0x10024        belong          x               (blocksize %d,
2219>>0x10060        string          >\0             lockproto %s)
2220>0x10018        belong          0x00000709      GFS2 Filesystem
2221>>0x10024        belong          x               (blocksize %d,
2222>>0x10060        string          >\0             lockproto %s)
2223
2224# BTRFS
22250x10040         string          _BHRfS_M        BTRFS Filesystem
2226>0x1012b        string          >\0             (label "%s",
2227>0x10090        lelong          x               sectorsize %d,
2228>0x10094        lelong          x               nodesize %d,
2229>0x10098        lelong          x               leafsize %d)
2230
2231
2232# dvdisaster's .ecc
2233# From: "Nelson A. de Oliveira" <naoliv@gmail.com>
22340	string	*dvdisaster*	dvdisaster error correction file
2235
2236# xfs metadump image
2237# mb_magic XFSM at 0; superblock magic XFSB at 1 << mb_blocklog
2238# but can we do the << ?  For now it's always 512 (0x200) anyway.
22390	string XFSM
2240>0x200	string XFSB	XFS filesystem metadump image
2241
2242# Type:	CROM filesystem
2243# From:	Werner Fink <werner@suse.de>
22440	string	CROMFS	CROMFS
2245>6	string	>\0	\b version %2.2s,
2246>8	ulequad	>0	\b block data at %lld,
2247>16	ulequad	>0	\b fblock table at %lld,
2248>24	ulequad	>0	\b inode table at %lld,
2249>32	ulequad	>0	\b root at %lld,
2250>40	ulelong	>0	\b fblock size = %ld,
2251>44	ulelong	>0	\b block size = %ld,
2252>48	ulequad	>0	\b bytes = %lld
2253
2254# Type:	xfs metadump image
2255# From:	Daniel Novotny <dnovotny@redhat.com>
2256# mb_magic XFSM at 0; superblock magic XFSB at 1 << mb_blocklog
2257# but can we do the << ? For now it's always 512 (0x200) anyway.
22580	string	XFSM
2259>0x200	string	XFSB	XFS filesystem metadump image
2260
2261# Type:	delta ISO
2262# From:	Daniel Novotny <dnovotny@redhat.com>
22630	string	DISO	Delta ISO data,
2264>4	belong	x	version %d
2265
2266# JFS2 (Journaling File System) image. (Old JFS1 has superblock at 0x1000.)
2267# See linux/fs/jfs/jfs_superblock.h for layout; see jfs_filsys.h for flags.
2268# From: Adam Buchbinder <adam.buchbinder@gmail.com>
22690x8000	string	JFS1
2270# Because it's text-only magic, check a binary value (version) to be sure.
2271# Should always be 2, but mkfs.jfs writes it as 1. Needs to be 2 or 1 to be
2272# mountable.
2273>&0	lelong	<3	JFS2 filesystem image
2274# Label is followed by a UUID; we have to limit string length to avoid
2275# appending the UUID in the case of a 16-byte label.
2276>>&144	regex	[\x20-\x7E]{1,16}	(label "%s")
2277>>&0	lequad	x	\b, %lld blocks
2278>>&8	lelong	x	\b, blocksize %d
2279>>&32	lelong&0x00000006	>0	(dirty)
2280>>&36	lelong	>0	(compressed)
2281
2282# LFS
22830	lelong	0x070162	LFS filesystem image
2284>4	lelong	1		version 1,
2285>>8	lelong	x		\b blocks %u,
2286>>12	lelong	x		\b blocks per segment %u,
2287>4	lelong	2		version 2,
2288>>8	lelong	x		\b fragments %u,
2289>>12	lelong	x		\b bytes per segment %u,
2290>16	lelong	x		\b disk blocks %u,
2291>20	lelong	x		\b block size %u,
2292>24	lelong	x		\b fragment size %u,
2293>28	lelong	x		\b fragments per block %u,
2294>32	lelong	x		\b start for free list %u,
2295>36	lelong	x		\b number of free blocks %d,
2296>40	lelong	x		\b number of files %u,
2297>44	lelong	x		\b blocks available for writing %d,
2298>48	lelong	x		\b inodes in cache %d,
2299>52	lelong	x		\b inode file disk address 0x%x,
2300>56	lelong	x		\b inode file inode number %u,
2301>60	lelong	x		\b address of last segment written 0x%x,
2302>64	lelong	x		\b address of next segment to write 0x%x,
2303>68	lelong	x		\b address of current segment written 0x%x
2304
23050	string	td\000		floppy image data (TeleDisk, compressed)
23060	string	TD\000		floppy image data (TeleDisk)
2307
23080	string	CQ\024		floppy image data (CopyQM,
2309>16	leshort	x		%d sectors,
2310>18	leshort	x		%d heads.)
2311
23120	string	ACT\020Apricot\020disk\020image\032\004	floppy image data (ApriDisk)
2313
23140	beshort	0xAA58		floppy image data (IBM SaveDskF, old)
23150	beshort	0xAA59		floppy image data (IBM SaveDskF)
23160	beshort	0xAA5A		floppy image data (IBM SaveDskF, compressed)
2317
23180	string	\074CPM_Disk\076	disk image data (YAZE)
2319
2320# ReFS
2321# Richard W.M. Jones <rjones@redhat.com>
23220	string	\0\0\0ReFS\0	ReFS filesystem image
2323
2324# EFW encase image file format:
2325# Gregoire Passault
2326# http://www.forensicswiki.org/wiki/Encase_image_file_format
23270	string	EVF\x09\x0d\x0a\xff\x00	EWF/Expert Witness/EnCase image file format
2328
2329# UBIfs
2330# Linux kernel sources: fs/ubifs/ubifs-media.h
23310       belong  0x31181006
2332>0x16   short   0               UBIfs image
2333>0x08   lequad  x               \b, sequence number %llu
2334>0x10   leshort x               \b, length %u
2335>0x04   lelong  x               \b, CRC 0x%08x
2336
23370       belong  0x55424923
2338>0x04   short   <2
2339>0x05   string  \0\0\0
2340>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
2341>0x04   short   x       UBI image, version %u
2342