GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie finde ich den Typ einer Img-Datei und mounte sie?

Ich muss eine .img-Datei mounten, weiß aber nicht, um welche Art von .img es sich handelt. Wie kann ich herausfinden, um welche Art von .img-Datei es sich handelt?

# mount -t auto -o ro,loop gmapsupp.img /mnt/iso/
mount: you must specify the filesystem type
# file -k gmapsupp.img 
gmapsupp.img: x86 boot sector, code offset 0x0
#

Akzeptierte Antwort:

Versuchen Sie, den Befehl fdisk -l <img file> auszuführen . Typischerweise wenn die Datei .img Dateien sind ganze Laufwerke von beispielsweise einer KVM-VM, dann sind sie technisch gesehen ein virtuelles Laufwerk.

Beispiel

Ich habe eine CentOS KVM VM, die so mit der file angezeigt wird Befehl:

$ file centostest.img 
centostest.img: x86 boot sector; partition 1: ID=0x83, active, starthead 1, startsector 63, 208782 sectors; partition 2: ID=0x8e, starthead 0, startsector 208845, 20755980 sectors, code offset 0x48

Ausführen von fdisk damit:

$ sudo /sbin/fdisk -lu /kvm/centostest.img
last_lba(): I don't know how to handle files with mode 81ed
You must set cylinders.
You can do this from the extra functions menu.

Disk /kvm/centostest.img: 0 MB, 0 bytes
255 heads, 63 sectors/track, 0 cylinders, total 0 sectors
Units = sectors of 1 * 512 = 512 bytes

              Device Boot      Start         End      Blocks   Id  System
/kvm/centostest.img1   *          63      208844      104391   83  Linux
/kvm/centostest.img2          208845    20964824    10377990   8e  Linux LVM
Partition 2 has different physical/logical endings:
     phys=(1023, 254, 63) logical=(1304, 254, 63)

Wenn Sie eine dieser Partitionen einhängen möchten, können Sie dies wie folgt tun:

fdisk (Zylinderausgabe)

  • Blockgröße von 512 Bytes und der Startblock ist 63.
  • Der Offset ist 512 * 63 =32256.

fdisk (Sektorausgabe)

  • Blockgröße von 512 Bytes und der Startblock ist 1.
  • Der Offset ist 512 * 1 =512.

Der Mount-Befehl wäre also:

in Zylindern

$ mount -o loop,offset=32256 centostest.img /mnt/tmp

So mounten Sie die andere Partition (512 * 208845 =106928640):

$ mount -o loop,offset=106928640 centostest.img /mnt/tmp

in Sektoren

$ mount -o loop,offset=512 centostest.img /mnt/tmp

So mounten Sie die andere Partition (512 * 14 =7168):

$ mount -o loop,offset=7168 centostest.img /mnt/tmp

HINWEIS

Dies funktioniert nur, wenn mount den Typ des Dateisystems innerhalb der "Partition" bestimmen kann, die Sie zu mounten versuchen. Möglicherweise müssen Sie -t auto einfügen , oder seien Sie konkret und sagen Sie mount das ist es -t ext4 zum Beispiel.

Referenzen

  • wie man eine .img-Datei einbindet

Linux
  1. So finden Sie das Dateisystem einer CD/DVD, damit es automatisch gemountet wird:[Linux]

  2. Wie finde ich den Besitzer einer Datei oder eines Verzeichnisses in Python?

  3. Wie kann man eine Datei komprimieren und die .gz-Datei behalten?

  4. Wie finde ich den Standard-Dateimanager?

  5. So kombinieren Sie den Befehl „tar“ mit „find“

So mounten und unmounten Sie Dateisysteme in Linux

So speichern Sie eine Datei in Vim / Vi und beenden den Editor

So finden Sie den gemounteten Dateisystemtyp in Linux

So finden Sie die PID und PPID eines Prozesses in Linux

So verwenden Sie Sed zum Suchen und Ersetzen einer Zeichenfolge in einer Datei

Wie finde ich den my.cnf-Speicherort von MySQL?