filesystems 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340
  1. #------------------------------------------------------------------------------
  2. # filesystems: file(1) magic for different filesystems
  3. #
  4. 0 string \366\366\366\366 PC formatted floppy with no filesystem
  5. # Sun disk labels
  6. # From /usr/include/sun/dklabel.h:
  7. 0774 beshort 0xdabe Sun disk label
  8. >0 string x '%s
  9. >>31 string >\0 \b%s
  10. >>>63 string >\0 \b%s
  11. >>>>95 string >\0 \b%s
  12. >0 string x \b'
  13. >0734 short >0 %d rpm,
  14. >0736 short >0 %d phys cys,
  15. >0740 short >0 %d alts/cyl,
  16. >0746 short >0 %d interleave,
  17. >0750 short >0 %d data cyls,
  18. >0752 short >0 %d alt cyls,
  19. >0754 short >0 %d heads/partition,
  20. >0756 short >0 %d sectors/track,
  21. >0764 long >0 start cyl %ld,
  22. >0770 long x %ld blocks
  23. # Is there a boot block written 1 sector in?
  24. >512 belong&077777777 0600407 \b, boot block present
  25. 0x1FE leshort 0xAA55 x86 boot sector
  26. >2 string OSBS \b, OS/BS MBR
  27. # J\xf6rg Jenderek <joerg.jenderek@gmx.net>
  28. >0x8C string Invalid\ partition\ table \b, MS-DOS MBR
  29. >0x9D string Invalid\ partition\ table \b, DR-DOS MBR, version 7.01 to 7.03
  30. >0x10F string Ung\201ltige\ Partitionstabelle \b, MS-DOS MBR, german version 4.10.1998, 4.10.2222
  31. >0x8B string Ung\201ltige\ Partitionstabelle \b, MS-DOS MBR, german version 5.00 to 4.00.950
  32. >0x145 string Default:\ F \b, FREE-DOS MBR
  33. >0 string \0\0\0\0 \b, extended partition table
  34. # JuMP short bootcodeoffset NOP assembler instructions will usually be EB xx 90
  35. # older drives may use E9 xx xx
  36. >0 lelong&0x009000EB 0x009000EB
  37. >0 lelong&0x000000E9 0x000000E9
  38. >>1 ubyte >37 \b, code offset 0x%x
  39. # mtools-3.9.8/msdos.h
  40. # usual values are marked with comments to get only informations of strange FAT systems
  41. # valid sectorsize are from 32 to 2048
  42. >>>11 uleshort <2049
  43. >>>>11 uleshort >31
  44. >>>>>3 string >\0 \b, OEM-ID "%8.8s"
  45. >>>>>11 uleshort >512 \b, Bytes/sector %u
  46. #>>>>>11 uleshort =512 \b, Bytes/sector %u=512 (usual)
  47. >>>>>11 uleshort <512 \b, Bytes/sector %u
  48. >>>>>13 ubyte >1 \b, sectors/cluster %u
  49. #>>>>>13 ubyte =1 \b, sectors/cluster %u (usual on Floppies)
  50. >>>>>14 uleshort >32 \b, reserved sectors %u
  51. #>>>>>14 uleshort =32 \b, reserved sectors %u (usual Fat32)
  52. #>>>>>14 uleshort >1 \b, reserved sectors %u
  53. #>>>>>14 uleshort =1 \b, reserved sectors %u (usual FAT12,FAT16)
  54. >>>>>14 uleshort <1 \b, reserved sectors %u
  55. >>>>>16 ubyte >2 \b, FATs %u
  56. #>>>>>16 ubyte =2 \b, FATs %u (usual)
  57. >>>>>16 ubyte =1 \b, FAT %u
  58. >>>>>16 ubyte >0
  59. >>>>>17 uleshort >0 \b, root entries %u
  60. #>>>>>17 uleshort =0 \b, root entries %u=0 (usual Fat32)
  61. >>>>>19 uleshort >0 \b, sectors %u (volumes <=32 MB)
  62. #>>>>>19 uleshort =0 \b, sectors %u=0 (usual Fat32)
  63. >>>>>21 ubyte >0xF0 \b, Media descriptor 0x%x
  64. #>>>>>21 ubyte =0xF0 \b, Media descriptor 0x%x (usual floppy)
  65. >>>>>21 ubyte <0xF0 \b, Media descriptor 0x%x
  66. >>>>>22 uleshort >0 \b, sectors/FAT %u
  67. #>>>>>22 uleshort =0 \b, sectors/FAT %u=0 (usual Fat32)
  68. >>>>>26 ubyte >2 \b, heads %u
  69. #>>>>>26 ubyte =2 \b, heads %u (usual floppy)
  70. >>>>>26 ubyte =1 \b, heads %u
  71. >>>>>28 ulelong >0 \b, hidden sectors %u
  72. #>>>>>28 ulelong =0 \b, hidden sectors %u (usual floppy)
  73. >>>>>32 ulelong >0 \b, sectors %u (volumes > 32 MB)
  74. #>>>>>32 ulelong =0 \b, sectors %u (volumes > 32 MB)
  75. # FAT<32 specific
  76. # NOT le FAT3=NOT 3TAF=0xCCABBEB9
  77. >>>>>82 ulelong&0xCCABBEB9 >0
  78. >>>>>>36 ubyte >0x80 \b, physical drive 0x%x
  79. #>>>>>>36 ubyte =0x80 \b, physical drive 0x%x=0x80 (usual harddisk)
  80. >>>>>>36 ubyte&0x7F >0 \b, physical drive 0x%x
  81. #>>>>>>36 ubyte =0 \b, physical drive 0x%x=0 (usual floppy)
  82. >>>>>>37 ubyte >0 \b, reserved 0x%x
  83. #>>>>>>37 ubyte =0 \b, reserved 0x%x
  84. >>>>>>38 ubyte >0x29 \b, dos < 4.0 BootSector (0x%x)
  85. >>>>>>38 ubyte <0x29 \b, dos < 4.0 BootSector (0x%x)
  86. >>>>>>38 ubyte =0x29
  87. >>>>>>>39 ulelong x \b, serial number 0x%x
  88. >>>>>>>43 string <NO\ NAME \b, label: "%11.11s"
  89. >>>>>>>43 string >NO\ NAME \b, label: "%11.11s"
  90. >>>>>>>43 string =NO\ NAME \b, unlabeled
  91. >>>>>>54 string FAT1 \b, FAT
  92. >>>>>>>54 string FAT12 \b (12 bit)
  93. >>>>>>>54 string FAT16 \b (16 bit)
  94. # FAT32 specific
  95. >>>>>82 string FAT32 \b, FAT (32 bit)
  96. >>>>>>36 ulelong x \b, sectors/FAT %u
  97. >>>>>>40 uleshort >0 \b, extension flags %u
  98. #>>>>>>40 uleshort =0 \b, extension flags %u
  99. >>>>>>42 uleshort >0 \b, fsVersion %u
  100. #>>>>>>42 uleshort =0 \b, fsVersion %u (usual)
  101. >>>>>>44 ulelong >2 \b, rootdir cluster %u
  102. #>>>>>>44 ulelong =2 \b, rootdir cluster %u
  103. #>>>>>>44 ulelong =1 \b, rootdir cluster %u
  104. >>>>>>48 uleshort >1 \b, infoSector %u
  105. #>>>>>>48 uleshort =1 \b, infoSector %u (usual)
  106. >>>>>>48 uleshort <1 \b, infoSector %u
  107. >>>>>>50 uleshort >6 \b, Backup boot sector %u
  108. #>>>>>>50 uleshort =6 \b, Backup boot sector %u (usual)
  109. >>>>>>50 uleshort <6 \b, Backup boot sector %u
  110. >>>>>>54 ulelong >0 \b, reserved1 0x%x
  111. >>>>>>58 ulelong >0 \b, reserved2 0x%x
  112. >>>>>>62 ulelong >0 \b, reserved3 0x%x
  113. # same structure as FAT1X
  114. >>>>>>64 ubyte >0x80 \b, physical drive 0x%x
  115. #>>>>>>64 ubyte =0x80 \b, physical drive 0x%x=80 (usual harddisk)
  116. >>>>>>64 ubyte&0x7F >0 \b, physical drive 0x%x
  117. #>>>>>>64 ubyte =0 \b, physical drive 0x%x=0 (usual floppy)
  118. >>>>>>65 ubyte >0 \b, reserved 0x%x
  119. >>>>>>66 ubyte >0x29 \b, dos < 4.0 BootSector (0x%x)
  120. >>>>>>66 ubyte <0x29 \b, dos < 4.0 BootSector (0x%x)
  121. >>>>>>66 ubyte =0x29
  122. >>>>>>>67 ulelong x \b, serial number 0x%x
  123. >>>>>>>71 string <NO\ NAME \b, label: "%11.11s"
  124. >>>>>>71 string >NO\ NAME \b, label: "%11.11s"
  125. >>>>>>71 string =NO\ NAME \b, unlabeled
  126. ### FATs end
  127. >0x200 lelong 0x82564557 \b, BSD disklabel
  128. # FATX
  129. 0 string FATX FATX filesystem data
  130. # Minix filesystems - Juan Cespedes <cespedes@debian.org>
  131. 0x410 leshort 0x137f Minix filesystem
  132. 0x410 beshort 0x137f Minix filesystem (big endian),
  133. >0x402 beshort !0 \b, %d zones
  134. >0x1e string minix \b, bootable
  135. 0x410 leshort 0x138f Minix filesystem, 30 char names
  136. 0x410 leshort 0x2468 Minix filesystem, version 2
  137. 0x410 leshort 0x2478 Minix filesystem, version 2, 30 char names
  138. # romfs filesystems - Juan Cespedes <cespedes@debian.org>
  139. 0 string -rom1fs-\0 romfs filesystem, version 1
  140. >8 belong x %d bytes,
  141. >16 string x named %s.
  142. # netboot image - Juan Cespedes <cespedes@debian.org>
  143. 0 lelong 0x1b031336L Netboot image,
  144. >4 lelong&0xFFFFFF00 0
  145. >>4 lelong&0x100 0x000 mode 2
  146. >>4 lelong&0x100 0x100 mode 3
  147. >4 lelong&0xFFFFFF00 !0 unknown mode
  148. 0x18b string OS/2 OS/2 Boot Manager
  149. 9564 lelong 0x00011954 Unix Fast File system (little-endian),
  150. >8404 string x last mounted on %s,
  151. #>9504 ledate x last checked at %s,
  152. >8224 ledate x last written at %s,
  153. >8401 byte x clean flag %d,
  154. >8228 lelong x number of blocks %d,
  155. >8232 lelong x number of data blocks %d,
  156. >8236 lelong x number of cylinder groups %d,
  157. >8240 lelong x block size %d,
  158. >8244 lelong x fragment size %d,
  159. >8252 lelong x minimum percentage of free blocks %d,
  160. >8256 lelong x rotational delay %dms,
  161. >8260 lelong x disk rotational speed %drps,
  162. >8320 lelong 0 TIME optimization
  163. >8320 lelong 1 SPACE optimization
  164. 9564 belong 0x00011954 Unix Fast File system (big-endian),
  165. >7168 long 0x4c41424c Apple UFS Volume
  166. >>7186 string x named %s,
  167. >>7176 belong x volume label version %d,
  168. >>7180 bedate x created on %s,
  169. >8404 string x last mounted on %s,
  170. #>9504 bedate x last checked at %s,
  171. >8224 bedate x last written at %s,
  172. >8401 byte x clean flag %d,
  173. >8228 belong x number of blocks %d,
  174. >8232 belong x number of data blocks %d,
  175. >8236 belong x number of cylinder groups %d,
  176. >8240 belong x block size %d,
  177. >8244 belong x fragment size %d,
  178. >8252 belong x minimum percentage of free blocks %d,
  179. >8256 belong x rotational delay %dms,
  180. >8260 belong x disk rotational speed %drps,
  181. >8320 belong 0 TIME optimization
  182. >8320 belong 1 SPACE optimization
  183. # ext2/ext3 filesystems - Andreas Dilger <adilger@turbolabs.com>
  184. 0x438 leshort 0xEF53 Linux
  185. >0x44c lelong x rev %d
  186. >0x43e leshort x \b.%d
  187. >0x45c lelong ^0x0000004 ext2 filesystem data
  188. >>0x43a leshort ^0x0000001 (mounted or unclean)
  189. >0x45c lelong &0x0000004 ext3 filesystem data
  190. >>0x460 lelong &0x0000004 (needs journal recovery)
  191. >0x43a leshort &0x0000002 (errors)
  192. >0x460 lelong &0x0000001 (compressed)
  193. #>0x460 lelong &0x0000002 (filetype)
  194. #>0x464 lelong &0x0000001 (sparse_super)
  195. >0x464 lelong &0x0000002 (large files)
  196. # SGI disk labels - Nathan Scott <nathans@debian.org>
  197. 0 belong 0x0BE5A941 SGI disk label (volume header)
  198. # SGI XFS filesystem - Nathan Scott <nathans@debian.org>
  199. 0 belong 0x58465342 SGI XFS filesystem data
  200. >0x4 belong x (blksz %d,
  201. >0x68 beshort x inosz %d,
  202. >0x64 beshort ^0x2004 v1 dirs)
  203. >0x64 beshort &0x2004 v2 dirs)
  204. ############################################################################
  205. # Minix-ST kernel floppy
  206. 0x800 belong 0x46fc2700 Atari-ST Minix kernel image
  207. >19 string \240\5\371\5\0\011\0\2\0 \b, 720k floppy
  208. >19 string \320\2\370\5\0\011\0\1\0 \b, 360k floppy
  209. ############################################################################
  210. # Hmmm, is this a better way of detecting _standard_ floppy images ?
  211. 19 string \320\2\360\3\0\011\0\1\0 DOS floppy 360k
  212. >0x1FE leshort 0xAA55 \b, x86 hard disk boot sector
  213. 19 string \240\5\371\3\0\011\0\2\0 DOS floppy 720k
  214. >0x1FE leshort 0xAA55 \b, x86 hard disk boot sector
  215. 19 string \100\013\360\011\0\022\0\2\0 DOS floppy 1440k
  216. >0x1FE leshort 0xAA55 \b, x86 hard disk boot sector
  217. 19 string \240\5\371\5\0\011\0\2\0 DOS floppy 720k, IBM
  218. >0x1FE leshort 0xAA55 \b, x86 hard disk boot sector
  219. 19 string \100\013\371\5\0\011\0\2\0 DOS floppy 1440k, mkdosfs
  220. >0x1FE leshort 0xAA55 \b, x86 hard disk boot sector
  221. 19 string \320\2\370\5\0\011\0\1\0 Atari-ST floppy 360k
  222. 19 string \240\5\371\5\0\011\0\2\0 Atari-ST floppy 720k
  223. # Valid media descriptor bytes for MS-DOS:
  224. #
  225. # Byte Capacity Media Size and Type
  226. # -------------------------------------------------
  227. #
  228. # F0 2.88 MB 3.5-inch, 2-sided, 36-sector
  229. # F0 1.44 MB 3.5-inch, 2-sided, 18-sector
  230. # F9 720K 3.5-inch, 2-sided, 9-sector
  231. # F9 1.2 MB 5.25-inch, 2-sided, 15-sector
  232. # FD 360K 5.25-inch, 2-sided, 9-sector
  233. # FF 320K 5.25-inch, 2-sided, 8-sector
  234. # FC 180K 5.25-inch, 1-sided, 9-sector
  235. # FE 160K 5.25-inch, 1-sided, 8-sector
  236. # FE 250K 8-inch, 1-sided, single-density
  237. # FD 500K 8-inch, 2-sided, single-density
  238. # FE 1.2 MB 8-inch, 2-sided, double-density
  239. # F8 ----- Fixed disk
  240. #
  241. # FC xxxK Apricot 70x1x9 boot disk.
  242. #
  243. # Originally a bitmap:
  244. # xxxxxxx0 Not two sided
  245. # xxxxxxx1 Double sided
  246. # xxxxxx0x Not 8 SPT
  247. # xxxxxx1x 8 SPT
  248. # xxxxx0xx Not Removable drive
  249. # xxxxx1xx Removable drive
  250. # 11111xxx Must be one.
  251. #
  252. # But now it's rather random:
  253. # 111111xx Low density disk
  254. # 00 SS, Not 8 SPT
  255. # 01 DS, Not 8 SPT
  256. # 10 SS, 8 SPT
  257. # 11 DS, 8 SPT
  258. #
  259. # 11111001 Double density 3½ floppy disk, high density 5¼
  260. # 11110000 High density 3½ floppy disk
  261. # 11111000 Hard disk any format
  262. #
  263. # CDROM Filesystems
  264. 32769 string CD001 ISO 9660 CD-ROM filesystem data
  265. # "application id" which appears to be used as a volume label
  266. >32808 string >\0 '%s'
  267. >34816 string \000CD001\001EL\ TORITO\ SPECIFICATION (bootable)
  268. 37633 string CD001 ISO 9660 CD-ROM filesystem data (raw 2352 byte sectors)
  269. 32776 string CDROM High Sierra CD-ROM filesystem data
  270. # cramfs filesystem - russell@coker.com.au
  271. 0 lelong 0x28cd3d45 Linux Compressed ROM File System data, little endian
  272. >4 lelong x size %d
  273. >8 lelong &1 version #2
  274. >8 lelong &2 sorted_dirs
  275. >8 lelong &4 hole_support
  276. >32 lelong x CRC 0x%x,
  277. >36 lelong x edition %d,
  278. >40 lelong x %d blocks,
  279. >44 lelong x %d files
  280. 0 belong 0x28cd3d45 Linux Compressed ROM File System data, big endian
  281. >4 belong x size %d
  282. >8 belong &1 version #2
  283. >8 belong &2 sorted_dirs
  284. >8 belong &4 hole_support
  285. >32 belong x CRC 0x%x,
  286. >36 belong x edition %d,
  287. >40 belong x %d blocks,
  288. >44 belong x %d files
  289. # reiserfs - russell@coker.com.au
  290. 0x10034 string ReIsErFs ReiserFS V3.5
  291. 0x10034 string ReIsEr2Fs ReiserFS V3.6
  292. >0x1002c leshort x block size %d
  293. >0x10032 leshort &2 (mounted or unclean)
  294. >0x10000 lelong x num blocks %d
  295. >0x10040 lelong 1 tea hash
  296. >0x10040 lelong 2 yura hash
  297. >0x10040 lelong 3 r5 hash
  298. # JFFS - russell@coker.com.au
  299. 0 lelong 0x34383931 Linux Journalled Flash File system, little endian
  300. 0 belong 0x34383931 Linux Journalled Flash File system, big endian
  301. # EST flat binary format (which isn't, but anyway)
  302. # From: Mark Brown <broonie@sirena.org.uk>
  303. 0 string ESTFBINR EST flat binary
  304. # Aculab VoIP firmware
  305. # From: Mark Brown <broonie@sirena.org.uk>
  306. 0 string VoIP\ Startup\ and Aculab VoIP firmware
  307. >35 string x format %s
  308. # PPCBoot image file
  309. # From: Mark Brown <broonie@sirena.org.uk>
  310. 0 belong 0x27051956 PPCBoot image
  311. >4 string PPCBoot
  312. >>12 string x version %s
  313. # JFFS2 file system
  314. 0 leshort 0x1984 Linux old jffs2 filesystem data little endian
  315. 0 lelong 0xe0011985 Linux jffs2 filesystem data little endian