Der einfachste Weg unter Linux, die Größe der Festplatte zu ermitteln, ist mit blockdev --getsz
:
sudo -s
dd bs=512 if=/dev/zero of=/dev/sdx count=2048 seek=$((`blockdev --getsz /dev/sdx` - 2048))
Die Größe jeder Partition ist in /proc/partitions
verfügbar . Der folgende Befehl zeigt die Größe von sdx
(in kB-Einheiten):
awk '$4 == "sdx" {print $3}' </proc/partitions
Also:
dd if=/dev/zero of=/dev/sdx bs=1k count=1024 \
seek=$(($(awk '$4 == "sdx" {print $3}' </proc/partitions) - 1024))
Die Verwendung von seek, um an das Ende des Laufwerks zu gelangen, funktioniert sehr gut, d. h.:
seek=$((blockdev --getsz /dev/sda
- 2048))
Wenn Sie dies jedoch verwenden, empfehle ich Ihnen, entweder zu wissen, dass Ihr Zählwert korrekt ist, oder es überhaupt nicht zu verwenden. Der Grund, warum ich das sage, ist, dass Laufwerke entweder 512-Byte-Sektoren oder 4k-Sektoren haben können, und wenn Sie diese Lösung mit einem Laufwerk verwenden, das 4k-Sektoren enthält, werden Sie mit diesem Zählwert nicht bis zum Ende des Laufwerks gehen. und kann die RAID-Informationen am Ende vermissen (ich bin darauf gestoßen).