====== Arbeiten mit Images ====== Images (auch: Container, Abbilder genannt) sind eine einfache und flexible Möglichkeit Blockorientiert in einer Datei zu arbeiten. Typischerweise nutzt man diese Möglichkeit beim [[linux:Backup]], zu Testzwecken, der [[forensische Analyse|forensischen Analyse]] und in der [[software:Virtualisierung]]. * Image erzeugen (Größe 1G ): dd if=/dev/zero of=image1G.img bs=1024000 count=1024 * Image erzeugen (als **sparse-Datei** = wachsende Dateien die nicht voll zugewiesen sind) z.B. einer Datei mit 128 GB:dd if=/dev/zero of=filename.img bs=1k seek=128M count=1 * Image vergrößern (um 1G ): dd if=/dev/zero bs=1024000 count=1024 >> image2G.img * manche Operationen können auch direkt auf der Image-Datei ausgeführt werden: * ext3 Dateisystem anlegen: mkfs.ext3 Image.img * Dateisystemcheck: e2fsck Image.img ===== Besonderheiten bei Anpassung von Partitionen und Dateisystemen ===== **GPT-Datenträger**: Die Vergrößerung führt dazu das der Backup-GPT nicht mehr am Ende des Gerätes ist sondern irgendwo in der mitte ist. Außerdem stimmt die Größe des Datenträgers (logischerweise) nicht mehr. Gparted kann das fixen und ist auch sonst komfortabel bei der Anpassung von Dateisystemen. ===== loop devices ===== * nächstes freie Gerät anzeigen: sudo losetup -f * **Image direkt mounten** (ohne ein device mit ''losetup'' anzulegen):sudo mount -t ext3 Image.img /media/IMAGE -o loop * Datei ''Image.img'' als Gerät ''/dev/loop0'' einrichten: losetup /dev/loop0 Image.img * Gerätedatei entfernen: losetup -d /dev/loop0 * **Partitionen**: Die /dev/loop?-Geräte kennen keine Partitionierung, daher kann immer nur auf eine Partition zugegriffen werden. * root@linux# sfdisk -d image# Partitionstabelle von /tmp/image unit: sectors /tmp/image1 : start= 32, size= 20448, Id=83, bootable [..]da die Angaben in Blöcken á 512 Byte sind, kann der Startbereich (-> offset) und das Größenlimit berechnet werden:echo $((32 * 512)) $((20448 * 512))mit diesen Angaben wird mount gefüttert:mount -o loop,offset=16384,sizelimit=10469376 image /media/image * **maximale Anzahl von Images** (mit loop) **bereits gemounted**: * **Lösung mit Neustart**: In der ''/etc/modules'' anhängen:loop max_loop=64 nach einem Neustart können 64 Images (bzw. loop-Devices) benutzt werden * **Lösung ohne Neustart** (sofort Modul "loop" neu laden):rmmod loop modprobe loop * beim laden vom [[xen:Xen]]: sudo nano /etc/modprobe.d/xenmit dem folgenden Inhalt:options loop max_loop=64 ===== qcow2 Images resizen ===== Qcow2-Image um 10G vergrößern (funktioniert nur wenn keine snapshots existieren!): qemu-img resize /path/to/image.qcow2 +10G((qemu-img befindet sich im Paket ''qemu-utils'')) Anschließend muss im System die Partion vergrößert bzw. eine neue angelegt werden (um diese z.B. in ein LVM aufzunehmen). ===== qcow2 Images zu raw konvertieren ===== qemu-img convert disk.qcow2 -O raw disk.img((qemu-img befindet sich im Paket ''qemu-utils''))