Como restauro uma imagem initrd apagada acidentalmente?

4

Eu apaguei acidentalmente a imagem initrd no meu sistema. Como faço para restaurá-lo?

    
por Binoy Babu 17.03.2012 / 00:07

3 respostas

6

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, eu 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 que você precisar, re-empacote

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

Seu novo initrd estará no seu diretório pessoal e será chamado cusotm.initrd.lz

    
por Panther 17.03.2012 / 00:18
4

Esta é a melhor maneira de resolver o problema do OP postado nos comentários

  

Eu estou tentando usar o initrd a partir de um liveecd na minha instalação do Ubuntu. Excluiu acidentalmente. - Binoy Babu

Para criar um initramfs, primeiro inicialize um kernel alternativo (quanto mais velho)

Em seguida, execute

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

Eu 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 tem um kernel 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 da partição correto e digite este comando. Use comandos como lsblk , blkid etc. para encontrar a partição correta.

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

  3. Próxima ligação monte todos os sistemas de arquivos virtuais necessários pelo comando makeinitramfs ... mount --bind / proc / mnt / proc mount --bind / sys / mnt / sys mount --bind / dev / dev / proc

  4. Agora mude para a pasta /mnt e execute o comando makeinitramfs , conforme descrito acima.

por Panther 17.03.2012 / 00:51
3

A imagem initrd para cada kernel é construída no momento da instalação do kernel a partir dos módulos e aplicativos da máquina. Você pode simplesmente criar um initrd ausente usando o comando abaixo:

update-initramfs -c -k <version>

(Lembre-se de substituir a versão apropriada para o seu kernel.)

    
por Andy 17.04.2012 / 16:20

Tags