GNU/Linux >> Tutoriels Linux >  >> Cent OS

« systemd-udevd :impossible d'allouer de la mémoire » et « Une tâche de démarrage est en cours d'exécution pour dev-mapper-\x2droot.device » - Problème de démarrage CentOS/RHEL 7

Le problème

Le système ne peut pas poursuivre le processus de démarrage, bloqué avec un message d'erreur :

systemd-udevd[369]: fork of '/bin/sh -c '>/tmp/.lvm_scan-sdc;'' failed: Cannot allocate memory
A start job is running for dev-mapper-\x2droot.device

La solution

Si l'unité systemd appelée lvmetad est activé et en cours d'exécution, les métadonnées sont mises en cache, ce qui réduit l'analyse du disque et fournit des commandes LVM avec les métadonnées VG et l'état PV. Les commandes LVM éviteront alors de lire les informations des disques. S'il y a des changements dans les groupes de volumes et les volumes physiques sous-jacents, le cache de métadonnées LVM peut ne pas avoir les informations sur les changements dans les disques, ce qui peut entraîner le blocage de ce problème sur les commandes LVM telles que lvm_scan-sd*.

Un autre facteur serait que lors de cette analyse, l'allocation de mémoire peut échouer en raison de paramètres incorrects ou inappropriés pour le paramètre de noyau vm.nr_hugepages . De grandes pages peuvent être configurées pour allouer et dédier une partie de la mémoire qui ne peut pas être utilisée par le système d'exploitation.

1. Démarrez le système en mode Rescue à l'aide du disque Rescue.

CentOS / RHEL 7 :Comment démarrer en mode de secours à partir du DVD/ISO d'installation

2. Assurez-vous que les paramètres de pages volumineuses dans /etc/sysctl.conf est la valeur recommandée pour éviter l'erreur "Impossible d'allouer de la mémoire".

3. Vous pouvez désactiver le paramètre de page énorme dans /etc/systcl.conf pour voir si cela était à l'origine du problème. Modifiez /etc/sysctl.conf et assurez-vous que vm.nr_hugepages n'existe pas ou remplacez-le par #vm.nr_hugepages = .

4. Désactivez lvmetad :

# systemctl disable lvm2-lvmetad
# systemctl disable lvm2-lvmetad.socket

5. Modifiez /etc/lvm/lvm.conf et remplacez la ligne suivante :

De :

use_lvmetad = 1 to use_lvmetad = 0

6. Reconstruisez initramfs pour adapter les modifications au noyau spécifique :

# cp /boot/initramfs-[kernel version].img /root
# cd /boot
# dracut -f -v initramfs-[kernel].img [kernel]

Par exemple :

# dracut -f -v initramfs-3.10.0-514.el7.x86_64.img 3.10.0-514.el7.x86_64

7. Redémarrez le système pour que les modifications prennent effet :

# shutdown -r now


Cent OS
  1. Comment installer le module mod_pagespeed pour Apache dans RHEL, CentOS et Fedora à l'aide de YUM

  2. CentOS / RHEL :Comment installer et démarrer le service Apache httpd

  3. CentOS / RHEL 7 :Comprendre Kexec et Kdump

  4. "Échec de mlock :impossible d'allouer de la mémoire" Erreur de commande lvcreate dans CentOS/RHEL 7

  5. Comment configurer un port séparé pour SSH et SFTP sur CentOS/RHEL

Activer le mode passif dans FTP sur CentOS 7/RHEL 7 pour FileZilla et WinSCP

CentOS / RHEL 7 :processus de démarrage

Comment régénérer initramfs et vmlinuz pour Rescue Kernel avec le noyau actuel dans CentOS/RHEL 7

Configuration de base du serveur Master Cups et des clients pour la navigation dans CentOS/RHEL 7

"Pas d'espace disponible sur l'appareil" - problème de génération de kdump (CentOS/RHEL)

8 référentiels tiers YUM pour CentOS et RHEL