Il problema
Il sistema non può procedere con il processo di avvio, bloccato con un messaggio di errore:
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 soluzione
Se l'unità systemd chiamava lvmetad è abilitato e in esecuzione, i metadati vengono memorizzati nella cache, riducendo la scansione del disco e fornisce comandi LVM con metadati VG e stato PV. I comandi LVM eviteranno quindi di leggere le informazioni dai dischi. Se sono presenti modifiche nei gruppi di volumi e nei volumi fisici sottostanti, la cache dei metadati LVM potrebbe non avere le informazioni sulle modifiche nei dischi che possono causare il blocco di questo problema sui comandi LVM come lvm_scan-sd*.
Un altro fattore potrebbe essere che durante questa scansione, l'allocazione della memoria potrebbe non riuscire a causa di impostazioni errate o inappropriate per il parametro del kernel vm.nr_hugepages . È possibile configurare pagine enormi per allocare e dedicare una parte di memoria che non può essere utilizzata dal sistema operativo.
1. Avviare il sistema in modalità Rescue utilizzando il disco di ripristino.
CentOS / RHEL 7:come avviare in modalità di ripristino dal DVD/ISO di installazione2. Assicurati che le pagine enormi siano impostate in /etc/sysctl.conf è il valore consigliato per evitare l'errore "Impossibile allocare memoria".
3. Puoi disabilitare l'impostazione della pagina enorme in /etc/systcl.conf per vedere se questo stava causando il problema. Modifica /etc/sysctl.conf e assicurati che vm.nr_hugepages non esista o sostituiscilo con #vm.nr_hugepages = .
4. Disabilita lvmetad:
# systemctl disable lvm2-lvmetad # systemctl disable lvm2-lvmetad.socket
5. Modifica /etc/lvm/lvm.conf e sostituisci la seguente riga:
Da:
use_lvmetad = 1 to use_lvmetad = 0
6. Ricostruisci initramfs per adattare le modifiche al kernel specifico:
# cp /boot/initramfs-[kernel version].img /root # cd /boot # dracut -f -v initramfs-[kernel].img [kernel]
Ad esempio:
# dracut -f -v initramfs-3.10.0-514.el7.x86_64.img 3.10.0-514.el7.x86_64
7. Riavvia il sistema per rendere effettive le modifiche:
# shutdown -r now