1#------------------------------------------------------------------------------ 2# $File: filesystems,v 1.165 2024/09/01 15:51:51 christos Exp $ 3# filesystems: file(1) magic for different filesystems 4# 50 name partid 6>0 ubyte 0x00 Unused 7>0 ubyte 0x01 12-bit FAT 8>0 ubyte 0x02 XENIX / 9>0 ubyte 0x03 XENIX /usr 10>0 ubyte 0x04 16-bit FAT, less than 32M 11>0 ubyte 0x05 extended partition 12>0 ubyte 0x06 16-bit FAT, more than 32M 13>0 ubyte 0x07 OS/2 HPFS, NTFS, QNX2, Adv. UNIX 14>0 ubyte 0x08 AIX or os, or etc. 15>0 ubyte 0x09 AIX boot partition or Coherent 16>0 ubyte 0x0a O/2 boot manager or Coherent swap 17>0 ubyte 0x0b 32-bit FAT 18>0 ubyte 0x0c 32-bit FAT, LBA-mapped 19>0 ubyte 0x0d 7XXX, LBA-mapped 20>0 ubyte 0x0e 16-bit FAT, LBA-mapped 21>0 ubyte 0x0f extended partition, LBA-mapped 22>0 ubyte 0x10 OPUS 23>0 ubyte 0x11 OS/2 DOS 12-bit FAT 24>0 ubyte 0x12 Compaq diagnostics 25>0 ubyte 0x14 OS/2 DOS 16-bit FAT <32M 26>0 ubyte 0x16 OS/2 DOS 16-bit FAT >=32M 27>0 ubyte 0x17 OS/2 hidden IFS 28>0 ubyte 0x18 AST Windows swapfile 29>0 ubyte 0x19 Willowtech Photon coS 30>0 ubyte 0x1b hidden win95 fat 32 31>0 ubyte 0x1c hidden win95 fat 32 lba 32>0 ubyte 0x1d hidden win95 fat 16 lba 33>0 ubyte 0x20 Willowsoft OFS1 34>0 ubyte 0x21 reserved 35>0 ubyte 0x23 reserved 36>0 ubyte 0x24 NEC DOS 37>0 ubyte 0x26 reserved 38>0 ubyte 0x31 reserved 39>0 ubyte 0x32 Alien Internet Services NOS 40>0 ubyte 0x33 reserved 41>0 ubyte 0x34 reserved 42>0 ubyte 0x35 JFS on OS2 43>0 ubyte 0x36 reserved 44>0 ubyte 0x38 Theos 45>0 ubyte 0x39 Plan 9, or Theos spanned 46>0 ubyte 0x3a Theos ver 4 4gb partition 47>0 ubyte 0x3b Theos ve 4 extended partition 48>0 ubyte 0x3c PartitionMagic recovery 49>0 ubyte 0x3d Hidden Netware 50>0 ubyte 0x40 VENIX 286 or LynxOS 51>0 ubyte 0x41 PReP 52>0 ubyte 0x42 linux swap sharing DRDOS disk 53>0 ubyte 0x43 linux sharing DRDOS disk 54>0 ubyte 0x44 GoBack change utility 55>0 ubyte 0x45 Boot US Boot manager 56>0 ubyte 0x46 EUMEL/Elan or Ergos 3 57>0 ubyte 0x47 EUMEL/Elan or Ergos 3 58>0 ubyte 0x48 EUMEL/Elan or Ergos 3 59>0 ubyte 0x4a ALFX/THIN filesystem for DOS 60>0 ubyte 0x4c Oberon partition 61>0 ubyte 0x4d QNX4.x 62>0 ubyte 0x4e QNX4.x 2nd part 63>0 ubyte 0x4f QNX4.x 3rd part 64>0 ubyte 0x50 DM (disk manager) 65>0 ubyte 0x51 DM6 Aux1 (or Novell) 66>0 ubyte 0x52 CP/M or Microport SysV/AT 67>0 ubyte 0x53 DM6 Aux3 68>0 ubyte 0x54 DM6 DDO 69>0 ubyte 0x55 EZ-Drive (disk manager) 70>0 ubyte 0x56 Golden Bow (disk manager) 71>0 ubyte 0x57 Drive PRO 72>0 ubyte 0x5c Priam Edisk (disk manager) 73>0 ubyte 0x61 SpeedStor 74>0 ubyte 0x63 GNU HURD or Mach or Sys V/386 75>0 ubyte 0x64 Novell Netware 2.xx or Speedstore 76>0 ubyte 0x65 Novell Netware 3.xx 77>0 ubyte 0x66 Novell 386 Netware 78>0 ubyte 0x67 Novell 79>0 ubyte 0x68 Novell 80>0 ubyte 0x69 Novell 81>0 ubyte 0x70 DiskSecure Multi-Boot 82>0 ubyte 0x71 reserved 83>0 ubyte 0x73 reserved 84>0 ubyte 0x74 reserved 85>0 ubyte 0x75 PC/IX 86>0 ubyte 0x76 reserved 87>0 ubyte 0x77 M2FS/M2CS partition 88>0 ubyte 0x78 XOSL boot loader filesystem 89>0 ubyte 0x80 MINIX until 1.4a 90>0 ubyte 0x81 MINIX since 1.4b 91>0 ubyte 0x82 Linux swap or Solaris 92>0 ubyte 0x83 Linux native 93>0 ubyte 0x84 OS/2 hidden C: drive 94>0 ubyte 0x85 Linux extended partition 95>0 ubyte 0x86 NT FAT volume set 96>0 ubyte 0x87 NTFS volume set or HPFS mirrored 97>0 ubyte 0x8a Linux Kernel AiR-BOOT partition 98>0 ubyte 0x8b Legacy Fault tolerant FAT32 99>0 ubyte 0x8c Legacy Fault tolerant FAT32 ext 100>0 ubyte 0x8d Hidden free FDISK FAT12 101>0 ubyte 0x8e Linux Logical Volume Manager 102>0 ubyte 0x90 Hidden free FDISK FAT16 103>0 ubyte 0x91 Hidden free FDISK DOS EXT 104>0 ubyte 0x92 Hidden free FDISK FAT16 Big 105>0 ubyte 0x93 Amoeba filesystem 106>0 ubyte 0x94 Amoeba bad block table 107>0 ubyte 0x95 MIT EXOPC native partitions 108>0 ubyte 0x97 Hidden free FDISK FAT32 109>0 ubyte 0x98 Datalight ROM-DOS Super-Boot 110>0 ubyte 0x99 Mylex EISA SCSI 111>0 ubyte 0x9a Hidden free FDISK FAT16 LBA 112>0 ubyte 0x9b Hidden free FDISK EXT LBA 113>0 ubyte 0x9f BSDI? 114>0 ubyte 0xa0 IBM Thinkpad hibernation 115>0 ubyte 0xa1 HP Volume expansion (SpeedStor) 116>0 ubyte 0xa3 HP Volume expansion (SpeedStor) 117>0 ubyte 0xa4 HP Volume expansion (SpeedStor) 118>0 ubyte 0xa5 386BSD partition type 119>0 ubyte 0xa6 OpenBSD partition type 120>0 ubyte 0xa7 NeXTSTEP 486 121>0 ubyte 0xa8 Apple UFS 122>0 ubyte 0xa9 NetBSD partition type 123>0 ubyte 0xaa Olivetty Fat12 1.44MB Service part 124>0 ubyte 0xab Apple Boot 125>0 ubyte 0xae SHAG OS filesystem 126>0 ubyte 0xaf Apple HFS 127>0 ubyte 0xb0 BootStar Dummy 128>0 ubyte 0xb1 reserved 129>0 ubyte 0xb3 reserved 130>0 ubyte 0xb4 reserved 131>0 ubyte 0xb6 reserved 132>0 ubyte 0xb7 BSDI BSD/386 filesystem 133>0 ubyte 0xb8 BSDI BSD/386 swap 134>0 ubyte 0xbb Boot Wizard Hidden 135>0 ubyte 0xbe Solaris 8 partition type 136>0 ubyte 0xbf Solaris partition type 137>0 ubyte 0xc0 CTOS 138>0 ubyte 0xc1 DRDOS/sec (FAT-12) 139>0 ubyte 0xc2 Hidden Linux 140>0 ubyte 0xc3 Hidden Linux swap 141>0 ubyte 0xc4 DRDOS/sec (FAT-16, < 32M) 142>0 ubyte 0xc5 DRDOS/sec (EXT) 143>0 ubyte 0xc6 DRDOS/sec (FAT-16, >= 32M) 144>0 ubyte 0xc7 Syrinx (Cyrnix?) or HPFS disabled 145>0 ubyte 0xc8 Reserved for DR-DOS 8.0+ 146>0 ubyte 0xc9 Reserved for DR-DOS 8.0+ 147>0 ubyte 0xca Reserved for DR-DOS 8.0+ 148>0 ubyte 0xcb DR-DOS 7.04+ Secured FAT32 CHS 149>0 ubyte 0xcc DR-DOS 7.04+ Secured FAT32 LBA 150>0 ubyte 0xcd CTOS Memdump 151>0 ubyte 0xce DR-DOS 7.04+ FAT16X LBA 152>0 ubyte 0xcf DR-DOS 7.04+ EXT LBA 153>0 ubyte 0xd0 REAL/32 secure big partition 154>0 ubyte 0xd1 Old Multiuser DOS FAT12 155>0 ubyte 0xd4 Old Multiuser DOS FAT16 Small 156>0 ubyte 0xd5 Old Multiuser DOS Extended 157>0 ubyte 0xd6 Old Multiuser DOS FAT16 Big 158>0 ubyte 0xd8 CP/M 86 159>0 ubyte 0xdb CP/M or Concurrent CP/M 160>0 ubyte 0xdd Hidden CTOS Memdump 161>0 ubyte 0xde Dell PowerEdge Server utilities 162>0 ubyte 0xdf DG/UX virtual disk manager 163>0 ubyte 0xe0 STMicroelectronics ST AVFS 164>0 ubyte 0xe1 DOS access or SpeedStor 12-bit 165>0 ubyte 0xe3 DOS R/O or Storage Dimensions 166>0 ubyte 0xe4 SpeedStor 16-bit FAT < 1024 cyl. 167>0 ubyte 0xe5 reserved 168>0 ubyte 0xe6 reserved 169>0 ubyte 0xeb BeOS 170>0 ubyte 0xee GPT Protective MBR 171>0 ubyte 0xef EFI system partition 172>0 ubyte 0xf0 Linux PA-RISC boot loader 173>0 ubyte 0xf1 SpeedStor or Storage Dimensions 174>0 ubyte 0xf2 DOS 3.3+ Secondary 175>0 ubyte 0xf3 reserved 176>0 ubyte 0xf4 SpeedStor large partition 177>0 ubyte 0xf5 Prologue multi-volumen partition 178>0 ubyte 0xf6 reserved 179>0 ubyte 0xf9 pCache: ext2/ext3 persistent cache 180>0 ubyte 0xfa Bochs x86 emulator 181>0 ubyte 0xfb VMware File System 182>0 ubyte 0xfc VMware Swap 183>0 ubyte 0xfd Linux RAID partition persistent sb 184>0 ubyte 0xfe LANstep or IBM PS/2 IML 185>0 ubyte 0xff Xenix Bad Block Table 186 1870 string \366\366\366\366 PC formatted floppy with no filesystem 188# Sun disk labels 189# From /usr/include/sun/dklabel.h: 1900774 beshort 0xdabe 191# modified by Joerg Jenderek, because original test 192# succeeds for Cabinet archive dao360.dl_ with negative blocks 193>0770 long >0 Sun disk label 194>>0 string x '%s 195>>>31 string >\0 \b%s 196>>>>63 string >\0 \b%s 197>>>>>95 string >\0 \b%s 198>>0 string x \b' 199>>0734 short >0 %d rpm, 200>>0736 short >0 %d phys cys, 201>>0740 short >0 %d alts/cyl, 202>>0746 short >0 %d interleave, 203>>0750 short >0 %d data cyls, 204>>0752 short >0 %d alt cyls, 205>>0754 short >0 %d heads/partition, 206>>0756 short >0 %d sectors/track, 207>>0764 long >0 start cyl %d, 208>>0770 long x %d blocks 209# Is there a boot block written 1 sector in? 210>512 belong&077777777 0600407 \b, boot block present 211 212# Joerg Jenderek: Smart Boot Manager backup file is 25 (MSDOS) or 41 (LINUX) byte header + first sectors of disk 213# (http://btmgr.sourceforge.net/docs/user-guide-3.html) 2140 string SBMBAKUP_ Smart Boot Manager backup file 215>9 string x \b, version %-5.5s 216>>14 string =_ 217>>>15 string x %-.1s 218>>>>16 string =_ \b. 219>>>>>17 string x \b%-.1s 220>>>>>>18 string =_ \b. 221>>>>>>>19 string x \b%-.1s 222>>>22 ubyte 0 223>>>>21 ubyte x \b, from drive %#x 224>>>22 ubyte >0 225>>>>21 string x \b, from drive %s 226>>>535 search/17 \x55\xAA 227>>>>&-512 indirect x \b; contains 228 229# updated by Joerg Jenderek at Nov 2012 230# DOS Emulator image is 128 byte, null right padded header + harddisc image 2310 string DOSEMU\0 232>0x27E leshort 0xAA55 233#offset is 128 234>>19 ubyte 128 235>>>(19.b-1) ubyte 0x0 DOS Emulator image 236>>>>7 ulelong >0 \b, %u heads 237>>>>11 ulelong >0 \b, %d sectors/track 238>>>>15 ulelong >0 \b, %d cylinders 239>>>>128 indirect x \b; contains 240 241# added by Joerg Jenderek at Nov 2012 242# http://www.thenakedpc.com/articles/v04/08/0408-05.html 243# Symantec (Peter Norton) Image.dat file consists of variable header, bootrecord, part of FAT and root directory data 2440 string PNCIHISK\0 Norton Utilities disc image data 245# real x86 boot sector with jump instruction 246>509 search/1026 \x55\xAA\xeb 247>>&-1 indirect x \b; contains 248# http://file-extension.net/seeker/file_extension_dat 2490 string PNCIUNDO Norton Disk Doctor UnDo file 250# 251 252# DOS/MBR boot sector updated by Joerg Jenderek at Sep 2007,May 2011,2013 253# for any allowed sector sizes 25430 search/481 \x55\xAA 255# to display DOS/MBR boot sector (40) before old one (strength=50+21),Syslinux bootloader (71),SYSLINUX MBR (37+36),NetBSD mbr (110),AdvanceMAME mbr (111) 256# DOS BPB information (70) and after DOS floppy (120) like in previous file version 257!:strength +65 258# for sector sizes < 512 Bytes 259>11 uleshort <512 260>>(11.s-2) uleshort 0xAA55 DOS/MBR boot sector 261# for sector sizes with 512 or more Bytes 262>0x1FE leshort 0xAA55 DOS/MBR boot sector 263 264# ExFAT 2653 string/w =EXFAT 266>0x1FE leshort 0xAA55 267>>0x6E ubyte 1 268>>>0x6F ubyte 0x80 269>>>0 ubyte 0xEB DOS/MBR boot sector, 270>>>0x69 ubyte x ExFAT Filesystem version %d. 271>>>0x68 ubyte x \b%d 272>>>0x6d ubyte x \b, (1<<%d) sectors per cluster 273>>>0x48 ulequad x \b, sectors %lld 274>>>0x64 ulelong x \b, serial number %#x 275 276# keep old DOS/MBR boot sector as dummy for mbr and bootloader displaying 277# only for sector sizes with 512 or more Bytes 2780x1FE leshort 0xAA55 DOS/MBR boot sector 279# 280# to display information (50) before DOS BPB (strength=70) and after DOS floppy (120) like in old file version 281!:strength +65 282>2 string OSBS OS/BS MBR 283# added by Joerg Jenderek at Feb 2013 according to https://thestarman.pcministry.com/asm/mbr/ 284# and https://en.wikipedia.org/wiki/Master_Boot_Record 285# test for nearly all MS-DOS Master Boot Record initial program loader (IPL) is now done by 286# characteristic assembler instructions: xor ax,ax;mov ss,ax;mov sp,7c00 287>0 search/2 \x33\xc0\x8e\xd0\xbc\x00\x7c MS-MBR 288# Microsoft Windows 95A and early ( https://thestarman.pcministry.com/asm/mbr/STDMBR.htm ) 289# assembler instructions: mov si,sp;push ax;pop es;push ax;pop ds;sti;cld 290>>8 ubequad 0x8bf45007501ffbfc 291# https://thestarman.pcministry.com/asm/mbr/200MBR.htm 292>>>0x16 ubyte 0xF3 \b,DOS 2 293>>>>219 regex Author\ -\ Author: 294# found "David Litton" , "A Pehrsson " 295>>>>>&0 string x "%s" 296>>>0x16 ubyte 0xF2 297# NEC MS-DOS 3.30 Rev. 3 . See https://thestarman.pcministry.com/asm/mbr/DOS33MBR.htm 298# assembler instructions: mov di,077c;cmp word ptrl[di],a55a;jnz 299>>>>0x22 ubequad 0xbf7c07813d5aa575 \b,NEC 3.3 300# version MS-DOS 3.30 til MS-Windows 95A (WinVer=4.00.1111) 301>>>>0x22 default x \b,D0S version 3.3-7.0 302# error messages are printed by assembler instructions: mov si,06nn;...;int 10 (0xBEnn06;...) 303# where nn is string offset varying for different languages 304# "Invalid partition table" nn=0x8b for english version 305>>>>>(0x49.b) string Invalid\ partition\ table english 306>>>>>(0x49.b) string Ung\201ltige\ Partitionstabelle german 307>>>>>(0x49.b) string Table\ de\ partition\ invalide french 308>>>>>(0x49.b) string Tabela\ de\ parti\207ao\ inv\240lida portuguese 309>>>>>(0x49.b) string Tabla\ de\ partici\242n\ no\ v\240lida spanish 310>>>>>(0x49.b) string Tavola\ delle\ partizioni\ non\ valida italian 311>>>>>0x49 ubyte >0 at offset %#x 312>>>>>>(0x49.b) string >\0 "%s" 313# "Error loading operating system" nn=0xa3 for english version 314# "Fehler beim Laden des Betriebssystems" nn=0xa7 for german version 315# "Erreur en chargeant syst\212me d'exploitation" nn=0xa7 for french version 316# "Erro na inicializa\207ao do sistema operacional" nn=0xa7 for portuguese Brazilian version 317# "Error al cargar sistema operativo" nn=0xa8 for spanish version 318# "Errore durante il caricamento del sistema operativo" nn=0xae for italian version 319>>>>>0x74 ubyte >0 at offset %#x 320>>>>>>(0x74.b) string >\0 "%s" 321# "Missing operating system" nn=0xc2 for english version 322# "Betriebssystem fehlt" nn=0xcd for german version 323# "Syst\212me d'exploitation absent" nn=0xd2 for french version 324# "Sistema operacional nao encontrado" nn=0xd4 for portuguese Brazilian version 325# "Falta sistema operativo" nn=0xca for spanish version 326# "Sistema operativo mancante" nn=0xe2 for italian version 327>>>>>0x79 ubyte >0 at offset %#x 328>>>>>>(0x79.b) string >\0 "%s" 329# Microsoft Windows 95B to XP (https://thestarman.pcministry.com/asm/mbr/95BMEMBR.htm) 330# assembler instructions: push ax;pop es;push ax;pop ds;cld;mov si,7c1b 331>>8 ubequad 0x5007501ffcbe1b7c 332# assembler instructions: rep;movsb;retf;mov si,07be;mov cl,04 333>>>24 ubequad 0xf3a4cbbebe07b104 9M 334# "Invalid partition table" nn=0x10F for english version 335# "Ung\201ltige Partitionstabelle" nn=0x10F for german version 336# "Table de partition erron\202e" nn=0x10F for french version 337# "\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 338>>>>(0x3C.b+0x0FF) string Invalid\ partition\ table english 339>>>>(0x3C.b+0x0FF) string Ung\201ltige\ Partitionstabelle german 340>>>>(0x3C.b+0x0FF) string Table\ de\ partition\ erron\202e french 341>>>>(0x3C.b+0x0FF) string \215\245\257\340\240\242\250\253\354\255\240\357\ \342\240\241\253\250\346\240 russian 342>>>>0x3C ubyte x at offset %#x+0xFF 343>>>>(0x3C.b+0x0FF) string >\0 "%s" 344# "Error loading operating system" nn=0x127 for english version 345# "Fehler beim Laden des Betriebssystems" nn=0x12b for german version 346# "Erreur lors du chargement du syst\212me d'exploitation" nn=0x12a for french version 347# "\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 348>>>>0xBD ubyte x at offset 0x1%x 349>>>>(0xBD.b+0x100) string >\0 "%s" 350# "Missing operating system" nn=0x146 for english version 351# "Betriebssystem fehlt" nn=0x151 for german version 352# "Syst\212me d'exploitation manquant" nn=0x15e for french version 353# "\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 354>>>>0xA9 ubyte x at offset 0x1%x 355>>>>(0xA9.b+0x100) string >\0 "%s" 356# https://thestarman.pcministry.com/asm/mbr/Win2kmbr.htm 357# assembler instructions: rep;movsb;retf;mov BP,07be;mov cl,04 358>>>24 ubequad 0xf3a4cbbdbe07b104 XP 359# where xxyyzz are lower bits from offsets of error messages varying for different languages 360>>>>0x1B4 ubelong&0x00FFFFFF 0x002c4463 english 361>>>>0x1B4 ubelong&0x00FFFFFF 0x002c486e german 362# "Invalid partition table" xx=0x12C for english version 363# "Ung\201ltige Partitionstabelle" xx=0x12C for german version 364>>>>0x1b5 ubyte >0 at offset 0x1%x 365>>>>(0x1b5.b+0x100) string >\0 "%s" 366# "Error loading operating system" yy=0x144 for english version 367# "Fehler beim Laden des Betriebssystems" yy=0x148 for german version 368>>>>0x1b6 ubyte >0 at offset 0x1%x 369>>>>(0x1b6.b+0x100) string >\0 "%s" 370# "Missing operating system" zz=0x163 for english version 371# "Betriebssystem nicht vorhanden" zz=0x16e for german version 372>>>>0x1b7 ubyte >0 at offset 0x1%x 373>>>>(0x1b7.b+0x100) string >\0 "%s" 374# Microsoft Windows Vista or 7 375# assembler instructions: ..;mov ds,ax;mov si,7c00;mov di,..00 376>>8 ubequad 0xc08ed8be007cbf00 377# Microsoft Windows Vista (https://thestarman.pcministry.com/asm/mbr/VistaMBR.htm) 378# assembler instructions: jnz 0729;cmp ebx,"TCPA" 379>>>0xEC ubequad 0x753b6681fb544350 Vista 380# where xxyyzz are lower bits from offsets of error messages varying for different languages 381>>>>0x1B4 ubelong&0x00FFFFFF 0x00627a99 english 382#>>>>0x1B4 ubelong&0x00FFFFFF ? german 383# "Invalid partition table" xx=0x162 for english version 384# "Ung\201ltige Partitionstabelle" xx=0x1?? for german version 385>>>>0x1b5 ubyte >0 at offset 0x1%x 386>>>>(0x1b5.b+0x100) string >\0 "%s" 387# "Error loading operating system" yy=0x17a for english version 388# "Fehler beim Laden des Betriebssystems" yy= 0x1?? for german version 389>>>>0x1b6 ubyte >0 at offset 0x1%x 390>>>>(0x1b6.b+0x100) string >\0 "%s" 391# "Missing operating system" zz=0x199 for english version 392# "Betriebssystem nicht vorhanden" zz=0x1?? for german version 393>>>>0x1b7 ubyte >0 at offset 0x1%x 394>>>>(0x1b7.b+0x100) string >\0 "%s" 395# Microsoft Windows 7 (https://thestarman.pcministry.com/asm/mbr/W7MBR.htm) 396# assembler instructions: cmp ebx,"TCPA";cmp 397>>>0xEC ubequad 0x6681fb5443504175 Windows 7 398# where xxyyzz are lower bits from offsets of error messages varying for different languages 399>>>>0x1B4 ubelong&0x00FFFFFF 0x00637b9a english 400#>>>>0x1B4 ubelong&0x00FFFFFF ? german 401# "Invalid partition table" xx=0x163 for english version 402# "Ung\201ltige Partitionstabelle" xx=0x1?? for german version 403>>>>0x1b5 ubyte >0 at offset 0x1%x 404>>>>(0x1b5.b+0x100) string >\0 "%s" 405# "Error loading operating system" yy=0x17b for english version 406# "Fehler beim Laden des Betriebssystems" yy=0x1?? for german version 407>>>>0x1b6 ubyte >0 at offset 0x1%x 408>>>>(0x1b6.b+0x100) string >\0 "%s" 409# "Missing operating system" zz=0x19a for english version 410# "Betriebssystem nicht vorhanden" zz=0x1?? for german version 411>>>>0x1b7 ubyte >0 at offset 0x1%x 412>>>>(0x1b7.b+0x100) string >\0 "%s" 413# https://thestarman.pcministry.com/asm/mbr/Win2kmbr.htm#DiskSigs 414# https://en.wikipedia.org/wiki/MBR_disk_signature#ID 415>>0x1b8 ulelong >0 \b, disk signature %#-.4x 416# driveID/timestamp for Win 95B,98,98SE and ME. See https://thestarman.pcministry.com/asm/mbr/mystery.htm 417>>0xDA uleshort 0 418>>>0xDC ulelong >0 \b, created 419# physical drive number (0x80-0xFF) when the Windows wrote that byte to the drive 420>>>>0xDC ubyte x with driveID %#x 421# hours, minutes and seconds 422>>>>0xDf ubyte x at %x 423>>>>0xDe ubyte x \b:%x 424>>>>0xDd ubyte x \b:%x 425# special case for Microsoft MS-DOS 3.21 spanish 426# assembler instructions: cli;mov $0x30,%ax;mov %ax,%ss;mov 427>0 ubequad 0xfab830008ed0bc00 428# assembler instructions: $0x1f00,%sp;mov $0x80cb,%di;add %cl,(%bx,%si);in (%dx),%ax;mov 429>>8 ubequad 0x1fbfcb800008ed8 MS-MBR,D0S version 3.21 spanish 430# Microsoft MBR IPL end 431 432# dr-dos with some upper-, lowercase variants 433>0x9D string Invalid\ partition\ table$ 434>>181 string No\ Operating\ System$ 435>>>201 string Operating\ System\ load\ error$ \b, DR-DOS MBR, Version 7.01 to 7.03 436>0x9D string Invalid\ partition\ table$ 437>>181 string No\ operating\ system$ 438>>>201 string Operating\ system\ load\ error$ \b, DR-DOS MBR, Version 7.01 to 7.03 439>342 string Invalid\ partition\ table$ 440>>366 string No\ operating\ system$ 441>>>386 string Operating\ system\ load\ error$ \b, DR-DOS MBR, version 7.01 to 7.03 442>295 string NEWLDR\0 443>>302 string Bad\ PT\ $ 444>>>310 string No\ OS\ $ 445>>>>317 string OS\ load\ err$ 446>>>>>329 string Moved\ or\ missing\ IBMBIO.LDR\n\r 447>>>>>>358 string Press\ any\ key\ to\ continue.\n\r$ 448>>>>>>>387 string Copyright\ (c)\ 1984,1998 449>>>>>>>>411 string Caldera\ Inc.\0 \b, DR-DOS MBR (IBMBIO.LDR) 450# 451# tests for different MS-DOS Master Boot Records (MBR) moved and merged 452# 453#>0x145 string Default:\ F \b, FREE-DOS MBR 454#>0x14B string Default:\ F \b, FREE-DOS 1.0 MBR 455>0x145 search/7 Default:\ F \b, FREE-DOS MBR 456#>>313 string F0\ .\ .\ . 457#>>>322 string disk\ 1 458#>>>>382 string FAT3 459>64 string no\ active\ partition\ found 460>>96 string read\ error\ while\ reading\ drive \b, FREE-DOS Beta 0.9 MBR 461# Ranish Partition Manager http://www.ranish.com/part/ 462>387 search/4 \0\ Error!\r 463>>378 search/7 Virus! 464>>>397 search/4 Booting\040 465>>>>408 search/4 HD1/\0 \b, Ranish MBR ( 466>>>>>416 string Writing\ changes... \b2.37 467>>>>>>438 ubyte x \b,%#x dots 468>>>>>>440 ubyte >0 \b,virus check 469>>>>>>441 ubyte >0 \b,partition %c 470#2.38,2.42,2.44 471>>>>>416 string !Writing\ changes... \b 472>>>>>>418 ubyte 1 \bvirus check, 473>>>>>>419 ubyte x \b%#x seconds 474>>>>>>420 ubyte&0x0F >0 \b,partition 475>>>>>>>420 ubyte&0x0F <5 \b %x 476>>>>>>>420 ubyte&0x0F 0Xf \b ask 477>>>>>420 ubyte x \b) 478# 479# SYSLINUX MBR moved 480# https://www.acronis.de/ 481>362 string MBR\ Error\ \0\r 482>>376 string ress\ any\ key\ to\040 483>>>392 string boot\ from\ floppy...\0 \b, Acronis MBR 484# added by Joerg Jenderek 485# https://www.visopsys.org/ 486# https://partitionlogic.org.uk/ 487>309 string No\ bootable\ partition\ found\r 488>>339 string I/O\ Error\ reading\ boot\ sector\r \b, Visopsys MBR 489>349 string No\ bootable\ partition\ found\r 490>>379 string I/O\ Error\ reading\ boot\ sector\r \b, simple Visopsys MBR 491# bootloader, bootmanager 492>0x40 string SBML 493# label with 11 characters of FAT 12 bit filesystem 494>>43 string SMART\ BTMGR 495>>>430 string SBMK\ Bad!\r \b, Smart Boot Manager 496# OEM-ID not always "SBM" 497#>>>>3 strings SBM 498>>>>6 string >\0 \b, version %s 499>382 string XOSLLOADXCF \b, eXtended Operating System Loader 500>6 string LILO \b, LInux i386 boot LOader 501>>120 string LILO \b, version 22.3.4 SuSe 502>>172 string LILO \b, version 22.5.8 Debian 503# updated by Joerg Jenderek at Oct 2008 504# variables according to grub-0.97/stage1/stage1.S or 505# https://www.gnu.org/software/grub/manual/grub.html#Embedded-data 506# usual values are marked with comments to get only information of strange GRUB loaders 507>342 search/60 \0Geom\0 508#>0 ulelong x %x=0x009048EB , 0x2a9048EB 0 509>>0x41 ubyte <2 510>>>0x3E ubyte >2 \b; GRand Unified Bootloader 511# 0x3 for 0.5.95,0.93,0.94,0.96 0x4 for 1.90 512>>>>0x3E ubyte x \b, stage1 version %#x 513#If it is 0xFF, use a drive passed by BIOS 514>>>>0x40 ubyte <0xFF \b, boot drive %#x 515# in most case 0,1,0x2e for GRUB 0.5.95 516>>>>0x41 ubyte >0 \b, LBA flag %#x 517>>>>0x42 uleshort <0x8000 \b, stage2 address %#x 518#>>>>0x42 uleshort =0x8000 \b, stage2 address %#x (usual) 519>>>>0x42 uleshort >0x8000 \b, stage2 address %#x 520#>>>>0x44 ulelong =1 \b, 1st sector stage2 %#x (default) 521>>>>0x44 ulelong >1 \b, 1st sector stage2 %#x 522>>>>0x48 uleshort <0x800 \b, stage2 segment %#x 523#>>>>0x48 uleshort =0x800 \b, stage2 segment %#x (usual) 524>>>>0x48 uleshort >0x800 \b, stage2 segment %#x 525>>>>402 string Geom\0Hard\ Disk\0Read\0\ Error\0 526>>>>>394 string stage1 \b, GRUB version 0.5.95 527>>>>382 string Geom\0Hard\ Disk\0Read\0\ Error\0 528>>>>>376 string GRUB\ \0 \b, GRUB version 0.93 or 1.94 529>>>>383 string Geom\0Hard\ Disk\0Read\0\ Error\0 530>>>>>377 string GRUB\ \0 \b, GRUB version 0.94 531>>>>385 string Geom\0Hard\ Disk\0Read\0\ Error\0 532>>>>>379 string GRUB\ \0 \b, GRUB version 0.95 or 0.96 533>>>>391 string Geom\0Hard\ Disk\0Read\0\ Error\0 534>>>>>385 string GRUB\ \0 \b, GRUB version 0.97 535# unknown version 536>>>343 string Geom\0Read\0\ Error\0 537>>>>321 string Loading\ stage1.5 \b, GRUB version x.y 538>>>380 string Geom\0Hard\ Disk\0Read\0\ Error\0 539>>>>374 string GRUB\ \0 \b, GRUB version n.m 540# SYSLINUX bootloader moved 541>395 string chksum\0\ ERROR!\0 \b, Gujin bootloader 542# http://www.bcdwb.de/bcdw/index_e.htm 543>3 string BCDL 544>>498 string BCDL\ \ \ \ BIN \b, Bootable CD Loader (1.50Z) 545# mbr partition table entries updated by Joerg Jenderek at Sep 2013 546# skip Norton Utilities disc image data 547>3 string !IHISK 548# skip Linux style boot sector starting with assembler instructions mov 0x7c0,ax; 549>>0 belong !0xb8c0078e 550# not Linux kernel 551>>>514 string !HdrS 552# not BeOS 553>>>>422 string !Be\ Boot\ Loader 554# jump over BPB instruction implies DOS bootsector or AdvanceMAME mbr 555>>>>>0 ubelong&0xFD000000 =0xE9000000 556# AdvanceMAME mbr 557>>>>>>(1.b+2) ubequad 0xfa31c08ed88ec08e 558>>>>>>>446 use partition-table 559# mbr, Norton Utilities disc image data, or 2nd,etc. sector of x86 bootloader 560>>>>>0 ubelong&0xFD000000 !0xE9000000 561# skip FSInfosector 562>>>>>>0 string !RRaA 563# skip 3rd sector of MS x86 bootloader with assembler instructions cli;MOVZX EAX,BYTE PTR [BP+10];MOV ECX, 564# https://thestarman.pcministry.com/asm/mbr/MSWIN41.htm 565>>>>>>>0 ubequad !0xfa660fb64610668b 566# skip 13rd sector of MS x86 bootloader 567>>>>>>>>0 ubequad !0x660fb64610668b4e 568# skip sector starting with DOS new line 569>>>>>>>>>0 string !\r\n 570# allowed active flag 0,80h-FFh 571>>>>>>>>>>446 ubyte 0 572>>>>>>>>>>>446 use partition-table 573>>>>>>>>>>446 ubyte >0x7F 574>>>>>>>>>>>446 use partition-table 575# TODO: test for extended bootrecord (ebr) moved and merged with mbr partition table entries 576# mbr partition table entries end 577# https://www.acronis.de/ 578#FAT label=ACRONIS\ SZ 579#OEM-ID=BOOTWIZ0 580>442 string Non-system\ disk,\040 581>>459 string press\ any\ key...\x7\0 \b, Acronis Startup Recovery Loader 582# updated by Joerg Jenderek at Nov 2012, Sep 2013 583# DOS names like F11.SYS or BOOTWIZ.SYS are 8 right space padded bytes+3 bytes 584# display 1 space 585>>>447 ubyte x \b 586>>>477 use DOS-filename 587# 588>185 string FDBOOT\ Version\040 589>>204 string \rNo\ Systemdisk.\040 590>>>220 string Booting\ from\ harddisk.\n\r 591>>>245 string Cannot\ load\ from\ harddisk.\n\r 592>>>>273 string Insert\ Systemdisk\040 593>>>>>291 string and\ press\ any\ key.\n\r \b, FDBOOT harddisk Bootloader 594>>>>>>200 string >\0 \b, version %-3s 595>242 string Bootsector\ from\ C.H.\ Hochst\204 596# http://freecode.com/projects/dosfstools dosfstools-n.m/src/mkdosfs.c 597# updated by Joerg Jenderek at Nov 2012. Use search directive with offset instead of string 598# skip name "C.H. Hochstaetter" partly because it is sometimes written without umlaut 599>242 search/127 Bootsector\ from\ C.H.\ Hochst 600>>278 search/127 No\ Systemdisk.\ Booting\ from\ harddisk 601# followed by variants with point,CR-NL or NL-CR 602>>>208 search/261 Cannot\ load\ from\ harddisk. 603# followed by variants CR-NL or NL-CR 604>>>>236 search/235 Insert\ Systemdisk\ and\ press\ any\ key. 605# followed by variants with point,CR-NL or NL-CR 606>>>>>180 search/96 Disk\ formatted\ with\ WinImage\ \b, WinImage harddisk Bootloader 607# followed by string like "6.50 (c) 1993-2004 Gilles Vollant" 608>>>>>>&0 string x \b, version %-4.4s 609>(1.b+2) ubyte 0xe 610>>(1.b+3) ubyte 0x1f 611>>>(1.b+4) ubyte 0xbe 612# message offset found at (1.b+5) is 0x77 for FAT32 or 0x5b for others 613>>>>(1.b+5) ubyte&0xd3 0x53 614>>>>>(1.b+6) ubyte 0x7c 615# assembler instructions: lodsb;and al,al;jz 0xb;push si;mov ah, 616>>>>>>(1.b+7) ubyte 0xac 617>>>>>>>(1.b+8) ubyte 0x22 618>>>>>>>>(1.b+9) ubyte 0xc0 619>>>>>>>>>(1.b+10) ubyte 0x74 620>>>>>>>>>>(1.b+11) ubyte 0x0b 621>>>>>>>>>>>(1.b+12) ubyte 0x56 622>>>>>>>>>>>>(1.b+13) ubyte 0xb4 \b, mkdosfs boot message display 623# FAT1X version 624>>>>>>>>>>>>>(1.b+5) ubyte 0x5b 625>>>>>>>>>>>>>>0x5b string >\0 "%-s" 626# FAT32 version 627>>>>>>>>>>>>>(1.b+5) ubyte 0x77 628>>>>>>>>>>>>>>0x77 string >\0 "%-s" 629>214 string Please\ try\ to\ install\ FreeDOS\ \b, DOS Emulator boot message display 630#>>244 string from\ dosemu-freedos-*-bin.tgz\r 631#>>>170 string Sorry,\ could\ not\ load\ an\040 632#>>>>195 string operating\ system.\r\n 633# 634>103 string This\ is\ not\ a\ bootable\ disk.\040 635>>132 string Please\ insert\ a\ bootable\040 636>>>157 string floppy\ and\r\n 637>>>>169 string press\ any\ key\ to\ try\ again...\r \b, FREE-DOS message display 638# 639>66 string Solaris\ Boot\ Sector 640>>99 string Incomplete\ MDBoot\ load. 641>>>89 string Version \b, Sun Solaris Bootloader 642>>>>97 byte x version %c 643# 644>408 string OS/2\ !!\ SYS01475\r\0 645>>429 string OS/2\ !!\ SYS02025\r\0 646>>>450 string OS/2\ !!\ SYS02027\r\0 647>>>469 string OS2BOOT\ \ \ \ \b, IBM OS/2 Warp bootloader 648# 649>409 string OS/2\ !!\ SYS01475\r\0 650>>430 string OS/2\ !!\ SYS02025\r\0 651>>>451 string OS/2\ !!\ SYS02027\r\0 652>>>470 string OS2BOOT\ \ \ \ \b, IBM OS/2 Warp Bootloader 653>112 string This\ disk\ is\ not\ bootable\r 654>>142 string If\ you\ wish\ to\ make\ it\ bootable 655>>>176 string run\ the\ DOS\ program\ SYS\040 656>>>200 string after\ the\r 657>>>>216 string system\ has\ been\ loaded\r\n 658>>>>>242 string Please\ insert\ a\ DOS\ diskette\040 659>>>>>271 string into\r\n\ the\ drive\ and\040 660>>>>>>292 string strike\ any\ key...\0 \b, IBM OS/2 Warp message display 661# XP 662>430 string NTLDR\ is\ missing\xFF\r\n 663>>449 string Disk\ error\xFF\r\n 664>>>462 string Press\ any\ key\ to\ restart\r \b, Microsoft Windows XP Bootloader 665# DOS names like NTLDR,CMLDR,$LDR$ are 8 right space padded bytes+3 bytes 666>>>>417 ubyte&0xDF >0 667>>>>>417 string x %-.5s 668>>>>>>422 ubyte&0xDF >0 669>>>>>>>422 string x \b%-.3s 670>>>>>425 ubyte&0xDF >0 671>>>>>>425 string >\ \b.%-.3s 672# 673>>>>371 ubyte >0x20 674>>>>>368 ubyte&0xDF >0 675>>>>>>368 string x %-.5s 676>>>>>>>373 ubyte&0xDF >0 677>>>>>>>>373 string x \b%-.3s 678>>>>>>376 ubyte&0xDF >0 679>>>>>>>376 string x \b.%-.3s 680# 681>430 string NTLDR\ nicht\ gefunden\xFF\r\n 682>>453 string Datentr\204gerfehler\xFF\r\n 683>>>473 string Neustart\ mit\ beliebiger\ Taste\r \b, Microsoft Windows XP Bootloader (german) 684>>>>417 ubyte&0xDF >0 685>>>>>417 string x %-.5s 686>>>>>>422 ubyte&0xDF >0 687>>>>>>>422 string x \b%-.3s 688>>>>>425 ubyte&0xDF >0 689>>>>>>425 string >\ \b.%-.3s 690# offset variant 691>>>>379 string \0 692>>>>>368 ubyte&0xDF >0 693>>>>>>368 string x %-.5s 694>>>>>>>373 ubyte&0xDF >0 695>>>>>>>>373 string x \b%-.3s 696# 697>430 string NTLDR\ fehlt\xFF\r\n 698>>444 string Datentr\204gerfehler\xFF\r\n 699>>>464 string Neustart\ mit\ beliebiger\ Taste\r \b, Microsoft Windows XP Bootloader (2.german) 700>>>>417 ubyte&0xDF >0 701>>>>>417 string x %-.5s 702>>>>>>422 ubyte&0xDF >0 703>>>>>>>422 string x \b%-.3s 704>>>>>425 ubyte&0xDF >0 705>>>>>>425 string >\ \b.%-.3s 706# variant 707>>>>371 ubyte >0x20 708>>>>>368 ubyte&0xDF >0 709>>>>>>368 string x %-.5s 710>>>>>>>373 ubyte&0xDF >0 711>>>>>>>>373 string x \b%-.3s 712>>>>>>376 ubyte&0xDF >0 713>>>>>>>376 string x \b.%-.3s 714# 715>430 string NTLDR\ fehlt\xFF\r\n 716>>444 string Medienfehler\xFF\r\n 717>>>459 string Neustart:\ Taste\ dr\201cken\r \b, Microsoft Windows XP Bootloader (3.german) 718>>>>371 ubyte >0x20 719>>>>>368 ubyte&0xDF >0 720>>>>>>368 string x %-.5s 721>>>>>>>373 ubyte&0xDF >0 722>>>>>>>>373 string x \b%-.3s 723>>>>>>376 ubyte&0xDF >0 724>>>>>>>376 string x \b.%-.3s 725# variant 726>>>>417 ubyte&0xDF >0 727>>>>>417 string x %-.5s 728>>>>>>422 ubyte&0xDF >0 729>>>>>>>422 string x \b%-.3s 730>>>>>425 ubyte&0xDF >0 731>>>>>>425 string >\ \b.%-.3s 732# 733>430 string Datentr\204ger\ entfernen\xFF\r\n 734>>454 string Medienfehler\xFF\r\n 735>>>469 string Neustart:\ Taste\ dr\201cken\r \b, Microsoft Windows XP Bootloader (4.german) 736>>>>379 string \0 737>>>>>368 ubyte&0xDF >0 738>>>>>>368 string x %-.5s 739>>>>>>>373 ubyte&0xDF >0 740>>>>>>>>373 string x \b%-.3s 741>>>>>>376 ubyte&0xDF >0 742>>>>>>>376 string x \b.%-.3s 743# variant 744>>>>417 ubyte&0xDF >0 745>>>>>417 string x %-.5s 746>>>>>>422 ubyte&0xDF >0 747>>>>>>>422 string x \b%-.3s 748>>>>>425 ubyte&0xDF >0 749>>>>>>425 string >\ \b.%-.3s 750# 751 752#>3 string NTFS\ \ \ \040 753>389 string Fehler\ beim\ Lesen\040 754>>407 string des\ Datentr\204gers 755>>>426 string NTLDR\ fehlt 756>>>>440 string NTLDR\ ist\ komprimiert 757>>>>>464 string Neustart\ mit\ Strg+Alt+Entf\r \b, Microsoft Windows XP Bootloader NTFS (german) 758#>3 string NTFS\ \ \ \040 759>313 string A\ disk\ read\ error\ occurred.\r 760>>345 string A\ kernel\ file\ is\ missing\040 761>>>370 string from\ the\ disk.\r 762>>>>484 string NTLDR\ is\ compressed 763>>>>>429 string Insert\ a\ system\ diskette\040 764>>>>>>454 string and\ restart\r\nthe\ system.\r \b, Microsoft Windows XP Bootloader NTFS 765# DOS loader variants different languages,offsets 766>472 ubyte&0xDF >0 767>>389 string Invalid\ system\ disk\xFF\r\n 768>>>411 string Disk\ I/O\ error 769>>>>428 string Replace\ the\ disk,\ and\040 770>>>>>455 string press\ any\ key \b, Microsoft Windows 98 Bootloader 771#IO.SYS 772>>>>>>472 ubyte&0xDF >0 773>>>>>>>472 string x \b %-.2s 774>>>>>>>>474 ubyte&0xDF >0 775>>>>>>>>>474 string x \b%-.5s 776>>>>>>>>>>479 ubyte&0xDF >0 777>>>>>>>>>>>479 string x \b%-.1s 778>>>>>>>480 ubyte&0xDF >0 779>>>>>>>>480 string x \b.%-.3s 780#MSDOS.SYS 781>>>>>>>483 ubyte&0xDF >0 \b+ 782>>>>>>>>483 string x \b%-.5s 783>>>>>>>>>488 ubyte&0xDF >0 784>>>>>>>>>>488 string x \b%-.3s 785>>>>>>>>491 ubyte&0xDF >0 786>>>>>>>>>491 string x \b.%-.3s 787# 788>>390 string Invalid\ system\ disk\xFF\r\n 789>>>412 string Disk\ I/O\ error\xFF\r\n 790>>>>429 string Replace\ the\ disk,\ and\040 791>>>>>451 string then\ press\ any\ key\r \b, Microsoft Windows 98 Bootloader 792>>388 string Ungueltiges\ System\ \xFF\r\n 793>>>410 string E/A-Fehler\ \ \ \ \xFF\r\n 794>>>>427 string Datentraeger\ wechseln\ und\040 795>>>>>453 string Taste\ druecken\r \b, Microsoft Windows 95/98/ME Bootloader (german) 796#WINBOOT.SYS only not spaces (0xDF) 797>>>>>>497 ubyte&0xDF >0 798>>>>>>>497 string x %-.5s 799>>>>>>>>502 ubyte&0xDF >0 800>>>>>>>>>502 string x \b%-.1s 801>>>>>>>>>>503 ubyte&0xDF >0 802>>>>>>>>>>>503 string x \b%-.1s 803>>>>>>>>>>>>504 ubyte&0xDF >0 804>>>>>>>>>>>>>504 string x \b%-.1s 805>>>>>>505 ubyte&0xDF >0 806>>>>>>>505 string x \b.%-.3s 807#IO.SYS 808>>>>>>472 ubyte&0xDF >0 or 809>>>>>>>472 string x \b %-.2s 810>>>>>>>>474 ubyte&0xDF >0 811>>>>>>>>>474 string x \b%-.5s 812>>>>>>>>>>479 ubyte&0xDF >0 813>>>>>>>>>>>479 string x \b%-.1s 814>>>>>>>480 ubyte&0xDF >0 815>>>>>>>>480 string x \b.%-.3s 816#MSDOS.SYS 817>>>>>>>483 ubyte&0xDF >0 \b+ 818>>>>>>>>483 string x \b%-.5s 819>>>>>>>>>488 ubyte&0xDF >0 820>>>>>>>>>>488 string x \b%-.3s 821>>>>>>>>491 ubyte&0xDF >0 822>>>>>>>>>491 string x \b.%-.3s 823# 824>>390 string Ungueltiges\ System\ \xFF\r\n 825>>>412 string E/A-Fehler\ \ \ \ \xFF\r\n 826>>>>429 string Datentraeger\ wechseln\ und\040 827>>>>>455 string Taste\ druecken\r \b, Microsoft Windows 95/98/ME Bootloader (German) 828#WINBOOT.SYS only not spaces (0xDF) 829>>>>>>497 ubyte&0xDF >0 830>>>>>>>497 string x %-.7s 831>>>>>>>>504 ubyte&0xDF >0 832>>>>>>>>>504 string x \b%-.1s 833>>>>>>505 ubyte&0xDF >0 834>>>>>>>505 string x \b.%-.3s 835#IO.SYS 836>>>>>>472 ubyte&0xDF >0 or 837>>>>>>>472 string x \b %-.2s 838>>>>>>>>474 ubyte&0xDF >0 839>>>>>>>>>474 string x \b%-.6s 840>>>>>>>480 ubyte&0xDF >0 841>>>>>>>>480 string x \b.%-.3s 842#MSDOS.SYS 843>>>>>>>483 ubyte&0xDF >0 \b+ 844>>>>>>>>483 string x \b%-.5s 845>>>>>>>>>488 ubyte&0xDF >0 846>>>>>>>>>>488 string x \b%-.3s 847>>>>>>>>491 ubyte&0xDF >0 848>>>>>>>>>491 string x \b.%-.3s 849# 850>>389 string Ungueltiges\ System\ \xFF\r\n 851>>>411 string E/A-Fehler\ \ \ \ \xFF\r\n 852>>>>428 string Datentraeger\ wechseln\ und\040 853>>>>>454 string Taste\ druecken\r \b, Microsoft Windows 95/98/ME Bootloader (GERMAN) 854# DOS names like IO.SYS,WINBOOT.SYS,MSDOS.SYS,WINBOOT.INI are 8 right space padded bytes+3 bytes 855>>>>>>472 string x %-.2s 856>>>>>>>474 ubyte&0xDF >0 857>>>>>>>>474 string x \b%-.5s 858>>>>>>>>479 ubyte&0xDF >0 859>>>>>>>>>479 string x \b%-.1s 860>>>>>>480 ubyte&0xDF >0 861>>>>>>>480 string x \b.%-.3s 862>>>>>>483 ubyte&0xDF >0 \b+ 863>>>>>>>483 string x \b%-.5s 864>>>>>>>488 ubyte&0xDF >0 865>>>>>>>>488 string x \b%-.2s 866>>>>>>>>490 ubyte&0xDF >0 867>>>>>>>>>490 string x \b%-.1s 868>>>>>>>491 ubyte&0xDF >0 869>>>>>>>>491 string x \b.%-.3s 870>479 ubyte&0xDF >0 871>>416 string Kein\ System\ oder\040 872>>>433 string Laufwerksfehler 873>>>>450 string Wechseln\ und\ Taste\ dr\201cken \b, Microsoft DOS Bootloader (german) 874#IO.SYS 875>>>>>479 string x \b %-.2s 876>>>>>>481 ubyte&0xDF >0 877>>>>>>>481 string x \b%-.6s 878>>>>>487 ubyte&0xDF >0 879>>>>>>487 string x \b.%-.3s 880#MSDOS.SYS 881>>>>>>490 ubyte&0xDF >0 \b+ 882>>>>>>>490 string x \b%-.5s 883>>>>>>>>495 ubyte&0xDF >0 884>>>>>>>>>495 string x \b%-.3s 885>>>>>>>498 ubyte&0xDF >0 886>>>>>>>>498 string x \b.%-.3s 887# 888>376 search/41 Non-System\ disk\ or\040 889>>395 search/41 disk\ error\r 890>>>407 search/41 Replace\ and\040 891>>>>419 search/41 press\ \b, 892>>>>419 search/41 strike\ \b, old 893>>>>426 search/41 any\ key\ when\ ready\r MS or PC-DOS bootloader 894#449 Disk\ Boot\ failure\r MS 3.21 895#466 Boot\ Failure\r MS 3.30 896>>>>>468 search/18 \0 897#IO.SYS,IBMBIO.COM 898>>>>>>&0 string x \b %-.2s 899>>>>>>>&-20 ubyte&0xDF >0 900>>>>>>>>&-1 string x \b%-.4s 901>>>>>>>>>&-16 ubyte&0xDF >0 902>>>>>>>>>>&-1 string x \b%-.2s 903>>>>>>&8 ubyte&0xDF >0 \b. 904>>>>>>>&-1 string x \b%-.3s 905#MSDOS.SYS,IBMDOS.COM 906>>>>>>&11 ubyte&0xDF >0 \b+ 907>>>>>>>&-1 string x \b%-.5s 908>>>>>>>>&-6 ubyte&0xDF >0 909>>>>>>>>>&-1 string x \b%-.1s 910>>>>>>>>>>&-5 ubyte&0xDF >0 911>>>>>>>>>>>&-1 string x \b%-.2s 912>>>>>>>&7 ubyte&0xDF >0 \b. 913>>>>>>>>&-1 string x \b%-.3s 914>441 string Cannot\ load\ from\ harddisk.\n\r 915>>469 string Insert\ Systemdisk\040 916>>>487 string and\ press\ any\ key.\n\r \b, MS (2.11) DOS bootloader 917#>43 string \224R-LOADER\ \ SYS =label 918>54 string SYS 919>>324 string VASKK 920>>>495 string NEWLDR\0 \b, DR-DOS Bootloader (LOADER.SYS) 921# 922>98 string Press\ a\ key\ to\ retry\0\r 923>>120 string Cannot\ find\ file\ \0\r 924>>>139 string Disk\ read\ error\0\r 925>>>>156 string Loading\ ...\0 \b, DR-DOS (3.41) Bootloader 926#DRBIOS.SYS 927>>>>>44 ubyte&0xDF >0 928>>>>>>44 string x \b %-.6s 929>>>>>>>50 ubyte&0xDF >0 930>>>>>>>>50 string x \b%-.2s 931>>>>>>52 ubyte&0xDF >0 932>>>>>>>52 string x \b.%-.3s 933# 934>70 string IBMBIO\ \ COM 935>>472 string Cannot\ load\ DOS!\040 936>>>489 string Any\ key\ to\ retry \b, DR-DOS Bootloader 937>>471 string Cannot\ load\ DOS\040 938>>487 string press\ key\ to\ retry \b, Open-DOS Bootloader 939#?? 940>444 string KERNEL\ \ SYS 941>>314 string BOOT\ error! \b, FREE-DOS Bootloader 942>499 string KERNEL\ \ SYS 943>>305 string BOOT\ err!\0 \b, Free-DOS Bootloader 944>449 string KERNEL\ \ SYS 945>>319 string BOOT\ error! \b, FREE-DOS 0.5 Bootloader 946# 947>449 string Loading\ FreeDOS 948>>0x1AF ulelong >0 \b, FREE-DOS 0.95,1.0 Bootloader 949>>>497 ubyte&0xDF >0 950>>>>497 string x \b %-.6s 951>>>>>503 ubyte&0xDF >0 952>>>>>>503 string x \b%-.1s 953>>>>>>>504 ubyte&0xDF >0 954>>>>>>>>504 string x \b%-.1s 955>>>>505 ubyte&0xDF >0 956>>>>>505 string x \b.%-.3s 957# 958>331 string Error!.0 \b, FREE-DOS 1.0 bootloader 959# 960>125 string Loading\ FreeDOS...\r 961>>311 string BOOT\ error!\r \b, FREE-DOS bootloader 962>>>441 ubyte&0xDF >0 963>>>>441 string x \b %-.6s 964>>>>>447 ubyte&0xDF >0 965>>>>>>447 string x \b%-.1s 966>>>>>>>448 ubyte&0xDF >0 967>>>>>>>>448 string x \b%-.1s 968>>>>449 ubyte&0xDF >0 969>>>>>449 string x \b.%-.3s 970>124 string FreeDOS\0 971>>331 string \ err\0 \b, FREE-DOS BETa 0.9 Bootloader 972# DOS names like KERNEL.SYS,KERNEL16.SYS,KERNEL32.SYS,METAKERN.SYS are 8 right space padded bytes+3 bytes 973>>>497 ubyte&0xDF >0 974>>>>497 string x \b %-.6s 975>>>>>503 ubyte&0xDF >0 976>>>>>>503 string x \b%-.1s 977>>>>>>>504 ubyte&0xDF >0 978>>>>>>>>504 string x \b%-.1s 979>>>>505 ubyte&0xDF >0 980>>>>>505 string x \b.%-.3s 981>>333 string \ err\0 \b, FREE-DOS BEta 0.9 Bootloader 982>>>497 ubyte&0xDF >0 983>>>>497 string x \b %-.6s 984>>>>>503 ubyte&0xDF >0 985>>>>>>503 string x \b%-.1s 986>>>>>>>504 ubyte&0xDF >0 987>>>>>>>>504 string x \b%-.1s 988>>>>505 ubyte&0xDF >0 989>>>>>505 string x \b.%-.3s 990>>334 string \ err\0 \b, FREE-DOS Beta 0.9 Bootloader 991>>>497 ubyte&0xDF >0 992>>>>497 string x \b %-.6s 993>>>>>503 ubyte&0xDF >0 994>>>>>>503 string x \b%-.1s 995>>>>>>>504 ubyte&0xDF >0 996>>>>>>>>504 string x \b%-.1s 997>>>>505 ubyte&0xDF >0 998>>>>>505 string x \b.%-.3s 999>336 string Error!\040 1000>>343 string Hit\ a\ key\ to\ reboot. \b, FREE-DOS Beta 0.9sr1 Bootloader 1001>>>497 ubyte&0xDF >0 1002>>>>497 string x \b %-.6s 1003>>>>>503 ubyte&0xDF >0 1004>>>>>>503 string x \b%-.1s 1005>>>>>>>504 ubyte&0xDF >0 1006>>>>>>>>504 string x \b%-.1s 1007>>>>505 ubyte&0xDF >0 1008>>>>>505 string x \b.%-.3s 1009# added by Joerg Jenderek 1010# https://www.visopsys.org/ 1011# https://partitionlogic.org.uk/ 1012# OEM-ID=Visopsys 1013>478 ulelong 0 1014>>(1.b+326) string I/O\ Error\ reading\040 1015>>>(1.b+344) string Visopsys\ loader\r 1016>>>>(1.b+361) string Press\ any\ key\ to\ continue.\r \b, Visopsys loader 1017# http://alexfru.chat.ru/epm.html#bootprog 1018>494 ubyte >0x4D 1019>>495 string >E 1020>>>495 string <S 1021#OEM-ID is not reliable 1022>>>>3 string BootProg 1023# It just looks for a program file name at the root directory 1024# and loads corresponding file with following execution. 1025# DOS names like STARTUP.BIN,STARTUPC.COM,STARTUPE.EXE are 8 right space padded bytes+3 bytes 1026>>>>499 ubyte&0xDF >0 \b, COM/EXE Bootloader 1027>>>>>499 use DOS-filename 1028#If the boot sector fails to read any other sector, 1029#it prints a very short message ("RE") to the screen and hangs the computer. 1030#If the boot sector fails to find needed program in the root directory, 1031#it also hangs with another message ("NF"). 1032>>>>>492 string RENF \b, FAT (12 bit) 1033>>>>>495 string RENF \b, FAT (16 bit) 1034#If the boot sector fails to read any other sector, 1035#it prints a very short message ("RE") to the screen and hangs the computer. 1036# x86 bootloader end 1037 1038# added by Joerg Jenderek at Feb 2013 according to https://thestarman.pcministry.com/asm/mbr/MSWIN41.htm#FSINFO 1039# and https://en.wikipedia.org/wiki/File_Allocation_Table#FS_Information_Sector 1040>0 string RRaA 1041>>0x1E4 string rrAa \b, FSInfosector 1042#>>0x1FC uleshort =0 SHOULD BE ZERO 1043>>>0x1E8 ulelong <0xffffffff \b, %u free clusters 1044>>>0x1EC ulelong <0xffffffff \b, last allocated cluster %u 1045 1046# updated by Joerg Jenderek at Sep 2007 1047>3 ubyte 0 1048#no active flag 1049>>446 ubyte 0 1050# partition 1 not empty 1051>>>450 ubyte >0 1052# partitions 3,4 empty 1053>>>>482 ubyte 0 1054>>>>>498 ubyte 0 1055# partition 2 ID=0,5,15 1056>>>>>>466 ubyte <0x10 1057>>>>>>>466 ubyte 0x05 \b, extended partition table 1058>>>>>>>466 ubyte 0x0F \b, extended partition table (LBA) 1059>>>>>>>466 ubyte 0x0 \b, extended partition table (last) 1060 1061# DOS x86 sector separated and moved from "DOS/MBR boot sector" by Joerg Jenderek at May 2011 1062 1063>0x200 lelong 0x82564557 \b, BSD disklabel 1064 1065# by Joerg Jenderek at Apr 2013 1066# Print the DOS filenames from directory entry form with 8 right space padded bytes + 3 bytes for extension 1067# like IO.SYS. MSDOS.SYS , KERNEL.SYS , DRBIO.SYS 10680 name DOS-filename 1069# space=0x20 (00100000b) means empty 1070>0 ubyte&0xDF >0 1071>>0 ubyte x \b%c 1072>>>1 ubyte&0xDF >0 1073>>>>1 ubyte x \b%c 1074>>>>>2 ubyte&0xDF >0 1075>>>>>>2 ubyte x \b%c 1076>>>>>>>3 ubyte&0xDF >0 1077>>>>>>>>3 ubyte x \b%c 1078>>>>>>>>>4 ubyte&0xDF >0 1079>>>>>>>>>>4 ubyte x \b%c 1080>>>>>>>>>>>5 ubyte&0xDF >0 1081>>>>>>>>>>>>5 ubyte x \b%c 1082>>>>>>>>>>>>>6 ubyte&0xDF >0 1083>>>>>>>>>>>>>>6 ubyte x \b%c 1084>>>>>>>>>>>>>>>7 ubyte&0xDF >0 1085>>>>>>>>>>>>>>>>7 ubyte x \b%c 1086# DOS filename extension 1087>>8 ubyte&0xDF >0 \b. 1088>>>8 ubyte x \b%c 1089>>>>9 ubyte&0xDF >0 1090>>>>>9 ubyte x \b%c 1091>>>>>>10 ubyte&0xDF >0 1092>>>>>>>10 ubyte x \b%c 1093# Print 2 following DOS filenames from directory entry form 1094# like IO.SYS+MSDOS.SYS or ibmbio.com+ibmdos.com 10950 name 2xDOS-filename 1096# display 1 space 1097>0 ubyte x \b 1098>0 use DOS-filename 1099>11 ubyte x \b+ 1100>11 use DOS-filename 1101 1102# https://en.wikipedia.org/wiki/Master_boot_record#PTE 1103# display standard partition table 11040 name partition-table 1105#>0 ubyte x PARTITION-TABLE 1106# test and display 1st til 4th partition table entry 1107>0 use partition-entry-test 1108>16 use partition-entry-test 1109>32 use partition-entry-test 1110>48 use partition-entry-test 1111# test for entry of partition table 11120 name partition-entry-test 1113# partition type ID > 0 1114>4 ubyte >0 1115# active flag 0 1116>>0 ubyte 0 1117>>>0 use partition-entry 1118# active flag 0x80, 0x81, ... 1119>>0 ubyte >0x7F 1120>>>0 use partition-entry 1121# Print entry of partition table 11220 name partition-entry 1123# partition type ID > 0 1124>4 ubyte >0 \b; partition 1125>>64 leshort 0xAA55 1 1126>>48 leshort 0xAA55 2 1127>>32 leshort 0xAA55 3 1128>>16 leshort 0xAA55 4 1129>>4 ubyte x : ID=%#x 1130>>0 ubyte&0x80 0x80 \b, active 1131>>0 ubyte >0x80 %#x 1132>>1 ubyte x \b, start-CHS ( 1133>>1 use partition-chs 1134>>5 ubyte x \b), end-CHS ( 1135>>5 use partition-chs 1136>>8 ulelong x \b), startsector %u 1137>>12 ulelong x \b, %u sectors 1138# Print cylinder,head,sector (CHS) of partition entry 11390 name partition-chs 1140# cylinder 1141>1 ubyte x \b0x 1142>1 ubyte&0xC0 0x40 \b1 1143>1 ubyte&0xC0 0x80 \b2 1144>1 ubyte&0xC0 0xC0 \b3 1145>2 ubyte x \b%x 1146# head 1147>0 ubyte x \b,%u 1148# sector 1149>1 ubyte&0x3F x \b,%u 1150 1151# FATX 11520 string FATX FATX filesystem data 1153 1154# romfs filesystems - Juan Cespedes <cespedes@debian.org> 11550 string -rom1fs- romfs filesystem, version 1 1156>8 belong x %d bytes, 1157>16 string x named %s. 1158 1159# netboot image - Juan Cespedes <cespedes@debian.org> 11600 lelong 0x1b031336L Netboot image, 1161>4 lelong&0xFFFFFF00 0 1162>>4 lelong&0x100 0x000 mode 2 1163>>4 lelong&0x100 0x100 mode 3 1164>4 lelong&0xFFFFFF00 !0 unknown mode 1165 11660x18b string OS/2 OS/2 Boot Manager 1167 1168# updated by Joerg Jenderek at Oct 2008 and Sep 2012 1169# https://syslinux.zytor.com/iso.php 1170# 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 1171# assembler instructions: cli;jmp 0:7Cyy (yy=0x40,0x5e,0x6c,0x6e,0x77);nop;nop 11720 ulequad&0x909000007cc0eafa 0x909000007c40eafa 1173>631 search/689 ISOLINUX\ isolinux Loader 1174>>&0 string x (version %-4.4s) 1175# https://syslinux.zytor.com/pxe.php 1176# assembler instructions: jmp 7C05 11770 ulelong 0x007c05ea pxelinux loader (version 2.13 or older) 1178# assembler instructions: pushfd;pushad 11790 ulelong 0x60669c66 pxelinux loader 1180# assembler instructions: jmp 05 11810 ulelong 0xc00005ea pxelinux loader (version 3.70 or newer) 1182# https://syslinux.zytor.com/wiki/index.php/SYSLINUX 11830 string LDLINUX\ SYS\ SYSLINUX loader 1184>12 string x (older version %-4.4s) 11850 string \r\nSYSLINUX\ SYSLINUX loader 1186>11 string x (version %-4.4s) 1187# syslinux updated and separated from "DOS/MBR boot sector" by Joerg Jenderek at Sep 2012 1188# assembler instructions: jmp yy (yy=0x3c,0x58);nop;"SYSLINUX" 11890 ulelong&0x80909bEB 0x009018EB 1190# OEM-ID not always "SYSLINUX" 1191>434 search/47 Boot\ failed 1192# followed by \r\n\0 or :\ 1193>>482 search/132 \0LDLINUX\ SYS Syslinux bootloader (version 2.13 or older) 1194>>1 ubyte 0x58 Syslinux bootloader (version 3.0-3.9) 1195>459 search/30 Boot\ error\r\n\0 1196>>1 ubyte 0x58 Syslinux bootloader (version 3.10 or newer) 1197# SYSLINUX MBR updated and separated from "DOS/MBR boot sector" by Joerg Jenderek at Sep 2012 1198# assembler instructions: mov di,0600h;mov cx,0100h 119916 search/4 \xbf\x00\x06\xb9\x00\x01 1200# to display SYSLINUX MBR (36) before old DOS/MBR boot sector one with partition table (strength=50+21) 1201!:strength +36 1202>94 search/249 Missing\ operating\ system 1203# followed by \r for versions older 3.35 , .\r for versions newer 3.52 and point for other 1204# skip Ranish MBR 1205>>408 search/4 HD1/\0 1206>>408 default x 1207>>>250 search/118 \0Operating\ system\ load SYSLINUX MBR 1208# followed by "ing " or space 1209>>>>292 search/98 error 1210>>>>>&0 string \r (version 3.35 or older) 1211>>>>>&0 string .\r (version 3.52 or newer) 1212>>>>>&0 default x (version 3.36-3.51 ) 1213>368 search/106 \0Disk\ error\ on\ boot\r\n SYSLINUX GPT-MBR 1214>>156 search/10 \0Boot\ partition\ not\ found\r\n 1215>>>270 search/10 \0OS\ not\ bootable\r\n (version 3.86 or older) 1216>>174 search/10 \0Missing\ OS\r\n 1217>>>189 search/10 \0Multiple\ active\ partitions\r\n (version 4.00 or newer) 1218# SYSLINUX END 1219 1220# NetBSD mbr variants (master-boot-code version 1.22) added by Joerg Jenderek at Nov 2012 1221# assembler instructions: xor ax,ax;mov ax,ss;mov sp,0x7c00;mov ax, 12220 ubequad 0x31c08ed0bc007c8e 1223# mbr_bootsel magic before partition table not reliable with small ipl fragments 1224#>444 uleshort 0xb5e1 1225>0004 uleshort x 1226# ERRorTeXT 1227>>181 search/166 Error\ \0\r\n NetBSD mbr 1228# NT Drive Serial Number https://thestarman.pcministry.com/asm/mbr/Win2kmbr.htm#DS 1229>>>0x1B8 ubelong >0 \b,Serial %#-.8x 1230# BOOTSEL definitions contains assembler instructions: int 0x13;pop dx;push dx;push dx 1231>>>0xbb search/71 \xcd\x13\x5a\x52\x52 \b,bootselector 1232# BOOT_EXTENDED definitions contains assembler instructions: 1233# xchg ecx,edx;addl ecx,edx;movw lba_info,si;movb 0x42,ah;pop dx;push dx;int 0x13 1234>>>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 1235# COM_PORT_VAL definitions contains assembler instructions: outb al,dx;add 5,dl;inb %dx;test 0x40,al 1236>>>0x130 search/55 \xee\x80\xc2\x05\xec\xa8\x40 \b,serial IO 1237# not TERSE_ERROR 1238>>>196 search/106 No\ active\ partition\0 1239>>>>&0 string Disk\ read\ error\0 1240>>>>>&0 string No\ operating\ system\0 \b,verbose 1241# not NO_CHS definitions contains assembler instructions: pop dx;push dx;movb $8,ah;int0x13 1242>>>0x7d search/7 \x5a\x52\xb4\x08\xcd\x13 \b,CHS 1243# not NO_LBA_CHECK definitions contains assembler instructions: movw 0x55aa,bx;movb 0x41,ah;pop dx;push dx;int 0x13 1244>>>0xa4 search/84 \xbb\xaa\x55\xb4\x41\x5a\x52\xcd\x13 \b,LBA-check 1245# assembler instructions: movw nametab,bx 1246>>>0x26 search/21 \xBB\x94\x07 1247# not NO_BANNER definitions contains assembler instructions: mov banner,si;call message_crlf 1248>>>>&-9 ubequad&0xBE00f0E800febb94 0xBE0000E80000bb94 1249>>>>>181 search/166 Error\ \0 1250# "a: disk" , "Fn: diskn" or "NetBSD MBR boot" 1251>>>>>>&3 string x \b,"%s" 1252>>>446 use partition-table 1253# Andrea Mazzoleni AdvanceCD mbr loader of http://advancemame.sourceforge.net/boot-readme.html 1254# added by Joerg Jenderek at Nov 2012 for versions 1.3 - 1.4 1255# assembler instructions: jmp short 0x58;nop;ASCII 12560 ubequad&0xeb58908000000000 0xeb58900000000000 1257# assembler instructions: cli;xor ax,ax;mov ds,ax;mov es,ax;mov ss, 1258>(1.b+2) ubequad 0xfa31c08ed88ec08e 1259# Error messages at end of code 1260>>376 string No\ operating\ system\r\n\0 1261>>>398 string Disk\ error\r\n\0FDD\0HDD\0 1262>>>>419 string \ EBIOS\r\n\0 AdvanceMAME mbr 1263 1264# Neil Turton mbr loader variant of https://www.chiark.greenend.org.uk/~neilt/mbr/ 1265# added by Joerg Jenderek at Mar 2011 for versions 1.0.0 - 1.1.11 1266# for 1st version assembler instructions: cld;xor ax,ax;mov DS,ax;MOV ES,AX;mov SI, 1267# or cld;xor ax,ax;mov SS,ax;XOR SP,SP;mov DS, 12680 ulequad&0xcE1b40D48EC031FC 0x8E0000D08EC031FC 1269# pointer to the data starting with Neil Turton signature string 1270>(0x1BC.s) string NDTmbr 1271>>&-14 string 1234F\0 Turton mbr ( 1272# parameters also viewed by install-mbr --list 1273>>>(0x1BC.s+7) ubyte x \b%u<= 1274>>>(0x1BC.s+9) ubyte x \bVersion<=%u 1275#>>>(0x1BC.s+8) ubyte x asm_flag_%x 1276>>>(0x1BC.s+8) ubyte&1 1 \b,Y2K-Fix 1277# variant used by testdisk of https://www.cgsecurity.org/wiki/Menu_MBRCode 1278>>>(0x1BC.s+8) ubyte&2 2 \b,TestDisk 1279#0x1~1,..,0x8~4,0x10~F,0x80~A enabled 1280#>>>(0x1BC.s+10) ubyte x \b,flags %#x 1281#0x0~1,0x1~2,...,0x3~4,0x4~F,0x7~D default boot 1282#>>>(0x1BC.s+11) ubyte x \b,cfg_def %#x 1283# for older versions 1284>>>(0x1BC.s+9) ubyte <2 1285#>>>>(0x1BC.s+12) ubyte 18 \b,%u/18 seconds 1286>>>>(0x1BC.s+12) ubyte !18 \b,%u/18 seconds 1287# floppy A: or B: 1288>>>>(0x1BC.s+13) ubyte <2 \b,floppy %#x 1289>>>>(0x1BC.s+13) ubyte >1 1290# 1st hard disc 1291#>>>>>(0x1BC.s+13) ubyte 0x80 \b,drive %#x 1292# not 1st hard disc 1293>>>>>(0x1BC.s+13) ubyte !0x80 \b,drive %#x 1294# for version >= 2 maximal timeout can be 65534 1295>>>(0x1BC.s+9) ubyte >1 1296#>>>>(0x1BC.s+12) uleshort 18 \b,%u/18 seconds 1297>>>>(0x1BC.s+12) uleshort !18 \b,%u/18 seconds 1298# floppy A: or B: 1299>>>>(0x1BC.s+14) ubyte <2 \b,floppy %#x 1300>>>>(0x1BC.s+14) ubyte >1 1301# 1st hard disc 1302#>>>>>(0x1BC.s+14) ubyte 0x80 \b,drive %#x 1303# not 1st hard disc 1304>>>>>(0x1BC.s+14) ubyte !0x80 \b,drive %#x 1305>>>0 ubyte x \b) 1306 1307# added by Joerg Jenderek 1308# In the second sector (+0x200) are variables according to grub-0.97/stage2/asm.S or 1309# grub-1.94/kern/i386/pc/startup.S 1310# https://www.gnu.org/software/grub/manual/grub.html#Embedded-data 1311# usual values are marked with comments to get only information of strange GRUB loaders 13120x200 uleshort 0x70EA 1313# found only version 3.{1,2} 1314>0x206 ubeshort >0x0300 1315# GRUB version (0.5.)95,0.93,0.94,0.96,0.97 > "00" 1316>>0x212 ubyte >0x29 1317>>>0x213 ubyte >0x29 1318# not iso9660_stage1_5 1319#>>>0 ulelong&0x00BE5652 0x00BE5652 1320>>>>0x213 ubyte >0x29 GRand Unified Bootloader 1321# config_file for stage1_5 is 0xffffffff + default "/boot/grub/stage2" 1322>>>>0x217 ubyte 0xFF stage1_5 1323>>>>0x217 ubyte <0xFF stage2 1324>>>>0x206 ubyte x \b version %u 1325>>>>0x207 ubyte x \b.%u 1326# module_size for 1.94 1327>>>>0x208 ulelong <0xffffff \b, installed partition %u 1328#>>>>0x208 ulelong =0xffffff \b, %lu (default) 1329>>>>0x208 ulelong >0xffffff \b, installed partition %u 1330# GRUB 0.5.95 unofficial 1331>>>>0x20C ulelong&0x2E300000 0x2E300000 1332# 0=stage2 1=ffs 2=e2fs 3=fat 4=minix 5=reiserfs 1333>>>>>0x20C ubyte x \b, identifier %#x 1334#>>>>>0x20D ubyte =0 \b, LBA flag %#x (default) 1335>>>>>0x20D ubyte >0 \b, LBA flag %#x 1336# GRUB version as string 1337>>>>>0x20E string >\0 \b, GRUB version %-s 1338# for stage1_5 is 0xffffffff + config_file "/boot/grub/stage2" default 1339>>>>>>0x215 ulong 0xffffffff 1340>>>>>>>0x219 string >\0 \b, configuration file %-s 1341>>>>>>0x215 ulong !0xffffffff 1342>>>>>>>0x215 string >\0 \b, configuration file %-s 1343# newer GRUB versions 1344>>>>0x20C ulelong&0x2E300000 !0x2E300000 1345##>>>>>0x20C ulelong =0 \b, saved entry %d (usual) 1346>>>>>0x20C ulelong >0 \b, saved entry %d 1347# for 1.94 contains kernel image size 1348# for 0.93,0.94,0.96,0.97 1349# 0=stage2 1=ffs 2=e2fs 3=fat 4=minix 5=reiserfs 6=vstafs 7=jfs 8=xfs 9=iso9660 a=ufs2 1350>>>>>0x210 ubyte x \b, identifier %#x 1351# The flag for LBA forcing is in most cases 0 1352#>>>>>0x211 ubyte =0 \b, LBA flag %#x (default) 1353>>>>>0x211 ubyte >0 \b, LBA flag %#x 1354# GRUB version as string 1355>>>>>0x212 string >\0 \b, GRUB version %-s 1356# for stage1_5 is 0xffffffff + config_file "/boot/grub/stage2" default 1357>>>>>0x217 ulong 0xffffffff 1358>>>>>>0x21b string >\0 \b, configuration file %-s 1359>>>>>0x217 ulong !0xffffffff 1360>>>>>>0x217 string >\0 \b, configuration file %-s 1361 1362# DOS x86 sector updated and separated from "DOS/MBR boot sector" by Joerg Jenderek at May 2011 1363# JuMP short bootcodeoffset NOP assembler instructions will usually be EB xx 90 1364# over BIOS parameter block (BPB) 1365# https://thestarman.pcministry.com/asm/2bytejumps.htm#FWD 1366# older drives may use Near JuMP instruction E9 xx xx 1367# minimal short forward jump found 0x29 for bootloaders or 0x0 1368# maximal short forward jump is 0x7f 1369# OEM-ID is empty or contain readable bytes 13700 ulelong&0x804000E9 0x000000E9 1371!:strength +60 1372# mtools-3.9.8/msdos.h 1373# usual values are marked with comments to get only information of strange FAT systems 1374# valid sectorsize must be a power of 2 from 32 to 32768 1375>11 uleshort&0x001f 0 1376>>11 uleshort <32769 1377>>>11 uleshort >31 1378>>>>21 ubyte&0xf0 0xF0 1379>>>>>0 ubyte 0xEB DOS/MBR boot sector 1380>>>>>>1 ubyte x \b, code offset %#x+2 1381>>>>>0 ubyte 0xE9 1382>>>>>>1 uleshort x \b, code offset %#x+3 1383>>>>>3 string >\0 \b, OEM-ID "%-.8s" 1384#http://mirror.href.com/thestarman/asm/debug/debug2.htm#IHC 1385>>>>>>8 string IHC \b cached by Windows 9M 1386>>>>>11 uleshort >512 \b, Bytes/sector %u 1387#>>>>>11 uleshort =512 \b, Bytes/sector %u=512 (usual) 1388>>>>>11 uleshort <512 \b, Bytes/sector %u 1389>>>>>13 ubyte >1 \b, sectors/cluster %u 1390#>>>>>13 ubyte =1 \b, sectors/cluster %u (usual on Floppies) 1391# for lazy FAT32 implementation like Transcend digital photo frame PF830 1392>>>>>82 string/c fat32 1393>>>>>>14 uleshort !32 \b, reserved sectors %u 1394#>>>>>>14 uleshort =32 \b, reserved sectors %u (usual Fat32) 1395>>>>>82 string/c !fat32 1396>>>>>>14 uleshort >1 \b, reserved sectors %u 1397#>>>>>>14 uleshort =1 \b, reserved sectors %u (usual FAT12,FAT16) 1398#>>>>>>14 uleshort 0 \b, reserved sectors %u (usual NTFS) 1399>>>>>16 ubyte >2 \b, FATs %u 1400#>>>>>16 ubyte =2 \b, FATs %u (usual) 1401>>>>>16 ubyte =1 \b, FAT %u 1402>>>>>16 ubyte >0 1403>>>>>17 uleshort >0 \b, root entries %u 1404#>>>>>17 uleshort =0 \b, root entries %u=0 (usual Fat32) 1405>>>>>19 uleshort >0 \b, sectors %u (volumes <=32 MB) 1406#>>>>>19 uleshort =0 \b, sectors %u=0 (usual Fat32) 1407>>>>>21 ubyte >0xF0 \b, Media descriptor %#x 1408#>>>>>21 ubyte =0xF0 \b, Media descriptor %#x (usual floppy) 1409>>>>>21 ubyte <0xF0 \b, Media descriptor %#x 1410>>>>>22 uleshort >0 \b, sectors/FAT %u 1411#>>>>>22 uleshort =0 \b, sectors/FAT %u=0 (usual Fat32) 1412>>>>>24 uleshort x \b, sectors/track %u 1413>>>>>26 ubyte >2 \b, heads %u 1414#>>>>>26 ubyte =2 \b, heads %u (usual floppy) 1415>>>>>26 ubyte =1 \b, heads %u 1416# valid only for sector sizes with more then 32 Bytes 1417>>>>>11 uleshort >32 1418# https://en.wikipedia.org/wiki/Design_of_the_FAT_file_system#Extended_BIOS_Parameter_Block 1419# skip for values 2,2Ah,70h,73h,DFh 1420# and continue for extended boot signature values 0,28h,29h,80h 1421>>>>>>38 ubyte&0x56 =0 1422>>>>>>>28 ulelong >0 \b, hidden sectors %u 1423#>>>>>>>28 ulelong =0 \b, hidden sectors %u (usual floppy) 1424>>>>>>>32 ulelong >0 \b, sectors %u (volumes > 32 MB) 1425#>>>>>>>32 ulelong =0 \b, sectors %u (volumes > 32 MB) 1426# FAT<32 bit specific 1427>>>>>>>82 string/c !fat32 1428#>>>>>>>>36 ubyte 0x80 \b, physical drive %#x=0x80 (usual harddisk) 1429#>>>>>>>>36 ubyte 0 \b, physical drive %#x=0 (usual floppy) 1430>>>>>>>>36 ubyte !0x80 1431>>>>>>>>>36 ubyte !0 \b, physical drive %#x 1432# VGA-copy CRC or 1433# in Windows NT bit 0 is a dirty flag to request chkdsk at boot time. bit 1 requests surface scan too 1434>>>>>>>>37 ubyte >0 \b, reserved %#x 1435#>>>>>>>>37 ubyte =0 \b, reserved %#x 1436# extended boot signature value is 0x80 for NTFS, 0x28 or 0x29 for others 1437>>>>>>>>38 ubyte !0x29 \b, dos < 4.0 BootSector (%#x) 1438>>>>>>>>38 ubyte&0xFE =0x28 1439>>>>>>>>>39 ulelong x \b, serial number %#x 1440>>>>>>>>38 ubyte =0x29 1441>>>>>>>>>43 string <NO\ NAME \b, label: "%11.11s" 1442>>>>>>>>>43 string >NO\ NAME \b, label: "%11.11s" 1443>>>>>>>>>43 string =NO\ NAME \b, unlabeled 1444# there exist some old floppies without word FAT at offset 54 1445# a word like "FATnm " is only a hint for a FAT size on nm-bits 1446# Normally the number of clusters is calculated by the values of BPP. 1447# if it is small enough FAT is 12 bit, if it is too big enough FAT is 32 bit, 1448# otherwise FAT is 16 bit. 1449# http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/determining-fat-widths.html 1450>>>>>82 string/c !fat32 1451>>>>>>54 string FAT12 \b, FAT (12 bit) 1452>>>>>>54 string FAT16 \b, FAT (16 bit) 1453>>>>>>54 default x 1454# determinate FAT bit size by media descriptor 1455# small floppies implies FAT12 1456>>>>>>>21 ubyte <0xF0 \b, FAT (12 bit by descriptor) 1457# with media descriptor F0h floppy or maybe superfloppy with FAT16 1458>>>>>>>21 ubyte =0xF0 1459# superfloppy (many sectors) implies FAT16 1460>>>>>>>>32 ulelong >0xFFFF \b, FAT (16 bit by descriptor+sectors) 1461# no superfloppy with media descriptor F0h implies FAT12 1462>>>>>>>>32 default x \b, FAT (12 bit by descriptor+sectors) 1463# with media descriptor F8h floppy or hard disc with FAT12 or FAT16 1464>>>>>>>21 ubyte =0xF8 1465# 360 KiB with media descriptor F8h, 9 sectors per track ,single sided floppy implies FAT12 1466>>>>>>>>19 ubequad 0xd002f80300090001 \b, FAT (12 bit by descriptor+geometry) 1467# hard disc with FAT12 or FAT16 1468>>>>>>>>19 default x \b, FAT (1Y bit by descriptor) 1469# with media descriptor FAh floppy, RAM disc with FAT12 or FAT16 or Tandy hard disc 1470>>>>>>>21 ubyte =0xFA 1471# 320 KiB with media descriptor FAh, 8 sectors per track ,single sided floppy implies FAT12 1472>>>>>>>>19 ubequad 0x8002fa0200080001 \b, FAT (12 bit by descriptor+geometry) 1473# RAM disc with FAT12 or FAT16 or Tandy hard disc 1474>>>>>>>>19 default x \b, FAT (1Y bit by descriptor) 1475# others are floppy 1476>>>>>>>21 default x \b, FAT (12 bit by descriptor) 1477# FAT32 bit specific 1478>>>>>82 string/c fat32 \b, FAT (32 bit) 1479>>>>>>36 ulelong x \b, sectors/FAT %u 1480# https://technet.microsoft.com/en-us/library/cc977221.aspx 1481>>>>>>40 uleshort >0 \b, extension flags %#x 1482#>>>>>>40 uleshort =0 \b, extension flags %u 1483>>>>>>42 uleshort >0 \b, fsVersion %u 1484#>>>>>>42 uleshort =0 \b, fsVersion %u (usual) 1485>>>>>>44 ulelong >2 \b, rootdir cluster %u 1486#>>>>>>44 ulelong =2 \b, rootdir cluster %u 1487#>>>>>>44 ulelong =1 \b, rootdir cluster %u 1488>>>>>>48 uleshort >1 \b, infoSector %u 1489#>>>>>>48 uleshort =1 \b, infoSector %u (usual) 1490>>>>>>48 uleshort <1 \b, infoSector %u 1491# 0 or 0xFFFF instead of usual 6 means no backup sector 1492>>>>>>50 uleshort =0xFFFF \b, no Backup boot sector 1493>>>>>>50 uleshort =0 \b, no Backup boot sector 1494#>>>>>>50 uleshort =6 \b, Backup boot sector %u (usual) 1495>>>>>>50 default x 1496>>>>>>>50 uleshort x \b, Backup boot sector %u 1497# corrected by Joerg Jenderek at Feb 2011 according to https://thestarman.pcministry.com/asm/mbr/MSWIN41.htm#FSINFO 1498>>>>>>52 ulelong >0 \b, reserved1 %#x 1499>>>>>>56 ulelong >0 \b, reserved2 %#x 1500>>>>>>60 ulelong >0 \b, reserved3 %#x 1501# same structure as FAT1X 1502#>>>>>>64 ubyte =0x80 \b, physical drive %#x=80 (usual harddisk) 1503#>>>>>>64 ubyte =0 \b, physical drive %#x=0 (usual floppy) 1504>>>>>>64 ubyte !0x80 1505>>>>>>>64 ubyte >0 \b, physical drive %#x 1506# in Windows NT bit 0 is a dirty flag to request chkdsk at boot time. bit 1 requests surface scan too 1507>>>>>>65 ubyte >0 \b, reserved %#x 1508>>>>>>66 ubyte !0x29 \b, dos < 4.0 BootSector (%#x) 1509>>>>>>66 ubyte =0x29 1510>>>>>>>67 ulelong x \b, serial number %#x 1511>>>>>>>71 string <NO\ NAME \b, label: "%11.11s" 1512>>>>>>>71 string >NO\ NAME \b, label: "%11.11s" 1513>>>>>>>71 string =NO\ NAME \b, unlabeled 1514# additional tests for floppy image added by Joerg Jenderek 1515# no fixed disk 1516>>>>>21 ubyte !0xF8 1517# floppy media with 12 bit FAT 1518>>>>>>54 string !FAT16 1519# test for FAT after bootsector 1520>>>>>>>(11.s) ulelong&0x00ffffF0 0x00ffffF0 \b, followed by FAT 1521# floppy image 1522!:mime application/x-ima 1523# NTFS specific added by Joerg Jenderek at Mar 2011 according to https://thestarman.pcministry.com/asm/mbr/NTFSBR.htm 1524# and http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/bios-parameter-block.html 1525# 0 FATs 1526>>>>>16 ubyte =0 1527# 0 root entries 1528>>>>>>17 uleshort =0 1529# 0 DOS sectors 1530>>>>>>>19 uleshort =0 1531# 0 sectors/FAT 1532# dos < 4.0 BootSector value found is 0x80 1533#38 ubyte =0x80 \b, dos < 4.0 BootSector (%#x) 1534>>>>>>>>22 uleshort =0 \b; NTFS 1535>>>>>>>>>24 uleshort >0 \b, sectors/track %u 1536>>>>>>>>>36 ulelong !0x800080 \b, physical drive %#x 1537>>>>>>>>>40 ulequad >0 \b, sectors %lld 1538>>>>>>>>>48 ulequad >0 \b, $MFT start cluster %lld 1539>>>>>>>>>56 ulequad >0 \b, $MFTMirror start cluster %lld 1540# Values 0 to 127 represent MFT record sizes of 0 to 127 clusters. 1541# Values 128 to 255 represent MFT record sizes of 2^(256-N) bytes. 1542>>>>>>>>>64 lelong <256 1543>>>>>>>>>>64 lelong <128 \b, clusters/RecordSegment %d 1544>>>>>>>>>>64 ubyte >127 \b, bytes/RecordSegment 2^(-1*%i) 1545# Values 0 to 127 represent index block sizes of 0 to 127 clusters. 1546# Values 128 to 255 represent index block sizes of 2^(256-N) byte 1547>>>>>>>>>68 ulelong <256 1548>>>>>>>>>>68 ulelong <128 \b, clusters/index block %d 1549#>>>>>>>>>>68 ulelong >127 \b, bytes/index block 2^(256-%d) 1550>>>>>>>>>>68 ubyte >127 \b, bytes/index block 2^(-1*%i) 1551>>>>>>>>>72 ulequad x \b, serial number 0%llx 1552>>>>>>>>>80 ulelong >0 \b, checksum %#x 1553#>>>>>>>>>80 ulelong =0 \b, checksum %#x=0 (usual) 1554# unicode loadername size jump 1555>>>>>>>>>(0x200.s*2) ubyte x 1556# in next sector loadername terminated by unicode CTRL-D and $ 1557>>>>>>>>>>&0x1FF ulequad&0x0000FFffFFffFF00 0x0000002400040000 \b; contains 1558# if 2nd NTFS sectors is found then assume whole filesystem 1559#!:mime application/x-raw-disk-image 1560!:ext img/bin/ntfs 1561>>>>>>>>>>>0x200 use ntfs-sector2 1562 1563# For 2nd NTFS sector added by Joerg Jenderek at Jan 2013, Mar 2019 1564# https://thestarman.pcministry.com/asm/mbr/NTFSbrHexEd.htm 1565# unused assembler instructions short JMP y2;NOP;NOP 15660x056 ulelong&0xFFFF0FFF 0x909002EB NTFS 1567#!:mime application/octet-stream 1568!:ext bin 1569>0 use ntfs-sector2 1570# https://memory.dataram.com/products-and-services/software/ramdisk 1571# assembler instructions JMP C000;NOP 15720x056 ulelong 0x9000c0e9 NTFS 1573#!:mime application/octet-stream 1574!:ext bin 1575>0 use ntfs-sector2 1576# check for characteristics of second NTFS sector and then display loader name 15770 name ntfs-sector2 1578# number of utf16 characters of loadername 1579>0 uleshort <8 1580# unused assembler instructions JMP y2;NOP;NOP or JMP C000;NOP 1581>>0x056 ulelong&0xFF0000FD 0x900000E9 1582# loadernames are NTLDR,CMLDR,PELDR,$LDR$ or BOOTMGR 1583>>>0x002 lestring16 x bootstrap %-5.5s 1584# check for 7 character length of loader name like BOOTMGR 1585>>>0 uleshort 7 1586>>>>0x0c lestring16 x \b%-2.2s 1587### DOS,NTFS boot sectors end 1588 1589# ntfsclone-image is a special save format for NTFS volumes, 1590# created and restored by the ntfsclone program 15910 string \0ntfsclone-image ntfsclone image, 1592>0x10 byte x version %d. 1593>0x11 byte x \b%d, 1594>0x12 lelong x cluster size %d, 1595>0x16 lequad x device size %lld, 1596>0x1e lequad x %lld total clusters, 1597>0x26 lequad x %lld clusters in use 1598 1599 16000 name ffsv1 1601>8404 string x last mounted on %s, 1602#>9504 ledate x last checked at %s, 1603>8224 ledate x last written at %s, 1604>8401 byte x clean flag %d, 1605>8228 lelong x number of blocks %d, 1606>8232 lelong x number of data blocks %d, 1607>8236 lelong x number of cylinder groups %d, 1608>8240 lelong x block size %d, 1609>8244 lelong x fragment size %d, 1610>8252 lelong x minimum percentage of free blocks %d, 1611>8256 lelong x rotational delay %dms, 1612>8260 lelong x disk rotational speed %drps, 1613>8320 lelong 0 TIME optimization 1614>8320 lelong 1 SPACE optimization 1615 16169564 lelong 0x00011954 Unix Fast File system [v1] (little-endian), 1617>0 use ffsv1 1618 16199564 belong 0x00011954 Unix Fast File system [v1] (big-endian), 1620>7168 belong 0x4c41424c Apple UFS Volume 1621>>7186 string x named %s, 1622>>7176 belong x volume label version %d, 1623>>7180 bedate x created on %s, 1624>0 use \^ffsv1 1625 16260 name ffsv2 1627>212 string x last mounted on %s, 1628>680 string >\0 volume name %s, 1629>1072 leqldate x last written at %s, 1630>209 byte x clean flag %d, 1631>210 byte x readonly flag %d, 1632>1080 lequad x number of blocks %lld, 1633>1088 lequad x number of data blocks %lld, 1634>44 lelong x number of cylinder groups %d, 1635>48 lelong x block size %d, 1636>52 lelong x fragment size %d, 1637>1196 lelong x average file size %d, 1638>1200 lelong x average number of files in dir %d, 1639>1104 lequad x pending blocks to free %lld, 1640>1112 lelong x pending inodes to free %d, 1641>712 lequad x system-wide uuid %0llx, 1642>60 lelong x minimum percentage of free blocks %d, 1643>128 lelong 0 TIME optimization 1644>128 lelong 1 SPACE optimization 1645 164642332 lelong 0x19012038 Unix Fast File system [v2ea] (little-endian) 1647>40960 use ffsv2 1648 164942332 lelong 0x19540119 Unix Fast File system [v2] (little-endian) 1650>40960 use ffsv2 1651 165242332 belong 0x19012038 Unix Fast File system [v2ea] (little-endian) 1653>40960 use \^ffsv2 1654 165542332 belong 0x19540119 Unix Fast File system [v2] (big-endian) 1656>40960 use \^ffsv2 1657 165866908 lelong 0x19012038 Unix Fast File system [v2ea] (little-endian) 1659>65536 use ffsv2 1660 166166908 lelong 0x19540119 Unix Fast File system [v2] (little-endian) 1662>65536 use ffsv2 1663 166466908 belong 0x19012038 Unix Fast File system [v2ea] (little-endian) 1665>65536 use \^ffsv2 1666 166766908 belong 0x19540119 Unix Fast File system [v2] (big-endian) 1668>65536 use \^ffsv2 1669 16700 ulequad 0xc8414d4dc5523031 HAMMER filesystem (little-endian), 1671>0x90 lelong+1 x volume %d 1672>0x94 lelong x (of %d), 1673>0x50 string x name %s, 1674>0x98 ulelong x version %u, 1675>0xa0 ulelong x flags %#x 1676 16770 ulequad 0x48414d3205172011 HAMMER2 filesystem (little-endian), 1678>0x3b byte x volume %d, 1679>0x28 ulequad/1073741824 x size %lluGB, 1680>0x30 ulelong x version %u, 1681>0x34 ulelong x flags %#x 1682 1683# ext2/ext3 filesystems - Andreas Dilger <adilger@dilger.ca> 1684# ext4 filesystem - Eric Sandeen <sandeen@sandeen.net> 1685# volume label and UUID Russell Coker 1686# https://etbe.coker.com.au/2008/07/08/label-vs-uuid-vs-device/ 16870x438 leshort 0xEF53 Linux 1688>0x44c lelong x rev %d 1689>0x43e leshort x \b.%d 1690# No journal? ext2 1691>0x45c lelong ^0x0000004 ext2 filesystem data 1692>>0x43a leshort ^0x0000001 (mounted or unclean) 1693# Has a journal? ext3 or ext4 1694>0x45c lelong &0x0000004 1695# and small INCOMPAT? 1696>>0x460 lelong <0x0000040 1697# and small RO_COMPAT? 1698>>>0x464 lelong <0x0000008 ext3 filesystem data 1699# else large RO_COMPAT? 1700>>>0x464 lelong >0x0000007 ext4 filesystem data 1701# else large INCOMPAT? 1702>>0x460 lelong >0x000003f ext4 filesystem data 1703>0x468 ubelong x \b, UUID=%08x 1704>0x46c ubeshort x \b-%04x 1705>0x46e ubeshort x \b-%04x 1706>0x470 ubeshort x \b-%04x 1707>0x472 ubelong x \b-%08x 1708>0x476 ubeshort x \b%04x 1709>0x478 string >0 \b, volume name "%s" 1710# General flags for any ext* fs 1711>0x460 lelong &0x0000004 (needs journal recovery) 1712>0x43a leshort &0x0000002 (errors) 1713# INCOMPAT flags 1714>0x460 lelong &0x0000001 (compressed) 1715#>0x460 lelong &0x0000002 (filetype) 1716#>0x460 lelong &0x0000010 (meta bg) 1717>0x460 lelong &0x0000040 (extents) 1718>0x460 lelong &0x0000080 (64bit) 1719#>0x460 lelong &0x0000100 (mmp) 1720#>0x460 lelong &0x0000200 (flex bg) 1721# RO_INCOMPAT flags 1722#>0x464 lelong &0x0000001 (sparse super) 1723>0x464 lelong &0x0000002 (large files) 1724>0x464 lelong &0x0000008 (huge files) 1725#>0x464 lelong &0x0000010 (gdt checksum) 1726#>0x464 lelong &0x0000020 (many subdirs) 1727#>0x463 lelong &0x0000040 (extra isize) 1728 1729# f2fs filesystem - Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi> 17300x400 lelong 0xF2F52010 F2FS filesystem 1731>0x46c ubelong x \b, UUID=%08x 1732>0x470 ubeshort x \b-%04x 1733>0x472 ubeshort x \b-%04x 1734>0x474 ubeshort x \b-%04x 1735>0x476 ubelong x \b-%08x 1736>0x47a ubeshort x \b%04x 1737>0x147c lestring16 x \b, volume name "%s" 1738 1739# Minix filesystems - Juan Cespedes <cespedes@debian.org> 17400x410 leshort 0x137f 1741!:strength / 2 1742>0x402 beshort < 100 1743>0x402 beshort > -1 Minix filesystem, V1, 14 char names, %d zones 1744>0x1e string minix \b, bootable 17450x410 beshort 0x137f 1746!:strength / 2 1747>0x402 beshort < 100 1748>0x402 beshort > -1 Minix filesystem, V1 (big endian), %d zones 1749>0x1e string minix \b, bootable 17500x410 leshort 0x138f 1751!:strength / 2 1752>0x402 beshort < 100 1753>0x402 beshort > -1 Minix filesystem, V1, 30 char names, %d zones 1754>0x1e string minix \b, bootable 17550x410 beshort 0x138f 1756!:strength / 2 1757>0x402 beshort < 100 1758>0x402 beshort > -1 Minix filesystem, V1, 30 char names (big endian), %d zones 1759>0x1e string minix \b, bootable 1760# Weak Magic: this is $x 1761#0x410 leshort 0x2468 1762#>0x402 beshort < 100 1763#>>0x402 beshort > -1 Minix filesystem, V2, 14 char names 1764#>0x1e string minix \b, bootable 1765#0x410 beshort 0x2468 1766#>0x402 beshort < 100 1767#>0x402 beshort > -1 Minix filesystem, V2 (big endian) 1768#>0x1e string minix \b, bootable 1769#0x410 leshort 0x2478 1770#>0x402 beshort < 100 1771#>0x402 beshort > -1 Minix filesystem, V2, 30 char names 1772#>0x1e string minix \b, bootable 1773#0x410 leshort 0x2478 1774#>0x402 beshort < 100 1775#>0x402 beshort > -1 Minix filesystem, V2, 30 char names 1776#>0x1e string minix \b, bootable 1777#0x410 beshort 0x2478 1778#>0x402 beshort !0 Minix filesystem, V2, 30 char names (big endian) 1779#>0x1e string minix \b, bootable 1780# Weak Magic! this is MD 1781#0x418 leshort 0x4d5a 1782#>0x402 beshort <100 1783#>>0x402 beshort > -1 Minix filesystem, V3, 60 char names 1784 1785# SGI disk labels - Nathan Scott <nathans@debian.org> 17860 belong 0x0BE5A941 SGI disk label (volume header) 1787 1788# SGI XFS filesystem - Nathan Scott <nathans@debian.org> 17890 belong 0x58465342 SGI XFS filesystem data 1790>0x4 belong x (blksz %d, 1791>0x68 beshort x inosz %d, 1792>0x64 beshort ^0x2004 v1 dirs) 1793>0x64 beshort &0x2004 v2 dirs) 1794 1795############################################################################ 1796# Minix-ST kernel floppy 17970x800 belong 0x46fc2700 Atari-ST Minix kernel image 1798# https://en.wikipedia.org/wiki/BIOS_parameter_block 1799# floppies with valid BPB and any instruction at beginning 1800>19 string \240\005\371\005\0\011\0\2\0 \b, 720k floppy 1801>19 string \320\002\370\005\0\011\0\1\0 \b, 360k floppy 1802 1803############################################################################ 1804# Hmmm, is this a better way of detecting _standard_ floppy images ? 180519 string \320\002\360\003\0\011\0\1\0 DOS floppy 360k 1806>0x1FE leshort 0xAA55 \b, DOS/MBR hard disk boot sector 180719 string \240\005\371\003\0\011\0\2\0 DOS floppy 720k 1808>0x1FE leshort 0xAA55 \b, DOS/MBR hard disk boot sector 180919 string \100\013\360\011\0\022\0\2\0 DOS floppy 1440k 1810>0x1FE leshort 0xAA55 \b, DOS/MBR hard disk boot sector 1811 181219 string \240\005\371\005\0\011\0\2\0 DOS floppy 720k, IBM 1813>0x1FE leshort 0xAA55 \b, DOS/MBR hard disk boot sector 181419 string \100\013\371\005\0\011\0\2\0 DOS floppy 1440k, mkdosfs 1815>0x1FE leshort 0xAA55 \b, DOS/MBR hard disk boot sector 1816 181719 string \320\002\370\005\0\011\0\1\0 Atari-ST floppy 360k 181819 string \240\005\371\005\0\011\0\2\0 Atari-ST floppy 720k 1819# | | | | | 1820# | | | | heads 1821# | | | sectors/track 1822# | | sectors/FAT 1823# | media descriptor 1824# BPB: sectors 1825 1826# Valid media descriptor bytes for MS-DOS: 1827# 1828# Byte Capacity Media Size and Type 1829# ------------------------------------------------- 1830# 1831# F0 2.88 MB 3.5-inch, 2-sided, 36-sector 1832# F0 1.44 MB 3.5-inch, 2-sided, 18-sector 1833# F9 720K 3.5-inch, 2-sided, 9-sector 1834# F9 1.2 MB 5.25-inch, 2-sided, 15-sector 1835# FD 360K 5.25-inch, 2-sided, 9-sector 1836# FF 320K 5.25-inch, 2-sided, 8-sector 1837# FC 180K 5.25-inch, 1-sided, 9-sector 1838# FE 160K 5.25-inch, 1-sided, 8-sector 1839# FE 250K 8-inch, 1-sided, single-density 1840# FD 500K 8-inch, 2-sided, single-density 1841# FE 1.2 MB 8-inch, 2-sided, double-density 1842# F8 ----- Fixed disk 1843# 1844# FC xxxK Apricot 70x1x9 boot disk. 1845# 1846# Originally a bitmap: 1847# xxxxxxx0 Not two sided 1848# xxxxxxx1 Double sided 1849# xxxxxx0x Not 8 SPT 1850# xxxxxx1x 8 SPT 1851# xxxxx0xx Not Removable drive 1852# xxxxx1xx Removable drive 1853# 11111xxx Must be one. 1854# 1855# But now it's rather random: 1856# 111111xx Low density disk 1857# 00 SS, Not 8 SPT 1858# 01 DS, Not 8 SPT 1859# 10 SS, 8 SPT 1860# 11 DS, 8 SPT 1861# 1862# 11111001 Double density 3 1/2 floppy disk, high density 5 1/4 1863# 11110000 High density 3 1/2 floppy disk 1864# 11111000 Hard disk any format 1865# 1866 1867# all FAT12 (strength=70) floppies with sectorsize 512 added by Joerg Jenderek at Jun 2013 1868# https://en.wikipedia.org/wiki/File_Allocation_Table#Exceptions 1869# Too Weak. 1870#512 ubelong&0xE0ffff00 0xE0ffff00 1871# without valid Media descriptor in place of BPB, cases with are done at other places 1872#>21 ubyte <0xE5 floppy with old FAT filesystem 1873# but valid Media descriptor at begin of FAT 1874#>>512 ubyte =0xed 720k 1875#>>512 ubyte =0xf0 1440k 1876#>>512 ubyte =0xf8 720k 1877#>>512 ubyte =0xf9 1220k 1878#>>512 ubyte =0xfa 320k 1879#>>512 ubyte =0xfb 640k 1880#>>512 ubyte =0xfc 180k 1881# look like an old DOS directory entry 1882#>>>0xA0E ubequad 0 1883#>>>>0xA00 ubequad !0 1884#!:mime application/x-ima 1885#>>512 ubyte =0xfd 1886# look for 2nd FAT at different location to distinguish between 360k and 500k 1887#>>>0x600 ubelong&0xE0ffff00 0xE0ffff00 360k 1888#>>>0x500 ubelong&0xE0ffff00 0xE0ffff00 500k 1889#>>>0xA0E ubequad 0 1890#!:mime application/x-ima 1891#>>512 ubyte =0xfe 1892#>>>0x400 ubelong&0xE0ffff00 0xE0ffff00 160k 1893#>>>>0x60E ubequad 0 1894#>>>>>0x600 ubequad !0 1895#!:mime application/x-ima 1896#>>>0xC00 ubelong&0xE0ffff00 0xE0ffff00 1200k 1897#>>512 ubyte =0xff 320k 1898#>>>0x60E ubequad 0 1899#>>>>0x600 ubequad !0 1900#!:mime application/x-ima 1901#>>512 ubyte x \b, Media descriptor %#x 1902# without x86 jump instruction 1903#>>0 ulelong&0x804000E9 !0x000000E9 1904# assembler instructions: CLI;MOV SP,1E7;MOV AX;07c0;MOV 1905#>>>0 ubequad 0xfabce701b8c0078e \b, MS-DOS 1.12 bootloader 1906# IOSYS.COM+MSDOS.COM 1907#>>>>0xc4 use 2xDOS-filename 1908#>>0 ulelong&0x804000E9 =0x000000E9 1909# only x86 short jump instruction found 1910#>>>0 ubyte =0xEB 1911#>>>>1 ubyte x \b, code offset %#x+2 1912# https://thestarman.pcministry.com/DOS/ibm100/Boot.htm 1913# assembler instructions: CLI;MOV AX,CS;MOV DS,AX;MOV DX,0 1914#>>>>(1.b+2) ubequad 0xfa8cc88ed8ba0000 \b, PC-DOS 1.0 bootloader 1915# ibmbio.com+ibmdos.com 1916#>>>>>0x176 use DOS-filename 1917#>>>>>0x181 ubyte x \b+ 1918#>>>>>0x182 use DOS-filename 1919# https://thestarman.pcministry.com/DOS/ibm110/Boot.htm 1920# assembler instructions: CLI;MOV AX,CS;MOV DS,AX;XOR DX,DX;MOV 1921#>>>>(1.b+2) ubequad 0xfa8cc88ed833d28e \b, PC-DOS 1.1 bootloader 1922# ibmbio.com+ibmdos.com 1923#>>>>>0x18b use DOS-filename 1924#>>>>>0x196 ubyte x \b+ 1925#>>>>>0x197 use DOS-filename 1926# https://en.wikipedia.org/wiki/Zenith_Data_Systems 1927# assembler instructions: MOV BX,07c0;MOV SS,BX;MOV SP,01c6 1928#>>>>(1.b+2) ubequad 0xbbc0078ed3bcc601 \b, Zenith Data Systems MS-DOS 1.25 bootloader 1929# IO.SYS+MSDOS.SYS 1930#>>>>>0x20 use 2xDOS-filename 1931# https://en.wikipedia.org/wiki/Corona_Data_Systems 1932# assembler instructions: MOV AX,CS;MOV DS,AX;CLI;MOV SS,AX; 1933#>>>>(1.b+2) ubequad 0x8cc88ed8fa8ed0bc \b, MS-DOS 1.25 bootloader 1934# IO.SYS+MSDOS.SYS 1935#>>>>>0x69 use 2xDOS-filename 1936# assembler instructions: CLI;PUSH CS;POP SS;MOV SP,7c00; 1937#>>>>(1.b+2) ubequad 0xfa0e17bc007cb860 \b, MS-DOS 2.11 bootloader 1938# defect IO.SYS+MSDOS.SYS ? 1939#>>>>>0x162 use 2xDOS-filename 1940 19410 name cdrom ISO 9660 CD-ROM filesystem data 1942!:mime application/x-iso9660-image 1943!:ext iso/iso9660 1944# The next line is not necessary because the MBR staff is done looking for boot signature 1945>0x1FE leshort 0xAA55 (DOS/MBR boot sector) 1946# "application id" which appears to be used as a volume label 1947>32808 string/T >\0 '%.32s' 1948>34816 string \000CD001\001EL\ TORITO\ SPECIFICATION (bootable) 1949# check for extended area (combined ISO + UDF) 1950>36865 string BEA01 + 1951>>36864 use extendedarea 1952 195337633 string CD001 ISO 9660 CD-ROM filesystem data (raw 2352 byte sectors) 1954!:mime application/x-iso9660-image 1955 1956# URL: http://fileformats.archiveteam.org/wiki/High_Sierra 1957# Update: Joerg Jenderek 195832777 string CDROM High Sierra CD-ROM filesystem data 1959# https://www.unix.com/man-page/OpenSolaris/7fs/hsfs/ 1960#!:mime application/octet-stream 1961#!:mime application/x-hsfs-image 1962# BOOKSHELF.ISO "Shareware Grab Bag.iso" 1963!:ext iso 1964# "application id" which appears to be used as a volume label 1965>32816 string/T >\0 '%.32s' 1966 1967 1968# CDROM Filesystems 1969# https://en.wikipedia.org/wiki/ISO_9660 1970# Modified for UDF by gerardo.cacciari@gmail.com 197132769 string CD001 1972# mime line at that position does not work 1973# to display CD-ROM (70=81-11) after MBR (113=40+72+1), partition-table (71=50+21) and before Apple Driver Map (51) 1974#!:strength -11 1975# to display CD-ROM (114=81+33) before MBR (113=40+72+1), partition-table (71=50+21) and Apple Driver Map (51) 1976!:strength +35 1977>0 use cdrom 1978 1979# From: Joerg Jenderek 1980# URL: http://fileformats.archiveteam.org/wiki/Universal_Disk_Format 1981# https://en.wikipedia.org/wiki/Universal_Disk_Format 1982# Reference: https://wiki.osdev.org/UDF 1983# Note: called "UDF Disc Image" by DROID via PUID fmt/1738 1984# verified by udftools `udfinfo nero-UDFv26.iso` and 7-Zip `7z l -tUdf nero-UDF1.iso` 1985# 1986# look for type descriptor at relative offset 1 of block 16 if it is an extended descriptor section 198732769 string BEA01 1988>32768 use extendedarea 1989 19900 name extendedarea 1991# look for type descriptor at relative offset 1 of block 17 with size 2048 (valid for images with blocksize of 512, 1024 or 2048 bytes) 1992>2049 string NSR0 1993>>2048 use NSR0 1994>2049 default x 1995# look for type descriptor at relative offset 1 of block 17 with size 4096 (valid for images with blocksize of 4096 bytes) 1996>>4097 string NSR0 1997>>>4096 use NSR0 1998>>4097 default x 1999# look for type descriptor at relative offset 1 of block 17 with size 8192 (valid for images with blocksize of 8192 bytes) 2000>>>8193 string NSR0 2001>>>>8192 use NSR0 2002>>>8193 default x 2003# look for type descriptor at relative offset 1 of block 17 with size 16384 (valid for images with blocksize of 16384 bytes) 2004>>>>16385 string NSR0 2005>>>>>16384 use NSR0 2006>>>>16385 default x 2007# look for type descriptor at relative offset 1 of block 17 with size 32768 (valid for images with blocksize of 32768 bytes) 2008>>>>>32769 string NSR0 2009>>>>>>32768 use NSR0 2010>>>>>32769 default x 2011 20120 name NSR0 2013# NSR02 indicates ISO/IEC 13346 first edition, or ECMA-167 second edition 2014# OSTA UDF 1.x revisions are based on ISO/IEC 13346 first edition 2015# FIXME: This detection is incorrect as it does not detect UDF 1.x, but ECMA-167 2nd 2016>5 ubyte 0x32 UDF filesystem data (version 1.x) 2017#!:mime application/octet-stream 2018!:mime application/x-udf-image 2019!:ext iso/udf 2020# NSR03 indicates ISO/IEC 13346 second edition, or ECMA-167 third edition 2021# OSTA UDF 2.x revisions are based on ECMA-167 third edition 2022# FIXME: This detection is incorrect as it does not detect UDF 2.x, but ECMA-167 3rd 2023>5 ubyte 0x33 UDF filesystem data (version 2.x) 2024#!:mime application/octet-stream 2025!:mime application/x-udf-image 2026!:ext iso/udf 2027 2028# URL: https://en.wikipedia.org/wiki/NRG_(file_format) 2029# Reference: https://dl.opendesktop.org/api/files/download/id/1460731811/ 2030# 11577-mount-iso-0.9.5.tar.bz2/mount-iso-0.9.5/install.sh 2031# From: Joerg Jenderek 2032# Note: Only for nero disc with once (DAO) type after 300 KB header 2033339969 string CD001 Nero CD image at 0x4B000 2034!:mime application/x-nrg 2035!:ext nrg 2036>307200 use cdrom 2037 2038# cramfs filesystem - russell@coker.com.au 20390 lelong 0x28cd3d45 Linux Compressed ROM File System data, little endian 2040>4 lelong x size %u 2041>8 lelong &1 version #2 2042>8 lelong &2 sorted_dirs 2043>8 lelong &4 hole_support 2044>32 lelong x CRC %#x, 2045>36 lelong x edition %u, 2046>40 lelong x %u blocks, 2047>44 lelong x %u files 2048 20490 belong 0x28cd3d45 Linux Compressed ROM File System data, big endian 2050>4 belong x size %u 2051>8 belong &1 version #2 2052>8 belong &2 sorted_dirs 2053>8 belong &4 hole_support 2054>32 belong x CRC %#x, 2055>36 belong x edition %u, 2056>40 belong x %u blocks, 2057>44 belong x %u files 2058 2059# reiserfs - russell@coker.com.au 20600x10034 string ReIsErFs ReiserFS V3.5 20610x10034 string ReIsEr2Fs ReiserFS V3.6 20620x10034 string ReIsEr3Fs ReiserFS V3.6.19 2063>0x1002c leshort x block size %d 2064>0x10032 leshort &2 (mounted or unclean) 2065>0x10000 lelong x num blocks %d 2066>0x10040 lelong 1 tea hash 2067>0x10040 lelong 2 yura hash 2068>0x10040 lelong 3 r5 hash 2069 2070# EST flat binary format (which isn't, but anyway) 2071# From: Mark Brown <broonie@sirena.org.uk> 20720 string ESTFBINR EST flat binary 2073 2074# Aculab VoIP firmware 2075# From: Mark Brown <broonie@sirena.org.uk> 20760 string VoIP\ Startup\ and Aculab VoIP firmware 2077>35 string x format %s 2078 2079# From: Mark Brown <broonie@sirena.org.uk> [old] 2080# From: Behan Webster <behanw@websterwood.com> 20810 belong 0x27051956 u-boot legacy uImage, 2082>32 string x %s, 2083>28 byte 0 Invalid os/ 2084>28 byte 1 OpenBSD/ 2085>28 byte 2 NetBSD/ 2086>28 byte 3 FreeBSD/ 2087>28 byte 4 4.4BSD/ 2088>28 byte 5 Linux/ 2089>28 byte 6 SVR4/ 2090>28 byte 7 Esix/ 2091>28 byte 8 Solaris/ 2092>28 byte 9 Irix/ 2093>28 byte 10 SCO/ 2094>28 byte 11 Dell/ 2095>28 byte 12 NCR/ 2096>28 byte 13 LynxOS/ 2097>28 byte 14 VxWorks/ 2098>28 byte 15 pSOS/ 2099>28 byte 16 QNX/ 2100>28 byte 17 Firmware/ 2101>28 byte 18 RTEMS/ 2102>28 byte 19 ARTOS/ 2103>28 byte 20 Unity OS/ 2104>28 byte 21 INTEGRITY/ 2105>29 byte 0 \bInvalid CPU, 2106>29 byte 1 \bAlpha, 2107>29 byte 2 \bARM, 2108>29 byte 3 \bIntel x86, 2109>29 byte 4 \bIA64, 2110>29 byte 5 \bMIPS, 2111>29 byte 6 \bMIPS 64-bit, 2112>29 byte 7 \bPowerPC, 2113>29 byte 8 \bIBM S390, 2114>29 byte 9 \bSuperH, 2115>29 byte 10 \bSparc, 2116>29 byte 11 \bSparc 64-bit, 2117>29 byte 12 \bM68K, 2118>29 byte 13 \bNios-32, 2119>29 byte 14 \bMicroBlaze, 2120>29 byte 15 \bNios-II, 2121>29 byte 16 \bBlackfin, 2122>29 byte 17 \bAVR32, 2123>29 byte 18 \bSTMicroelectronics ST200, 2124>29 byte 19 \bSandbox architecture, 2125>29 byte 20 \bANDES Technology NDS32, 2126>29 byte 21 \bOpenRISC 1000, 2127>29 byte 22 \bARM 64-bit, 2128>29 byte 23 \bDesignWare ARC, 2129>29 byte 24 \bx86_64, 2130>29 byte 25 \bXtensa, 2131>29 byte 26 \bRISC-V, 2132>30 byte 0 Invalid Image 2133>30 byte 1 Standalone Program 2134>30 byte 2 OS Kernel Image 2135>30 byte 3 RAMDisk Image 2136>30 byte 4 Multi-File Image 2137>30 byte 5 Firmware Image 2138>30 byte 6 Script File 2139>30 byte 7 Filesystem Image (any type) 2140>30 byte 8 Binary Flat Device Tree BLOB 2141>31 byte 0 (Not compressed), 2142>31 byte 1 (gzip), 2143>31 byte 2 (bzip2), 2144>31 byte 3 (lzma), 2145>12 belong x %d bytes, 2146>8 bedate x %s, 2147>16 belong x Load Address: %#08X, 2148>20 belong x Entry Point: %#08X, 2149>4 belong x Header CRC: %#08X, 2150>24 belong x Data CRC: %#08X 2151 2152# JFFS2 file system 21530 leshort 0x1984 Linux old jffs2 filesystem data little endian 21540 beshort 0x1984 Linux old jffs2 filesystem data big endian 21550 leshort 0x1985 Linux jffs2 filesystem data little endian 21560 beshort 0x1985 Linux jffs2 filesystem data big endian 2157 2158# Squashfs 21590 name squashfs 2160>28 beshort x version %d. 2161>30 beshort x \b%d, 2162>20 beshort 0 uncompressed, 2163>20 beshort 1 zlib 2164>20 beshort 2 lzma 2165>20 beshort 3 lzo 2166>20 beshort 4 xz 2167>20 beshort 5 lz4 2168>20 beshort 6 zstd 2169>20 beshort >0 compressed, 2170>28 beshort <3 2171>>8 belong x %d bytes, 2172>28 beshort >2 2173>>28 beshort <4 2174>>>63 bequad x %lld bytes, 2175>>28 beshort >3 2176>>>40 bequad x %lld bytes, 2177#>>67 belong x %d bytes, 2178>4 belong x %d inodes, 2179>28 beshort <2 2180>>32 beshort x blocksize: %d bytes, 2181>28 beshort >1 2182>>28 beshort <4 2183>>>51 belong x blocksize: %d bytes, 2184>>28 beshort >3 2185>>>12 belong x blocksize: %d bytes, 2186>28 beshort <4 2187>>39 bedate x created: %s 2188>28 beshort >3 2189>>8 bedate x created: %s 2190 21910 string sqsh Squashfs filesystem, big endian, 2192>0 use squashfs 2193 21940 string hsqs Squashfs filesystem, little endian, 2195>0 use \^squashfs 2196 2197# AFS Dump Magic 2198# From: Ty Sarna <tsarna@sarna.org> 21990 string \x01\xb3\xa1\x13\x22 AFS Dump 2200>&0 belong x (v%d) 2201>>&0 byte 0x76 2202>>>&0 belong x Vol %d, 2203>>>>&0 byte 0x6e 2204>>>>>&0 string x %s 2205>>>>>>&1 byte 0x74 2206>>>>>>>&0 beshort 2 2207>>>>>>>>&4 bedate x on: %s 2208>>>>>>>>&0 bedate =0 full dump 2209>>>>>>>>&0 bedate !0 incremental since: %s 2210 2211#---------------------------------------------------------- 2212#delta ISO Daniel Novotny (dnovotny@redhat.com) 22130 string DISO Delta ISO data 2214!:strength +50 2215>4 belong x version %d 2216 2217# VMS backup savesets - gerardo.cacciari@gmail.com 2218# 22194 string \x01\x00\x01\x00\x01\x00 2220>(0.s+16) string \x01\x01 2221>>&(&0.b+8) byte 0x42 OpenVMS backup saveset data 2222>>>40 lelong x (block size %d, 2223>>>49 string >\0 original name '%s', 2224>>>2 short 1024 VAX generated) 2225>>>2 short 2048 AXP generated) 2226>>>2 short 4096 I64 generated) 2227 2228# Summary: Oracle Clustered Filesystem 2229# Created by: Aaron Botsis <redhat@digitalmafia.org> 22308 string OracleCFS Oracle Clustered Filesystem, 2231>4 long x rev %d 2232>0 long x \b.%d, 2233>560 string x label: %.64s, 2234>136 string x mountpoint: %.128s 2235 2236# Oracle ASM tagged volume - Aaron Botsis <redhat@digitalmafia.org> 223732 string ORCLDISK Oracle ASM Volume, 2238>40 string x Disk Name: %0.12s 223932 string ORCLCLRD Oracle ASM Volume (cleared), 2240>40 string x Disk Name: %0.12s 2241 2242# Compaq/HP RILOE floppy image 2243# From: Dirk Jagdmann <doj@cubic.org> 22440 string CPQRFBLO Compaq/HP RILOE floppy image 2245 2246#------------------------------------------------------------------------------ 2247# Files-11 On-Disk Structure (File system for various RSX-11 and VMS flavours). 2248# These bits come from LBN 1 (home block) of ODS-1, ODS-2 and ODS-5 volumes, 2249# which is mapped to VBN 2 of [000000]INDEXF.SYS;1 - gerardo.cacciari@gmail.com 2250# 22511008 string DECFILE11 Files-11 On-Disk Structure 2252>525 byte x (ODS-%d); 2253>1017 string A RSX-11, VAX/VMS or OpenVMS VAX file system; 2254>1017 string B 2255>>525 byte 2 VAX/VMS or OpenVMS file system; 2256>>525 byte 5 OpenVMS Alpha or Itanium file system; 2257>984 string x volume label is '%-12.12s' 2258 2259# From: Thomas Klausner <wiz@NetBSD.org> 2260# https://filext.com/file-extension/DAA 2261# describes the daa file format. The magic would be: 22620 string DAA\x0\x0\x0\x0\x0 PowerISO Direct-Access-Archive 2263 2264# From Albert Cahalan <acahalan@gmail.com> 2265# really le32 operation,destination,payloadsize (but quite predictable) 2266# 01 00 00 00 00 00 00 c0 00 02 00 00 22670 string \1\0\0\0\0\0\0\300\0\2\0\0 Marvell Libertas firmware 2268 2269# From Eric Sandeen 2270# GFS2 22710x10000 belong 0x01161970 2272>0x10018 belong 0x0000051d GFS1 Filesystem 2273>>0x10024 belong x (blocksize %d, 2274>>0x10060 string >\0 lockproto %s) 2275>0x10018 belong 0x00000709 GFS2 Filesystem 2276>>0x10024 belong x (blocksize %d, 2277>>0x10060 string >\0 lockproto %s) 2278 2279# Russell Coker <russell@coker.com.au> 22800x10040 string _BHRfS_M BTRFS Filesystem 2281>0x1012b string >\0 label "%s", 2282>0x10090 lelong x sectorsize %d, 2283>0x10094 lelong x nodesize %d, 2284>0x10098 lelong x leafsize %d, 2285>0x10020 ubelong x UUID=%08x- 2286>0x10024 ubeshort x \b%04x- 2287>0x10026 ubeshort x \b%04x- 2288>0x10028 ubeshort x \b%04x- 2289>0x1002a ubeshort x \b%04x 2290>0x1002c ubelong x \b%08x, 2291>0x10078 lequad x %lld/ 2292>0x10070 lequad x \b%lld bytes used, 2293>0x10088 lequad x %lld devices 2294 22950 string btrfs-stream BTRFS stream file 2296 2297# dvdisaster's .ecc 2298# From: "Nelson A. de Oliveira" <naoliv@gmail.com> 22990 string *dvdisaster* dvdisaster error correction file 2300 2301# Type: CROM filesystem 2302# From: Werner Fink <werner@suse.de> 23030 string CROMFS CROMFS 2304>6 string >\0 \b version %2.2s, 2305>8 ulequad >0 \b block data at %lld, 2306>16 ulequad >0 \b fblock table at %lld, 2307>24 ulequad >0 \b inode table at %lld, 2308>32 ulequad >0 \b root at %lld, 2309>40 ulelong >0 \b fblock size = %d, 2310>44 ulelong >0 \b block size = %d, 2311>48 ulequad >0 \b bytes = %lld 2312 2313# Type: xfs metadump image 2314# From: Daniel Novotny <dnovotny@redhat.com> 2315# mb_magic XFSM at 0; superblock magic XFSB at 1 << mb_blocklog 2316# but can we do the << ? For now it's always 512 (0x200) anyway. 23170 string XFSM 2318>0x200 string XFSB XFS filesystem metadump image 2319 2320# Type: delta ISO 2321# From: Daniel Novotny <dnovotny@redhat.com> 23220 string DISO Delta ISO data, 2323>4 belong x version %d 2324 2325# JFS2 (Journaling File System) image. (Old JFS1 has superblock at 0x1000.) 2326# See linux/fs/jfs/jfs_superblock.h for layout; see jfs_filsys.h for flags. 2327# From: Adam Buchbinder <adam.buchbinder@gmail.com> 23280x8000 string JFS1 2329# Because it's text-only magic, check a binary value (version) to be sure. 2330# Should always be 2, but mkfs.jfs writes it as 1. Needs to be 2 or 1 to be 2331# mountable. 2332>&0 lelong <3 JFS2 filesystem image 2333# Label is followed by a UUID; we have to limit string length to avoid 2334# appending the UUID in the case of a 16-byte label. 2335>>&144 regex [\x20-\x7E]{1,16} (label "%s") 2336>>&0 lequad x \b, %lld blocks 2337>>&8 lelong x \b, blocksize %d 2338>>&32 lelong&0x00000006 >0 (dirty) 2339>>&36 lelong >0 (compressed) 2340 2341# LFS 23420 lelong 0x070162 LFS filesystem image 2343>4 lelong 1 version 1, 2344>>8 lelong x \b blocks %u, 2345>>12 lelong x \b blocks per segment %u, 2346>4 lelong 2 version 2, 2347>>8 lelong x \b fragments %u, 2348>>12 lelong x \b bytes per segment %u, 2349>16 lelong x \b disk blocks %u, 2350>20 lelong x \b block size %u, 2351>24 lelong x \b fragment size %u, 2352>28 lelong x \b fragments per block %u, 2353>32 lelong x \b start for free list %u, 2354>36 lelong x \b number of free blocks %d, 2355>40 lelong x \b number of files %u, 2356>44 lelong x \b blocks available for writing %d, 2357>48 lelong x \b inodes in cache %d, 2358>52 lelong x \b inode file disk address %#x, 2359>56 lelong x \b inode file inode number %u, 2360>60 lelong x \b address of last segment written %#x, 2361>64 lelong x \b address of next segment to write %#x, 2362>68 lelong x \b address of current segment written %#x 2363 23640 string td\000 floppy image data (TeleDisk, compressed) 23650 string TD\000 floppy image data (TeleDisk) 2366 23670 string CQ\024 floppy image data (CopyQM, 2368>16 leshort x %d sectors, 2369>18 leshort x %d heads.) 2370 23710 string ACT\020Apricot\020disk\020image\032\004 floppy image data (ApriDisk) 2372 2373# URL: http://fileformats.archiveteam.org/wiki/LoadDskF/SaveDskF 2374# Update: Joerg Jenderek 2375# Note: called "IBM SKF disk image" by TrID 2376# verfied by 7-Zip `7z l -tFAT -slt *.dsk` and 2377# `deark -l -m loaddskf 06200D19.DSK` 2378# Reference: http://mark0.net/download/triddefs_xml.7z/defs/d/dsk-skf-old.trid.xml 23790 beshort 0xAA58 2380>0 use SaveDskF 2381# Reference: http://mark0.net/download/triddefs_xml.7z/defs/d/dsk-skf.trid.xml 23820 beshort 0xAA59 2383>0 use SaveDskF 2384# Reference: http://mark0.net/download/triddefs_xml.7z/defs/d/dsk-skf-comp.trid.xml 23850 beshort 0xAA5A 2386# skip foo by additional check for unused upper byte of media type in SaveDskF header 2387#>3 ubyte =0 2388# skip bar by additional check for valid "low" number of heads in SaveDskF header 2389#>>26 uleshort <3 2390# skip foo by additional check for unused double word field in SaveDskF header 2391#>>>30 long =0 2392#>>>>0 use SaveDskF 2393>0 use SaveDskF 2394# display information about IBM SaveDskF floppy disk images 23950 name SaveDskF 2396# SaveDskF magic 2397>0 beshort x floppy image data (IBM SaveDskF 2398#!:mime application/octet-stream 2399!:mime application/x-ibm-dsk 2400!:ext dsk 2401# also suffix with digit (1dk .2dk ...); NO example FOUND! 2402#!:ext dsk/1dk/2dk 2403>1 ubyte =0x58 \b, old) 2404>1 ubyte =0x59 \b) 2405>1 ubyte =0x5A \b, compressed) 2406# media type; the first byte of the FAT like: 0xF0 (usual floppy) 0xF9 0xFE 2407# https://en.wikipedia.org/wiki/Design_of_the_FAT_file_system 2408>2 ubyte !0xF0 \b, Media descriptor %#x 2409# upper byte of media type is not used; so this seems to be nil 2410>3 ubyte !0 \b, upper byte of media type %#x 2411# sector size in bytes as in the BIOS parameter block like: 512 ; SAVEDSKF.EXE with other sizes produce garbage images 2412>4 uleshort !512 \b, Bytes/sector %u 2413# cluster mask; number of sectors per cluster, minus 1 2414>6 uleshort+1 >1 \b, sectors/cluster %u 2415#>6 uleshort+1 x \b, sectors/cluster %u 2416# cluster shift; log2(cluster size / sector size) like: 0~1=ClusterSize/SectorSize 2417>7 ubyte >0 \b, cluster shift %u 2418#>7 ubyte x \b, cluster shift %u 2419# reserved sectors; as in the BIOS parameter block like: 1 256 (2M256R-K.DSK) 2420>8 uleshort >1 \b, reserved sectors %u 2421#>8 uleshort x \b, reserved sectors %u 2422# FAT copies; as in the BIOS parameter block like: 2 (usual) 1 (2-NK.DSK) 2423>10 ubyte !2 \b, FAT 2424# plural s 2425>>10 ubyte >1 \bs 2426>>10 ubyte x %u 2427# root directory entries; as in the BIOS parameter block like: 224 (usual) 64 (H1-NK.DSK) 4096 (2-NK.DSK) 2428>11 uleshort !224 \b, root entries %u 2429# sector number of first cluster (count sectors used by boot sector, FATs and root directory) like: 7 10 29 33 288 2430>13 uleshort !33 \b, 1st cluster at sector %u 2431# number of clusters in image; empty clusters at the end are not saved and counted like: 2372 2848 2432>15 uleshort x \b, %u clusters 2433# sectors/FAT; as in the BIOS parameter block like: 1 (H1-NK.DSK) 7 9 2434>17 ubyte !9 \b, sectors/FAT %u 2435# sector number of root directory (ie, count of sectors used by boot sector and FATs) like: 3 (H1-NK.DSK) 9 10 15 19 274 (2M256R-K.DSK) 2436>18 uleshort !19 \b, root directory at sector %u 2437# checksum; sum of all bytes in the file 2438>20 ulelong x \b, checksum %#8.8x 2439# cylinders; number of cylinders like: 40 80 2440>24 uleshort !80 \b, %u cylinders 2441#>24 uleshort x \b, %u cylinders 2442# heads; number of heads as in the BIOS parameter block like: 1 (H1-NK.DSK) 2 2443>26 uleshort !2 \b, heads %u 2444#>26 uleshort x \b, heads %u 2445# sectors/track; number of sectors per track as in the BIOS parameter block like: 8 15 18 36 2446>28 uleshort !18 \b, sectors/track %u 2447#>28 uleshort x \b, sectors/track %u 2448# unused double word field seems to be always like: 0 2449>30 ulelong !0 \b, at 0x1E %#x 2450# number of sectors in images like: 1017 2786 2880 2451>34 uleshort x \b, sectors %u 2452# if string is "printable" it can be a real comment 2453>(36.s) ubyte !0x00 2454# if 1st sector is far enough away (> 0x29) then there is space for comment part 2455>>38 uleshort >41 2456# offset to comment string like: 28h=40 2457>>>36 uleshort x \b, at %#x 2458# comment string terminated with \r\n\0 2459>>>(36.s) string x "%s" 2460# offset to the first sector like: 0 (If this is 0, assume it is 0x200) 29h=41 (DISPLAY3.DSK) 31h 43h 45h 46h 48h 50h 200h=512 2461>38 uleshort !0 \b, 1st sector at %#x 2462# FOR DEBUGGING! 2463#>(38.s) ubelong x SECTOR CONTENT %x 2464# not compressed floppy image implies readable DOS boot sector inside image 2465>>1 ubyte !0x5A 2466# when not compressed it is readable as DOS boot sector via ./filesystems 2467#>>>(38.s) indirect x \b; contains 2468>38 uleshort =0 \b, 1st sector at 0x200 (0) 2469# maybe standard DOS boot sector; NO example FOUND HERE! 2470#>>0x200 indirect x \b; contains 2471 24720 string \074CPM_Disk\076 disk image data (YAZE) 2473 2474# From: Joerg Jenderek 2475# URL: https://en.wikipedia.org/wiki/Central_Point_Software#cite_note-6 2476# Reference: https://www.robcraig.com/download/transcopy-5-x-file-format 2477# https://www.robcraig.com/download/transcopy-file-format-by-gene-thompson 2478# http://mark0.net/download/triddefs_xml.7z/defs/t/tc-transcopy.trid.xml 2479# TransCopy signature 24800 beshort 0x5AA5 2481# skip Intel serial flash ROM with invalid 0 disk sides handled by ./intel 2482>0x103 ubyte !0 2483# skip Intel serial flash ROM with unlikely "high" start cylinder 100 handled by ./intel 2484#>>0x101 ubyte <100 VALID_START_CYLINDER 2485# skip Intel serial flash ROM with unlikely description handled by ./intel 2486#>>>2 beshort !0xF00f VALID_DESCRIPTION 2487# skip Intel serial flash ROM with invalid disk types 89h 88h handled by ./intel 2488#>>>>0x100 byte !0x89 VALID_DISK_TYPE 2489>>0 use tc-floppy 2490# display information of Central Point Software (CPS) Option Board TransCopy floppy image 24910 name tc-floppy 2492>0 beshort x TransCopy disk image 2493#!:mime application/octet-stream 2494!:mime application/x-floppy-image-tc 2495# like: disk04.tc VOCALC2.TC WIZ5_A.tc WIZ2_720.IMG 2496!:ext tc/img 2497# 1st description (optional 0-terminated maximal 32) like: 2498# "Project Workbench 2.20" "Visi On Calc" "Wizardry V Disk 1 of 3" 2499>2 string >\0 %.32s 2500# 2nd desc. (optional 0-terminated maximal 32) like: 2501# "(1988)." "Advanced - Utility" 'Program Disk 2" 2502>0x22 string >\0 "%.32s" 2503# Looks like ascii (like MESSAGES) formatted with attribute bytes (190)? 2504# not needed for disk copy 2505#>>0x42 string x '%.190s' 2506#>>0x88 lestring16 x "%.8s" 2507# disktype: 2~MFM High Density 3~MFM Double Density 4~Apple II GCR 5~FM Single Density 2508# 6~Commodore GCR 7~MFM Double Density 8~Commodore Amiga Ch~Atari FM FFh~Unknown 2509>0x100 ubyte !0xFF \b, disk type %u 2510# StartingCylinder like: 0 2511>0x101 ubyte x \b, cylinder 2512>0x101 ubyte !0 start=%u 2513# EndingCylinder like: 40 (often) 41 79 2514>0x102 ubyte x end=%u 2515# NumberOfSides like: 2 2516>0x103 ubyte !2 \b, %u sides 2517# TrackIncrement like: 1 2518>0x104 ubyte !1 \b, track increment %u 2519# TrackPosTbl Track skew 2520#>0x105 ubequad x \b, Track skew %#16.16llx 2521# TrackOffsTbl 2522#>0x305 ubequad x \b, TrackOffsTbl %#16.16llx 2523# TrackLngthTbl 2524#>0x505 ubequad x \b, TrackLngthTbl %#16.16llx 2525# TrackTypeTable 2526#>0x705 ubequad x \b, TrackTypeTable %#16.16llx 2527# Address mark timing 2528#>0x905 ubequad x \b, Address mark timing %#16.16llx 2529# Track fragment 2530#>0x2905 ubequad !0 \b, Track fragment %#16.16llx 2531# Track data 2532#>0x4000 ubequad !0 \b, Track data %#16.16llx 2533 2534# ReFS 2535# Richard W.M. Jones <rjones@redhat.com> 25360 string \0\0\0ReFS\0 ReFS filesystem image 2537 2538# EFW encase image file format: 2539# Gregoire Passault 2540# http://www.forensicswiki.org/wiki/Encase_image_file_format 25410 string EVF\x09\x0d\x0a\xff\x00 EWF/Expert Witness/EnCase image file format 2542 2543# UBIfs 2544# Linux kernel sources: fs/ubifs/ubifs-media.h 25450 lelong 0x06101831 2546>0x16 leshort 0 UBIfs image 2547>0x08 lequad x \b, sequence number %llu 2548>0x10 leshort x \b, length %u 2549>0x04 lelong x \b, CRC %#08x 2550 25510 lelong 0x23494255 2552>0x04 leshort <2 2553>0x05 string \0\0\0 2554>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 2555>0x04 leshort x UBI image, version %u 2556 2557# NEC PC-88 2D disk image 2558# From Fabio R. Schmidlin <sd-snatcher@users.sourceforge.net> 25590x20 ulelong&0xFFFFFEFF 0x2A0 2560>0x10 string \0\0\0\0\0\0\0\0\0\0 2561>>0x280 string \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 2562>>>0x1A ubyte&0xEF 0 2563>>>>0x1B ubyte&0x8F 0 2564>>>>>0x1B ubyte&70 <0x40 2565>>>>>>0x1C ulelong >0x21 2566>>>>>>>0 regex [[:print:]]* NEC PC-88 disk image, name=%s 2567>>>>>>>>0x1B ubyte 0 \b, media=2D 2568>>>>>>>>0x1B ubyte 0x10 \b, media=2DD 2569>>>>>>>>0x1B ubyte 0x20 \b, media=2HD 2570>>>>>>>>0x1B ubyte 0x30 \b, media=1D 2571>>>>>>>>0x1B ubyte 0x40 \b, media=1DD 2572>>>>>>>>0x1A ubyte 0x10 \b, write-protected 2573 2574# HDD Raw Copy Tool disk image, file extension: .imgc 2575# From Benjamin Vanheuverzwijn <bvanheu@gmail.com> 25760 pstring HDD\ Raw\ Copy\ Tool %s 2577>0x100 pstring x %s 2578>0x200 pstring x - HD model: %s 2579#>0x300 pstring x unknown %s 2580>0x400 pstring x serial: %s 2581#>0x500 pstring x unknown: %s 2582!:ext imgc 2583 2584# http://martin.hinner.info/fs/bfs/bfs-structure.html 25850 lelong 0x1BADFACE SCO UnixWare BFS filesystem 2586 2587# https://arstechnica.com/information-technology/2018/07/the-beos-filesystem/ 258832 lelong 0x42465331 BE/OS BFS1 filesystem 2589>36 lelong x \b, byte order %d 2590>40 lelong x \b, block size %d 2591>44 lelong x \b, block shift %d 2592>48 lequad x \b, total blocks %lld 2593>56 lequad x \b, used blocks %lld 2594 2595 25960 name next 2597>0 lelong x \b, size %d 2598>4 string x \b, label %s 2599 2600# https://opensource.apple.com/source/IOStorageFamily/IOStorageFamily-44.3\ 2601# /IONeXTPartitionScheme.h 26020 string NeXT NeXT version 1 disklabel 2603>12 use next 26040 string dlV1 NeXT version 2 disklabel 2605>12 use next 26060 string dlV2 NeXT version 3 disklabel 2607>12 use next 2608 2609# bcachefs 2610# From: Thomas Wei�schuh <thomas@t-8ch.de> 2611 26120 name bcachefs-uuid 2613>0 ubelong x \b%08x 2614>4 ubeshort x \b-%04x 2615>6 ubeshort x \b-%04x 2616>8 ubeshort x \b-%04x 2617>10 ubelong x \b-%08x 2618>14 ubeshort x \b%04x 2619 26200 name bcachefs bcachefs 2621>0x68 lequad 8 \b, UUID= 2622>>0x38 use bcachefs-uuid 2623>>0x48 string >0 \b, label "%.32s" 2624>>0x10 uleshort x \b, version %u 2625>>0x12 uleshort x \b, min version %u 2626>>0x7a byte x \b, device %d 2627# assumes the first field is the members field 2628>>0x2f4 ulelong 0x01 \b/UUID= 2629>>>0x2f0 default x 2630>>>&(0x07a.b*56) use bcachefs-uuid 2631>>0x07b byte x \b, %d devices 2632>>0x090 byte ^0x02 \b (unclean) 2633 26340x1018 string \xc6\x85\x73\xf6\x4e\x1a\x45\xca\x82\x65\xf5\x7f\x48\xba\x6d\x81 2635>0x1000 use bcachefs 2636 26370x1018 string \xc6\x85\x73\xf6\x66\xce\x90\xa9\xd9\x6a\x60\xcf\x80\x3d\xf7\xef 2638>0x1000 use bcachefs 2639 2640# EROFS 2641# https://kernel.googlesource.com/pub/scm/linux/kernel/git/xiang/erofs-utils/\ 2642# +/refs/heads/experimental/include/erofs_fs.h#12 26431024 lelong 0xE0F5E1E2 EROFS filesystem 2644#>1028 lelong x \b, checksum=%#x 2645>1032 lelong >0 \b, compat: 2646>>1032 lelong &1 SB_CHKSUM 2647>>1032 lelong &2 MTIME 2648>1036 byte x \b, blocksize=%u 2649>1037 byte x \b, exslots=%u 2650#>1038 leshort x \b, root_nid=%d 2651#>1040 lequad x \b, inodes=%ld 2652#>1048 leldate x \b, build_time=%s 2653#>1056 lelong x \b.%d 2654#>1060 lelong x \b, blocks=%d 2655#>1064 lelong x \b, metadata@%#x 2656#>1068 lelong x \b, xattr@%#x 2657>1072 guid x \b, uuid=%s 2658>1088 string >0 \b, name=%s 2659>1104 lelong >0 \b, incompat: 2660>>1104 lelong &1 LZ4_0PADDING 2661>>1104 lelong &2 BIG_PCLUSTER 2662>>1104 lelong &4 CHUNKED_FILE 2663>>1104 lelong &8 DEVICE_TABLE 2664>>1104 lelong &16 ZTAILPACKING 2665 2666# YAFFS 2667# The layout itself is undocumented, determined by the memory layout of the 2668# reference implementation. This signature is derived from the 2669# reference implementation code and generated test cases 2670# We recognize the start of an object header defined by yaffs_obj_hdr: 2671# (Note the values being encoded depending on platform endianess) 2672 2673# u32 type /* enum yaffs_obj_type, valid 1-5 */ 2674# u32 parent_obj_id; /* 1 for root objects we recognize */ 2675# u16 sum_no_longer_used; /* checksum of name. Not used by YAFFS and memset to 0xFF */ 2676# YCHAR name[YAFFS_MAX_NAME_LENGTH + 1]; 2677 2678# mkyaffsimage always writes a root directory with empty name, then processing the target directory contents 2679# mkyaffs2image directly proceeds to writing entries with the appropriate u32 YAFFS_OBJECT_TYPE (1-5 valid), each with parent id 1 2680 26810 name yaffs 2682>0 ulelong 1 \b, type file 2683>0 ulelong 2 \b, type symlink 2684>0 ulelong 3 \b, type root or directory 2685>0 ulelong 4 \b, type hardlink 2686>0 ulelong 5 \b, type special 2687>0xA byte 0 \b, v1 root directory 2688>0xA byte !0 \b, object entry 2689>>0xA string x (name: "%s") 2690 2691# Little Endian: XX 00 00 00 01 00 00 00 FF FF YY 2692# XX: 01 - 05 (object type) 2693# YY: 00 for version 1 root directory, > 00 for version 2 (name data) 26940x1 string \x00\x00\x00\x01\x00\x00\x00\xFF\xFF 2695>0 ulelong 0 2696>0 ulelong >5 2697>0 default x YAFFS filesystem root entry (little endian) 2698>>0 use yaffs 2699 2700# Big Endian: 00 00 00 XX 00 00 00 01 FF FF YY 2701# XX: 01 - 05 (object type) 2702# YY: 00 for version 1 root directory, > 00 for version 2 (name data) 27030x4 string \x00\x00\x00\x01\xFF\xFF 2704>0 string \x00\x00\x00 2705>>0 ubelong 0 2706>>0 ubelong >5 2707>>0 default x YAFFS filesystem root entry (big endian) 2708>>>0 use \^yaffs 2709 2710# littlefs superblock 2711# From: Alexandre Iooss <erdnaxe@crans.org> 2712# URL: https://github.com/littlefs-project/littlefs/blob/v2.9.0/SPEC.md 2713# Match first commit tag, then "littlefs" magic 27144 ulelong 0xf7ff0ff0 2715>8 string littlefs littlefs superblock 2716>>22 uleshort x \b, version %u 2717>>20 uleshort x \b.%u 2718>>24 ulelong x \b, block size: %u bytes 2719>>28 ulelong x \b, %u blocks 2720 2721# EldOS Corporation SolidFS (aka SolFS) 2722# 256 bytes page size 27230x0 string \x08\x00\x4e\x57\x20 2724>0x100 string \x4e\x57\x00\x00\x01 2725>0x1A2 string \x4C\x00\x40 EldOS Corporation SolidFS, 256 bytes page size 2726 2727# 512 bytes page size 27280x0 string \x09\x00\x4e\x57\x20 2729>0x200 string \x4e\x57\x00\x00\x01 2730>0x2A2 string \x4C\x00\x40 EldOS Corporation SolidFS, 512 bytes page size 2731 2732# 1 kibibyte page size 27330x0 string \x0A\x00\x4e\x57\x20 2734>0x400 string \x4e\x57\x00\x00\x01 2735>0x4A2 string \x4C\x00\x40 EldOS Corporation SolidFS, 1KiB page size 2736 2737# 2 kibibyte page size 27380x0 string \x0B\x00\x4e\x57\x20 2739>0x800 string \x4e\x57\x00\x00\x01 2740>0x8A2 string \x4C\x00\x40 EldOS Corporation SolidFS, 2KiB page size 2741 2742# 4 kibibyte page size 27430x0 string \x0C\x00\x4e\x57\x20 2744>0x1000 string \x4e\x57\x00\x00\x01 2745>0x10A2 string \x4C\x00\x40 EldOS Corporation SolidFS, 4KiB page size 2746 2747# 8 kibibyte page size 27480x0 string \x0D\x00\x4e\x57\x20 2749>0x2000 string \x4e\x57\x00\x00\x01 2750>0x20A2 string \x4C\x00\x40 EldOS Corporation SolidFS, 8KiB page size 2751 2752# 16 kibibyte page size 27530x0 string \x0E\x00\x4e\x57\x20 2754>0x4000 string \x4e\x57\x00\x00\x01 2755>0x40A2 string \x4C\x00\x40 EldOS Corporation SolidFS, 16KiB page size 2756 2757# 32 kibibyte page size 27580x0 string \x0F\x00\x4e\x57\x20 2759>0x8000 string \x4e\x57\x00\x00\x01 2760>0x80A2 string \x4C\x00\x40 EldOS Corporation SolidFS, 32KiB page size 2761 2762# 64 kibibyte page size 27630x0 string \x10\x00\x4e\x57\x20 2764>0x10000 string \x4e\x57\x00\x00\x01 2765>0x100A2 string \x4C\x00\x40 EldOS Corporation SolidFS, 64KiB page size 2766