Je travaille sur un système embarqué avec la version busybox de dd. J'essaie de tester un effacement du lecteur à partir d'un utilitaire extérieur, mais dd ne lit plus le disque après l'effacement, mais me montre les données mises en cache.
Je l'ai réduit à dd comme lorsque je fais un dd initial, vois les données, redémarre mon système pour vider le cache, fais l'effacement, puis exécute à nouveau dd pour trouver tous les zéros.
Cependant, si je fais dd sur les paramètres d'usine, effacez le lecteur et refaites dd sans redémarrer, il ne me montrera pas tous les zéros jusqu'à un redémarrage.
J'ai lu dans la page de manuel GNU que dd prend en charge l'iflag opt, avec un indicateur nocache, mais busybox ne prend pas en charge cette option, c'est donc hors de question.
Ma question est de savoir comment puis-je forcer dd à relire depuis le disque plutôt que depuis le cache?
Réponses:
Tu pourrais essayer
qui laisse tomber toutes sortes de caches.
Pour plus de détails voir
/usr/src/linux/Documentation/sysctl/vm.txt
surdrop_caches
.(Remarque: la question concernait la busybox dd qui, à ce jour, ne prend toujours pas en charge
iflag=direct
.)la source
/proc
système de fichiers est désactivé dans certaines configurations intégrées de Linux.dd
de les jeter dans le processus si vous transférez une grande quantité de données.D'après la réponse de @ sendmoreinfo:
Cela n'affecte pas le cache de lecture.
la source
Les E / S directes (mode ouvert
O_DIRECT
) devraient fonctionner, mais votre noyau et / oudd
peut ne pas les prendre en charge.la source
Un petit épanouissement à l'iflag = réponse directe; fournir également une barre de progression:
Sans iflag / oflag, le pv signale qu'il est terminé et semble avoir été suspendu; mais le dd de l'appareil fonctionne toujours sur le cache.
la source