检测文件系统类型(无法挂载文件系统映像 .img)

hal*_*rty 8 linux mount

我正在尝试挂载文件图像,如下所示

mount -o loop /tmp/apps.img /media/apps
Run Code Online (Sandbox Code Playgroud)

但我得到以下信息:

mount: you must specify the filesystem type
Run Code Online (Sandbox Code Playgroud)

我尝试ext3:

mount -o loop /tmp/apps.img /media/apps -t ext3
Run Code Online (Sandbox Code Playgroud)

dmesg说:

error: can't find ext3 filesystem on dev loop6.
Run Code Online (Sandbox Code Playgroud)

我也试过 ext2、vfat 等。如何检测 的文件系统类型apps.img

she*_*lic 6

我会file结合使用该命令dd

带 MBR 的完整磁盘(更改file.img为您的文件名):

$ dd if=file.img | file -
/dev/stdin: x86 boot sector; partition 1: ID=0x7, [.........snip.........]
Run Code Online (Sandbox Code Playgroud)

那么它是一个完整的磁盘映像,您想要第一个分区的信息吗?

$ seq 100 | while read i ; do dd if=file.img bs=512 skip=$i | file - ; done | grep -v '/dev/stdin: data'
....garbage lines with perhaps useful informations,
if it's the case, give more info here.....
Run Code Online (Sandbox Code Playgroud)

也许它被压缩了。

$ dd if=file.img | file -
/dev/stdin: gzip compressed data, from Unix, last modified: Wed Feb 23 19:26:14 2011
Run Code Online (Sandbox Code Playgroud)

没问题,即时解压缩:

$ dd if=file.img | gunzip | file -
/dev/stdin: ASCII cpio archive (SVR4 with no CRC)
Run Code Online (Sandbox Code Playgroud)


Bry*_*yce 6

虽然@shellholic的答案有其优点,但更简单的工具是“disktype”,来自: http: //disktype.sourceforge.net/

这是一个例子:

> sudo disktype /mnt/data0/xxxx.img 

--- /mnt/data0/xxxx.img
Regular file, size 30 GiB (32212254720 bytes)
DOS/MBR partition map
Partition 1: 29.99 GiB (32201938944 bytes, 62894412 sectors from 63, bootable)
  Type 0x07 (HPFS/NTFS)
  Windows NTLDR boot loader
  NTFS file system
    Volume size 29.99 GiB (32201938432 bytes, 62894411 sectors)
Run Code Online (Sandbox Code Playgroud)

程序“blkid”和“file”可以在一些简单的情况下检测文件系统类型,但“disktype”更容易且更全面。根据您的发行版,您可能需要使用“make”自行编译。


小智 5

blkid -o value -s TYPE /tmp/apps.img