Je fonctionne sous Ubuntu 18.04, mais je pense que la version 16.04 devrait être la même. J'ai récemment eu la même question et j'ai fait quelques recherches. J'ai un disque dur externe que je voulais formater en tant que disque de sauvegarde, le formatage a duré longtemps mais il n'y avait aucune information sur le temps que cela devait prendre.
Selon https://www.kernel.org/doc/Documentation/block/stat.txt il y a un compteur du nombre de secteurs écrits. Pour un disque qui vient d'être ajouté ou une partition qui vient d'être créée, ce nombre devrait commencer près de zéro, et un format devrait être une écriture linéaire simple au lieu de sauter tout autour. Ainsi, pour ma partition /dev/sda1, le nombre de secteurs écrits peut être trouvé dans /sys/block/sda/sda1/stat en regardant le 7ème champ. Ensuite, vous devez calculer le nombre total de secteurs. Pour l'obtenir, j'ai lancé "fdisk -l /dev/sda1" et le nombre est présent sur la première ligne.
root@ubuntu:~/bin# fdisk -l /dev/sda1
Disk /dev/sda1: 4.1 TiB, 4501023490560 bytes, 8791061505 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 33553920 bytes
Alignment offset: 512 bytes
Ensuite, si vous pouvez de temps en temps vérifier la valeur de la stat et la comparer au total, vous devriez avoir une idée de la progression. Je vais inclure ici un petit Shell Shell pour imprimer le pourcentage de progression. En utilisant cela, j'ai pu estimer que le formatage de mon disque de 4,5 To prendrait environ 4 jours, après l'avoir laissé fonctionner pendant une journée. Oui, c'est un disque externe lent et bon marché.
#!/bin/bash
# set -x
# look in /sys/block for this value
DEVICE=sda
# look in /sys/block/$DEVICE for this value
PARTITION=sda1
test -b /dev/$DEVICE
test -b /dev/$PARITION
test -d /sys/block/$DEVICE
test -d /sys/block/$DEVICE/$PARTITION
TOTAL_SECTORS=`fdisk -l /dev/$PARTITION 2>/dev/null | grep ' sectors$' | cut -f3 -d, | cut -f2 -d' '`
SECTOR_SIZE=`fdisk -l /dev/$PARTITION 2>/dev/null | grep '^Units' | cut -f8 -d' '`
while [ : ]
do
WRITTEN_SECTORS=`cat /sys/block/$DEVICE/$PARTITION/stat | awk '{ print $7 }'`
PERCENTAGE=`expr $WRITTEN_SECTORS \* 100 / $TOTAL_SECTORS`
WRITTEN_MB=`expr $WRITTEN_SECTORS \* $SECTOR_SIZE / 1024 / 1024`
READ_SECTORS=`cat /sys/block/$DEVICE/$PARTITION/stat | awk '{ print $3 }'`
READ_MB=`expr $READ_SECTORS \* $SECTOR_SIZE / 1024 / 1024`
echo "Written $WRITTEN_SECTORS sectors of $TOTAL_SECTORS (${PERCENTAGE}%) (${WRITTEN_MB}MB written, ${READ_MB}MB read)"
sleep 1
done