Dateibasierte, dynamisch zugewiesene Festplatte unter Linux

1564
Harry

Ich kann eine reguläre Datei in einem vorhandenen Dateisystem (z. B. ext4) erstellen, in ein Blockgerät (via losetup) umwandeln und es mit einem eigenen ext4-Dateisystem formatieren.

Die obige Festplatte hat jedoch eine feste Größe.

Frage:

  1. VirtualBoxermöglicht das Erstellen von VDI-, VMDK- und VHD-Festplattentypen mit fester oder dynamischer Größe. Gibt es eine Möglichkeit, eine dateibasierte Festplatte mit dynamischer Größe für die Verwendung durch ein Linux-Host-Betriebssystem zu erstellen?

  2. Ist es möglich, eine dieser drei Arten von dateibasierten Festplatten mit dynamischer Größe außerhalb VirtualBoxeines Linux-Host-Betriebssystems einzusetzen ?

Ich bin auf Ubuntu 16.04.

2
Es gibt Tools zum Ändern der Größe der Partitionen, aber ich weiß nicht, wie Sie vorhaben, Teile der Festplatte nicht zugeordnet zu lassen. Das macht auf einer VM viel mehr Sinn. Julie Pelletier vor 7 Jahren 0
Was bedeutet "beschäftigen" in diesem Zusammenhang? Deltik vor 7 Jahren 0
@Deltik Mit "beschäftigen" meine ich, eines dieser dateibasierten Festplattenformate auf dem Host-Betriebssystem ohne VirtualBox zu verwenden. Wenn ich zum Beispiel diese dateibasierte Festplatte auf meinem Host-Betriebssystem mounte und ein Host-Programm (z. B. "cat") in eine Datei schreibt, die sich auf dieser Festplatte befindet, sollte diese Festplatte bei Bedarf automatisch erweitert werden. Harry vor 7 Jahren 0
Wenn Sie ein Mount einer Partition in einem RAW-Image schreiben und das RAW-Image ursprünglich nur spärlich erstellt wurde, wird es erweitert, da die Daten in das RAW-Image geschrieben werden. Deltik vor 7 Jahren 0
@Deltik Großartig! Ist dann die Verwendung von "qemu-img" notwendig? Ich denke, der Schlüsselpunkt in Ihrer Antwort sind ** spärliche Dateien **, von denen ich nicht wusste, dass ext4 unterstützt wird. Ich könnte eine spärliche Datei erstellen und `losetup` und` mke2fs` verwenden, richtig? Harry vor 7 Jahren 0
Ja, @Harry. Der zweite Teil meiner Antwort war meine Vermutung, was Sie mit "beschäftigen" meinen. Der Schlüssel ist in der Tat ** spärliche Dateien **, und Sie haben Recht, ein Dateisystem auf dem Loopback-Gerät der spärlichen Datei zu erstellen. Deltik vor 7 Jahren 0
Du hast meinen Tag gemacht, Kamerad! Harry vor 7 Jahren 0

1 Antwort auf die Frage

5
Deltik
  1. Ja, wenn Ihr Dateisystem spärliche Dateien unterstützt. (ext4 unterstützt spärliche Dateien.)

    So erstellen Sie ein 64GiBRohbild, disk.imgdas anfangs fast keinen Platz einnimmt:

    truncate -s 64G disk.img 
  2. Sie können das disk.imgGerät jetzt als Loopback-Block-Gerät verwenden, und es wird erweitert, während Sie darauf schreiben.


Bonusmaterial

Wenn Sie ein Festplatten-Image disk.imgin ein anderes Format konvertieren möchten, z. B. in eine physische Festplatte /dev/sdb, verwenden Sie Folgendes qemu-img:

qemu-img convert -O raw disk.img /dev/sdb 

Dies ist nützlich, wenn Sie VDI, VMDK, VHD oder andere Containerformate in RAW konvertieren möchten, um das Ausgabeabbild mit integrierten Tools wie losetup/ zu bearbeiten kpartx.

Es ist egal, in welchem ​​Format das Quellbild ist. qemu-imgkann mit mehr als VDI, VMDK, VHD und RAW-Images arbeiten. Führen Sie den folgenden Befehl aus, um eine Liste der unterstützten Bilder anzuzeigen:

 root@node51 [~]# qemu-img --help | grep 'Supported formats:' Supported formats: bochs vvfat rbd vpc parallels tftp ftp ftps raw https qcow http dmg qcow2 quorum null-aio cloop vdi null-co vhdx blkverify file vmdk host_cdrom blkdebug host_device sheepdog iscsi qed nbd 
+1 für "abgeschnitten". Der Name des Kommandos wird dem nicht gerecht, da er das Ding auch erweitern kann, und das auch spärlich! Harry vor 7 Jahren 0