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'installation2. 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