Como restauro uma imagem initrd excluída acidentalmente?

Como restauro uma imagem initrd excluída acidentalmente?

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/modulespara obter o nome:

ls /lib/modules

Se você não possui um kernel mais antigo, você pode inicializar um live CD e usar chroot:

  1. 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 como lsblketc. blkidpara encontrar a partição correta.

  2. [Opcional] Se você tiver uma partição de inicialização separada, monte o seguinte:mount -t ext4 /dev/sdY /mnt/boot

  3. Em seguida, bind monte todos os sistemas de arquivos virtuais necessários para o mkinitramfscomando... mount --bind /proc /mnt/proc mount --bind /sys /mnt/sys mount --bind /dev /dev/proc

  4. Agora mude para a /mntpasta e execute o mkinitramfscomando conforme descrito acima.

informação relacionada