Как восстановить случайно удаленный образ initrd?

Как восстановить случайно удаленный образ initrd?

Я случайно удалил образ initrd в своей системе. Как мне его восстановить?

решение1

Это ответ на изначальный вопрос: как извлечь initrd.lz из live CD, что обычно используется при создании собственного live CD.

скопируйте initrd.lz в рабочий каталог ( ~)

cp /media/cdrom/initrd.lz ~

Создайте каталог для извлечения содержимого, я буду использовать initrd, перейдите в каталог

mkdir ~/initrd
cd ~/initrd

Извлекать

lzma -dc -S .lz ../initrd.lz | cpio -imvd --no-absolute-filenames

Внесите необходимые изменения, переупакуйте

cd ~/initrd
find . | cpio --quiet --dereference -o -H newc | lzma -7 > ../cusotm.initrd.lz

Ваш новый initrd будет находиться в вашем домашнем каталоге и называтьсяcusotm.initrd.lz

решение2

Образ initrd для каждого ядра создается во время установки ядра из модулей и приложений на машине. Вы можете просто создать отсутствующий initrd с помощью следующей команды:

update-initramfs -c -k <version>

(Не забудьте указать версию, соответствующую вашему ядру.)

решение3

Это лучший способ решить проблему ОП, описанную в комментариях.

Я пытаюсь использовать initrd из livecd на моей установке ubuntu. Удалил его случайно. – Биной ​​Бабу

Чтобы создать initramfs, сначала загрузите альтернативное ядро ​​(подойдет и более старое).

Тогда беги

sudo mkinitramfs 3.2.0-15-generic-pae -o /boot/initrd.img-3.2.0-15-generic-pae

У меня не установлено ядро ​​pae, если «3.2.0-15-generic-pae» не работает, перечислите содержимое, /lib/modulesчтобы получить имя:

ls /lib/modules

Если у вас нет старого ядра, вы можете загрузить Live CD и использовать chroot:

  1. Сначала смонтируйте корневой раздел: mount -t ext4 /dev/sdX /mnt. Убедитесь, что вы используете правильное имя раздела и введите эту команду. Используйте такие команды, как lsblk, blkidи т. д., чтобы найти правильный раздел.

  2. [Необязательно] Если у вас есть отдельный загрузочный раздел, смонтированный следующим образом:mount -t ext4 /dev/sdY /mnt/boot

  3. Далее смонтируйте все виртуальные файловые системы, необходимые команде mkinitramfs... mount --bind /proc /mnt/proc mount --bind /sys /mnt/sys mount --bind /dev /dev/proc

  4. Теперь перейдите в /mntпапку и выполните mkinitramfsкоманду, как описано выше.

Связанный контент