Wenn ich xz verwende, um ein Blockgerät zu komprimieren (z. B. /dev/sda1
), --verbose
wird die aktuelle Größe angezeigt, die aus der Eingabedatei gelesen wird (unten 128 MiB). Es wird jedoch nicht der Prozentsatz der gelesenen Eingabedatei angezeigt ( --- %
links). Ist es möglich, xz einen Hinweis auf die Größe dieses Geräts zu geben, damit es den Prozentsatz anzeigen kann? Beim Komprimieren einer normalen Datei zeigt xz beispielsweise 0.7 %
Folgendes an.
$ sudo xz -1ck --verbose /dev/sda1 > /dev/null
/dev/sda1 (1/1)
--- % 12.2 MiB / 128.0 MiB = 0.095 21 MiB/s 0:06
^C
$ sudo xz -1ck --verbose a_normal_file > /dev/null
a_normal_file (1/1)
0.7 % 11.6 MiB / 12.7 MiB = 0.916 2.3 MiB/s 0:05
^C
$
Antwort1
xz
kann die Größe von Partitionen nicht erkennen, da es sich nicht um normale Dateien handelt, und meldet sie daher auch nicht.
Was Sie jedoch tun könnten, ist, es mit zu verarbeiten dd if=/dev/sda1 status=progress | xz -1k --verbose > /dev/null
. Sie erhalten jedoch keine xz
Details. Sie müssten die Ausgabe jedes einzelnen in separate tty
's oder Dateien umleiten und tail
diese dann erneut ausführen.
Antwort2
Die Partitionsgröße (Kibibyte) kann von abgerufen werden /proc/partitions
, die Ausgabe kann dann wie folgt dd
durchgereicht werden :pv
$ kb=$(grep $(basename /dev/sdb1) /proc/partitions | awk '{print $3}')
$ sudo dd if=/dev/sdb1 | pv -s ${kb}K | xz -1k >/dev/null
72,2MiO 0:00:20 [2,58MiB/s] [========> ] 28% ETA 0:00:49