web-dev-qa-db-fra.com

Ubuntu Unmounting drive prend une éternité

J'ai Ubuntu 12.04 et lorsque j'essaie de démonter un lecteur après la copie de données, l'écriture de données sur un périphérique prend une éternité, peut-être aussi longue et le processus de copie? Ceci est un autre fil à ce sujet: Démontage du lecteur sous Xubunt

En guise d'explication, je sauvegarde un serveur de fichiers à l'aide de rsync, en particulier grsync, un grand dossier à la fois. Je termine donc une sauvegarde de 1 TB qui peut prendre une journée complète ou 24 heures (plusieurs petits fichiers). Le démontage du lecteur peut prendre des heures, voire des jours, pour indiquer qu'il "écrit des données sur le disque". Si je le tue, je reçois des erreurs de système de fichiers et je dois les réparer sous Windows, ce qui prend un certain temps.

J'ai essayé différents disques avec des résultats similaires. Il semble qu'Ubuntu n'écrit pas ou écrit simplement et/ou provoque des erreurs de système de fichiers.

Est-il possible d'arrêter cela, peut-être de désactiver le cache de réinscription ou autre chose, juste pour m'assurer que lorsque j'écris quelque chose sur le disque, il est entièrement écrit sans qu'il soit nécessaire d'en écrire davantage lors du démontage. Merci.

7
Michael Elkin

Utilisez-vous une version 64 bits de Linux avec beaucoup de mémoire et le disque connecté est-il relativement lent (toute clé USB 2 sera admissible)?

Dans ce cas, le problème pourrait être que Linux peut verrouiller/retarder longtemps les écritures volumineuses sur des périphériques lents; cela dépend de la mise en mémoire cache de trop de données lors des écritures. C'est un bug connu qui devrait être corrigé dans les nouveaux noyaux.

Voir http://lwn.net/Articles/572911/

Solution de contournement: entrez une racine Shell (faites-le avec précaution - vous êtes maintenant root pour chaque commande)

Sudo -i

et question:

echo $((16*1024*1024)) > /proc/sys/vm/dirty_background_bytes
echo $((48*1024*1024)) > /proc/sys/vm/dirty_bytes

Si cela fonctionne, vous pouvez ajouter les deux lignes ci-dessus à votre fichier /etc/rc.local.

(Ceci est un repost de ma réponse dans U & L SE ).

6
Rmano