Dies ist eine häufig gestellte Frage - insbesondere in der heutigen Zeit der virtuellen Umgebungen. Leider ist die Antwort nicht so einfach, wie man vielleicht annehmen könnte.
dd ist die offensichtliche erste Wahl, aber dd ist im Wesentlichen eine Kopie, und das zwingt Sie, jeden Datenblock zu schreiben (also den Dateiinhalt zu initialisieren)... Und diese Initialisierung ist es, die so viel E/A-Zeit in Anspruch nimmt. (Möchten Sie, dass es noch länger dauert? Verwenden Sie /dev/random 代わりに /dev/zero ! Dann verbrauchen Sie sowohl CPU- als auch I/O-Zeit!) Letztendlich ist dd jedoch eine schlechte Wahl (obwohl es im Wesentlichen der Standard ist, der von den VM "create" GUIs verwendet wird). z.B.:
dd if=/dev/zero of=./gentoo_root.img bs=4k iflag=fullblock,count_bytes count=10G
abschneiden. ist eine weitere Möglichkeit - und wahrscheinlich die schnellste... Das liegt aber daran, dass dabei eine "Sparse-Datei" erstellt wird. Im Wesentlichen ist eine Sparse-Datei ein Abschnitt auf der Festplatte, der viele gleiche Daten enthält, und das zugrundeliegende Dateisystem "betrügt", indem es nicht wirklich alle Daten speichert, sondern nur "vorgibt", dass sie alle da sind. Wenn Sie also truncate verwenden, um ein 20-GB-Laufwerk für Ihre VM zu erstellen, weist das Dateisystem nicht wirklich 20 GB zu, sondern schummelt und sagt, dass dort 20 GB mit Nullen vorhanden sind, obwohl nur eine Spur auf der Platte tatsächlich (wirklich) in Gebrauch sein kann. Z.B.:
truncate -s 10G gentoo_root.img
fallocate ist die endgültig -- und am besten -- Auswahl für die Verwendung mit der VM-Festplattenzuweisung, da es im Wesentlichen den gesamten gewünschten Speicherplatz "reserviert" (oder "zuweist"), aber nichts schreibt. Wenn Sie also fallocate verwenden, um einen 20 GB großen virtuellen Laufwerksspeicher zu erstellen, erhalten Sie wirklich eine 20 GB große Datei (keine "Sparse-Datei", und Sie haben sich nicht die Mühe gemacht, irgendetwas darauf zu schreiben - was bedeutet, dass praktisch alles darin enthalten sein könnte - wie eine brandneue Festplatte!) Z.B.:
fallocate -l 10G gentoo_root.img