Skip to main content

Cyber AI România

Cum reconstruiești initramfs după un boot eșuat și repari modulele lipsă cu dracut sau initramfs-tools

Initramfs este mediul temporar încărcat de kernel înaintea sistemului principal. El conține driverele și instrumentele necesare pentru identificarea discului, decriptarea volumului, activarea LVM sau RAID și montarea partiției root. Dacă imaginea este coruptă ori îi lipsesc modulele pentru NVMe, SATA, LVM, LUKS sau filesystem, bootul se poate opri cu mesaje precum Unable to mount root fs, ALERT! UUID does not exist sau într-un shell de urgență.

Încearcă mai întâi kernelul anterior

Din meniul GRUB deschide Advanced options și pornește kernelul precedent. Dacă acesta funcționează, nu ai nevoie imediat de Live USB.

Verifică versiunile instalate:

uname -r
ls -1 /boot/vmlinuz-* /boot/initrd*
ls -1 /lib/modules/

Alege explicit kernelul defect:

KVER="6.x.x-versiunea-exacta"

Nu reconstrui imaginea pentru uname -r dacă ai pornit cu alt kernel decât cel care eșuează.

Verifică imaginea și modulele disponibile

Pe Fedora, Rocky, AlmaLinux sau RHEL-like:

lsinitrd "/boot/initramfs-${KVER}.img" | less

Pe Ubuntu sau Debian:

lsinitramfs "/boot/initrd.img-${KVER}" | less

Verifică existența modulelor kernelului:

test -d "/lib/modules/${KVER}" &&
echo "Modulele există" ||
echo "Directorul modulelor lipsește"

Dacă /lib/modules/$KVER lipsește, reconstruirea initramfs nu poate inventa driverele. Reinstalează mai întâi pachetul kernelului sau pornește un kernel funcțional.

Rulează apoi:

sudo depmod -a "$KVER"

lsinitrd afișează conținutul imaginilor produse de dracut, iar lsinitramfs oferă verificarea echivalentă pentru imaginile gestionate prin initramfs-tools.

Repară sistemul dintr-un Live USB

Dacă niciun kernel nu pornește, folosește un Live USB compatibil cu arhitectura sistemului. Identifică partițiile:

lsblk -f
sudo blkid

Montează partiția root:

sudo mount /dev/ROOT_PARTITION /mnt

Dacă ai partiții separate, montează-le în pozițiile corecte:

sudo mount /dev/BOOT_PARTITION /mnt/boot
sudo mount /dev/EFI_PARTITION /mnt/boot/efi

Pregătește chroot-ul:

for DIR in /dev /dev/pts /proc /sys /run; do
    sudo mount --bind "$DIR" "/mnt$DIR"
done

sudo chroot /mnt

Pentru LVM sau volume criptate trebuie să le activezi ori deblochezi înainte de montarea partiției root.

Reconstruiește imaginea cu initramfs-tools

Pe Ubuntu, Debian și distribuțiile derivate, creează mai întâi un backup:

cp -a "/boot/initrd.img-${KVER}" \
"/boot/initrd.img-${KVER}.bak"

Regenerează imaginea existentă:

update-initramfs -u -k "$KVER" -v

Dacă imaginea lipsește complet:

update-initramfs -c -k "$KVER" -v

Pentru un modul care nu este inclus automat, adaugă numele său în:

nano /etc/initramfs-tools/modules

Exemplu:

nvme
dm_crypt

Apoi reconstruiește:

depmod -a "$KVER"
update-initramfs -u -k "$KVER"

update-initramfs gestionează crearea și actualizarea imaginilor din /boot, în timp ce mkinitramfs este instrumentul de nivel inferior folosit pentru generarea lor.

Reconstruiește imaginea cu dracut

Pe sistemele RHEL-like, păstrează imaginea veche:

cp -a "/boot/initramfs-${KVER}.img" \
"/boot/initramfs-${KVER}.img.bak"

Reconstruiește-o:

dracut --force --verbose \
"/boot/initramfs-${KVER}.img" "$KVER"

Dacă ai confirmat că lipsește un driver necesar:

dracut --force --verbose \
  --add-drivers "nvme dm_crypt" \
  "/boot/initramfs-${KVER}.img" "$KVER"

Pentru o configurare persistentă creează:

nano /etc/dracut.conf.d/storage-drivers.conf

și adaugă:

add_drivers+=" nvme dm_crypt "

Dracut construiește modular initramfs și poate include explicit drivere prin configurație sau opțiuni de comandă.

Verifică înainte de restart

Confirmă că imaginea există și nu este goală:

ls -lh /boot/init*

Verifică modulul căutat:

lsinitrd "/boot/initramfs-${KVER}.img" |
grep -E 'nvme|dm_crypt'

sau:

lsinitramfs "/boot/initrd.img-${KVER}" |
grep -E 'nvme|dm-crypt'

Actualizează configurația GRUB unde distribuția o cere:

update-grub

sau pe unele sisteme RHEL-like:

grub2-mkconfig -o /boot/grub2/grub.cfg

Ieși din chroot, demontează în ordine inversă și repornește. Nu șterge kernelul anterior sau imaginea de backup până când noul boot, storage-ul, LUKS, LVM și filesystem-ul root au fost verificate complet.

Surse folosite

Linux Kernel Documentation — rolul initramfs în montarea filesystem-ului root.

Dracut Manual — generarea initramfs, module, drivere și configurare.

Ubuntu Manpages — update-initramfs, mkinitramfs și initramfs-tools.

Red Hat Documentation — reconstruirea imaginilor initramfs cu dracut.

Facebook
X
WhatsApp

Te-ar putea interesa si: