Le moyen le plus simple sous Linux d'obtenir la taille du disque est avec blockdev --getsz
:
sudo -s
dd bs=512 if=/dev/zero of=/dev/sdx count=2048 seek=$((`blockdev --getsz /dev/sdx` - 2048))
La taille de chaque partition est disponible en /proc/partitions
. La commande suivante affiche la taille de sdx
(en unités Ko) :
awk '$4 == "sdx" {print $3}' </proc/partitions
Ainsi :
dd if=/dev/zero of=/dev/sdx bs=1k count=1024 \
seek=$(($(awk '$4 == "sdx" {print $3}' </proc/partitions) - 1024))
L'utilisation de la recherche pour arriver à la fin du lecteur fonctionne très bien, c'est-à-dire :
chercher=$((
blockdev --getsz /dev/sda
- 2048))
Cependant, lorsque vous l'utilisez, je vous recommande soit de savoir que votre valeur de comptage est correcte, soit de ne pas l'utiliser du tout. La raison pour laquelle je dis cela est que les lecteurs peuvent avoir des secteurs de 512 octets ou des secteurs de 4k, et si vous utilisez cette solution avec un lecteur qui contient des secteurs de 4k, vous n'irez pas à la fin du lecteur avec cette valeur de comptage, et peut manquer les informations RAID à la fin (j'ai rencontré cela).