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