GNU/Linux >> Tutoriels Linux >  >> Linux

Manque de mémoire en exécutant fsck sur de grands systèmes de fichiers

Solution 1 :

Un noyau 64 bits et de grandes quantités de RAM permettront au fsck de se terminer bien et rapidement. Alternativement, il y a maintenant une option dans e2fsck qui lui dira de stocker tous ses résultats intermédiaires dans un répertoire plutôt que dans la RAM, ce qui aide énormément. Créer /etc/e2fsck.conf avec le contenu suivant :

[scratch_files]
directory = /var/cache/e2fsck

(Et, évidemment, assurez-vous que ce répertoire existe et se trouve sur une partition avec quelques Go d'espace libre). e2fsck exécutera SLLOOOOWWWWWWW, mais au moins il se terminera.

Bien sûr, cela ne fonctionnera pas avec le FS racine, mais si vous avez un échange, vous avez de toute façon dépassé le montage du FS racine.

Solution 2 :

J'ai fini par essayer ce que womble suggérait; voici quelques détails supplémentaires qui peuvent être utiles si, comme moi, vous n'avez jamais vu cette nouvelle fonctionnalité dans e2fsck auparavant.

L'option de configuration "scratch_files" pour e2fsck est devenue disponible au cours de la période de la version 1.40.x. (Dans notre cas, nous avons dû mettre à niveau vers la dernière distribution Debian pour obtenir cette fonctionnalité.)

En plus de l'option "répertoire =/var/cache/e2fsk" qui a été suggérée, il existe d'autres options de configuration pour affiner la façon dont le stockage des fichiers de travail est utilisé. J'ai utilisé "dirinfo =false", car le système de fichiers avait un grand nombre de fichiers, mais pas un si grand nombre de répertoires. Si la situation était inversée, l'option "icount" serait appropriée. Ces options ont toutes été documentées dans la page de manuel de e2fsck.conf.

BTW, Ted T'so a écrit sur ces options dans ce fil.

J'ai trouvé qu'e2fsck fonctionnait extrêmement lentement, bien plus que prévu par Ted. Il fonctionnait à 99,9 % d'utilisation du processeur la plupart du temps (sur un ancien processeur extrêmement lent), ce qui suggère que le stockage de ces structures de données sur disque au lieu de la mémoire n'était pas la principale cause du ralentissement. Il se peut que quelque chose d'autre à propos de ce qui était stocké dans le système de fichiers ait rendu e2fsck particulièrement lent. Au final, j'ai abandonné la vérification du système de fichiers pour l'instant; le système de fichiers devait être vérifié, mais n'avait pas d'erreurs (pour autant que je sache), je vais donc m'arranger pour le vérifier à un moment plus opportun lorsque nous pourrons nous permettre une panne d'une semaine.


Linux
  1. L'exécution de 'gcc' sur le fichier source C++ sous Linux donne cc1plus :allocation de mémoire insuffisante... message d'erreur

  2. Est-il possible d'allouer une grande quantité de mémoire virtuelle sous Linux ?

  3. Comment savoir quelle version de Linux j'utilise ?

  4. Quelle est la différence entre fsck et e2fsck ?

  5. Vous manquez d'espace disque sur le répertoire /home ?

Comment trouver la version du noyau Linux en cours d'exécution sur votre PC

Comment trouver les 10 principaux processus en cours d'exécution par utilisation de la mémoire et du processeur

Comment trouver les principaux processus en cours d'exécution par utilisation de la mémoire

INCOHÉRENCE INATTENDUE ; EXÉCUTER fsck MANUELLEMENT

Avoir du mal à faire fonctionner Steam Terraria sous Linux

Linux - Au secours, je n'ai plus d'inodes !