
Excluí acidentalmente a imagem initrd do meu sistema. Como faço para restaurá-lo?
Responder1
Esta é a resposta para a pergunta original, como extrair o initrd.lz do live CD, normalmente usado se você estiver fazendo um live CD personalizado.
copie o initrd.lz para um diretório de trabalho ( ~
)
cp /media/cdrom/initrd.lz ~
Crie um diretório para extrair o conteúdo, usarei initrd
, cd no diretório
mkdir ~/initrd
cd ~/initrd
Extrair
lzma -dc -S .lz ../initrd.lz | cpio -imvd --no-absolute-filenames
Faça as alterações necessárias e empacote novamente
cd ~/initrd
find . | cpio --quiet --dereference -o -H newc | lzma -7 > ../cusotm.initrd.lz
Seu novo initrd estará em seu diretório inicial e será chamadocusotm.initrd.lz
Responder2
A imagem initrd para cada kernel é construída no momento da instalação do kernel a partir dos módulos e aplicativos na máquina. Você pode simplesmente construir um initrd ausente usando o comando abaixo:
update-initramfs -c -k <version>
(Lembre-se de substituir a versão apropriada para o seu kernel.)
Responder3
Esta é a melhor maneira de resolver o problema do OP postado nos comentários.
Estou tentando usar o initrd de um livecd na minha instalação do Ubuntu. Excluí-lo acidentalmente. –Binoy Babu
Para fazer um initramfs, primeiro inicialize um kernel alternativo (mais antigo está bem).
Então corra
sudo mkinitramfs 3.2.0-15-generic-pae -o /boot/initrd.img-3.2.0-15-generic-pae
Não tenho o kernel pae instalado, se "3.2.0-15-generic-pae" não funcionar, liste o conteúdo de /lib/modules
para obter o nome:
ls /lib/modules
Se você não possui um kernel mais antigo, você pode inicializar um live CD e usar chroot
:
Monte sua partição raiz primeiro:
mount -t ext4 /dev/sdX /mnt
. Certifique-se de usar o nome de partição correto e digite este comando. Use comandos comolsblk
etc.blkid
para encontrar a partição correta.[Opcional] Se você tiver uma partição de inicialização separada, monte o seguinte:
mount -t ext4 /dev/sdY /mnt/boot
Em seguida, bind monte todos os sistemas de arquivos virtuais necessários para o
mkinitramfs
comando... mount --bind /proc /mnt/proc mount --bind /sys /mnt/sys mount --bind /dev /dev/procAgora mude para a
/mnt
pasta e execute omkinitramfs
comando conforme descrito acima.