Dernière modification le 18 février 2023 à 10:19 heures
Après la dernière mise à jour, mon Ubuntu 22.04 ne veut plus booter et bloque après l’affichage du message ‘loading initial ramdisk…error: out of memory’
Voici les étapes à suivre pour remédier à ‘Loading initial ramdisk error’
Pourquoi l’erreur ‘Loading initial ramdisk… error: out of memory’ lors du boot ?
Voici un écran complet de cette erreur ‘loading initial ramdisk‘. Comme vous pouvez le constater, cela se termine par un Kernel panic et impossible d’aller plus loin !
Loading Linux 5.15.0-56-generic... Loading initial ramdisk ... error: out of memory Press any key to continue VFS: Cannot open root device "UUID=d2fa4dcf-6a7e-48bd-86b4-f8bf17b05956" or unknown-block(0,0): error -6 PLease append a correct "root=" boot option; here are the available partitions: Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block (0,0) CPU: 2 PID: 1 Comm: swapper/0 Not tainted 5.15.0-56-generic #30-Ubuntu Hardware name: VirtualBox, innotek GmbH, Release Date: 12/01/2006 Call trace: dump_stack+0x6d/0x9a panic+0x101/0x2e3 mount_block_root+0x23f/0x2e8 mount_root+0x38/0x3a prepare_namespace+0x13f/0x194 kernel_init_freeable+0x231/0x255 ? rest_init+0xb0/0xb0 kernel_init+0xe/0x100 ret_from_fork+0x35/0x40 Kernel Offset: 0x6a00000 from 0xffffffff81000000 (relocation range_ 0xffffffff8000000-0xffffffffbffffffff) ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) ]---
Ne paniquez pas, il existe un moyen de contourner ce ‘loading initial ramdisk error’ sans pour autant passer par la case ‘réinstallation de Ubuntu 22.04’ au complet.
C’est le manque de place dans la partition /boot qui empêche le nouveau noyau de s’y déployer et provoque l’erreur ‘Loading initial ramdisk’
Pour réparer votre Ubuntu. Il vous faudra utiliser une clé USB live et accéder à votre partition grâce à la commande chroot.
La commande chroot signifie littéralement ‘change root‘, c’est à dire changer la racine. Elle permet donc d’« entrer dans » une installation de Linux avec des droits root sans booter dessus.
Un fois que vous serez dans la partition adéquate, vous pourrez la ‘réparer’ et faire en sorte que le nouveau noyau puisse se déployer sans provoquer cette fameuse ‘loading initial ramdisk error’
Étape 1: bootez sur une clé USB Ubuntu Desktop
- Bootez sur une clé USB avec l’image ISO de Ubuntu-Desktop-22.04 (créez la clé avec par exemple le programme Rufus comme expliqué ici)
- choisissez l’option ‘Try Ubuntu‘

- Adaptez au besoin votre clavier et la langue utilisée.
Étape 2: trouvez la partition root de votre Ubuntu qui ne veut plus booter
- trouvez la partition avec la commande fdisk -l
sudo fdisk -l
Disk /dev/loop0: 4 KiB, 4096 bytes, 8 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/loop1: 163,29 MiB, 171225088 bytes, 334424 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes .... Disk /dev/loop7: 284 KiB, 290816 bytes, 568 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/sda: 25 GiB, 26843545600 bytes, 52428800 sectors Disk model: VBOX HARDDISK Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: D15BF4C1-8452-4114-AF3E-58136D197378 Device Start End Sectors Size Type /dev/sda1 2048 4095 2048 1M BIOS boot /dev/sda2 4096 1054719 1050624 513M EFI System /dev/sda3 1054720 52426751 51372032 24,5G Linux filesystem Disk /dev/loop8: 49,62 MiB, 52031488 bytes, 101624 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes .... Disk /dev/loop12: 346,33 MiB, 363151360 bytes, 709280 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes
Dans notre cas, nous voyons clairement que notre Ubuntu se trouve sur la partition /dev/sda3 du disque /dev/sda.
Étape 3: chrooter sur la partition de votre Ubuntu
- pour plus de facilité, passez en root
sudo su
- faites un umount de la partition /dev/sd[XN] au cas où la partition serait déjà montée
umount /dev/sd[XN]
- Montez la partition sur un nouvel emplacement MonChroot
mkdir /mnt/MonChroot
mount /dev/sd[XN] /mnt/MonChroot
- Montez un pseudo-terminal dans le nouvel emplacement
if [ ! -d "/mnt/MonChroot/dev/pts" ]; then mkdir /mnt/MonChroot/dev/pts; fi
mount -t devpts none /mnt/MonChroot/dev/pts
- Montez les process informations dans le nouvel emplacement
mount --bind /proc /mnt/MonChroot/proc
- Montez le Devices Directory
mount --bind /dev /mnt/MonChroot/dev
- Montez le sysfs virtual file system
mount --bind /sys /mnt/MonChroot/sys
- Montez également un tmp
mount --bind /tmp /mnt/MonChroot/tmp
- Activez le networking simplement en copiant le fichier resolv.conf
cp /etc/resolv.conf /mnt/MonChroot/etc/resolv.conf
- Nous pouvons alors ‘chrooter’ vers la nouvelle destination
chroot /mnt/MonChroot /bin/bash
Pour montrer que nous sommes bien sur la bonne partition de notre Ubuntu qui ne veut plus booter, nous pouvons effectuer quelques commandes:
pwd whoami ping -c 3 google.com ls -la ...
Étape 4: apporter les modifications nécessaires
- éditez le fichier /etc/initramfs-tools/initramfs.conf
nano /etc/initramfs-tools/initramfs.conf
- changez la ligne MODULES=most en MODULES=dep pour ne charger que les modules nécessaires
- changez la ligne COMPRESS=zstd en COMPRESS=xz pour utiliser la compression de fichiers ‘xz lossless data compression’ plus efficace pour gagner de l’espace disque.
Voici le fichier initramfs.conf ainsi obtenu:
# # initramfs.conf # Configuration file for mkinitramfs(8). See initramfs.conf(5). # # Note that configuration options from this file can be overridden # by config files in the /etc/initramfs-tools/conf.d directory. # # MODULES: [ most | netboot | dep | list ] # # most - Add most filesystem and all harddrive drivers. # # dep - Try and guess which modules to load. # # netboot - Add the base modules, network modules, but skip block devices. # # list - Only include modules from the 'additional modules' list # MODULES=dep # # BUSYBOX: [ y | n | auto ] # # Use busybox shell and utilities. If set to n, klibc utilities will be used. # If set to auto (or unset), busybox will be used if installed and klibc will # be used otherwise. # BUSYBOX=auto # # COMPRESS: [ gzip | bzip2 | lz4 | lzma | lzop | xz | zstd ] # COMPRESS=xz # # DEVICE: ... # # Specify a specific network interface, like eth0 # Overridden by optional ip= or BOOTIF= bootarg # DEVICE= # # NFSROOT: [ auto | HOST:MOUNT ] # NFSROOT=auto # # RUNSIZE: ... # # The size of the /run tmpfs mount point, like 256M or 10% # Overridden by optional initramfs.runsize= bootarg # RUNSIZE=10% # # FSTYPE: ... # # The filesystem type(s) to support, or "auto" to use the current root # filesystem type # FSTYPE=auto
- mettez les fichiers initramfs et grub à jour
update-initramfs -c -k all update-grub
Étape 5: Rebootez
Votre système Ubuntu 22.04 va maintenant booter normalement.