
Я случайно удалил образ 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
:
Сначала смонтируйте корневой раздел:
mount -t ext4 /dev/sdX /mnt
. Убедитесь, что вы используете правильное имя раздела и введите эту команду. Используйте такие команды, какlsblk
,blkid
и т. д., чтобы найти правильный раздел.[Необязательно] Если у вас есть отдельный загрузочный раздел, смонтированный следующим образом:
mount -t ext4 /dev/sdY /mnt/boot
Далее смонтируйте все виртуальные файловые системы, необходимые команде
mkinitramfs
... mount --bind /proc /mnt/proc mount --bind /sys /mnt/sys mount --bind /dev /dev/procТеперь перейдите в
/mnt
папку и выполнитеmkinitramfs
команду, как описано выше.