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