Eu preciso aplicar um patch de kernel e então comecei a construir um kernel. Primeiro busquei a fonte e construí dependências com
# apt-get source linux-image-`uname -r`
# apt-get build-dep linux-image-`uname -r`
Entrando no diretório de origem, apliquei meu patch, peguei a configuração atual do kernel e executei a compilação com
# cp -vi /boot/config-`uname -r` .config
# make-kpkg --initrd --append-to-version=-test kernel-image kernel-headers
Finalmente instalei o kernel recém-construído a partir dos DEBs criados em ../
# dpkg -i linux-image-3.13.11.4-test_3.13.11.4-test-10.00.Custom_i386.deb
# dpkg -i linux-headers-3.13.11.4-test_3.13.11.4-test-10.00.Custom_i386.deb
Ao reiniciar, encontrei meu kernel no menu Grub, mas ao tentar inicializá-lo acabei com
Gave up waiting for root device
...
ALERT! /dev/disk/by-uuid/[my-correct-disk-uuid-here] does not exist.
No prompt resultante do BusyBox, tentei procurar em /dev/ e não há unidades de disco presentes, o que parece indicar que o módulo do kernel do meu controlador de disco não foi carregado (não está em /proc/modules). Como pode ser isso, quando usei a mesma versão do kernel que estou executando enquanto digito isso - ecom a mesma configuração? Construir kernels não é algo que faço diariamente, nem por prazer, então agradeceria qualquer ajuda com isso.
Editar:Devo acrescentar que tentei usar a sintaxe /dev/sd** root=
na linha de comando do Grub, com o mesmo resultado. Portanto, não é que a pesquisa do UUID falhe; o controlador de disco nem existe. Caso seja relevante, a máquina é um Thinkpad X32 com chipset 855PM da Intel (PATA HDD).
Responder1
Agora, por causa do erro UUID, sinto que é necessário verificar as informações em /etc/fstab porque é aqui que as informações do sistema de arquivos (UUID) são montadas.
Primeiro, inicialize em um kernel mais antigo ou em uma sessão de disco ativo.
Execute o seguinte comando para encontrar o UUID da sua partição raiz.
sudo blkid -o list
A saída deve ser semelhante a este exemplo:
/dev/sda1 ext4 home / bac7229a-e019-5679-931d-5e14f15ff4bc
/dev/sda2 ntfs c (not mounted) 40Ajghyr-65uB-EA5C-7y8y9t6g54j5
/dev/sda3 ext4 (not mounted) 640565a9-310b-5d6r-8d8v7-e887do893f80
/dev/sda5 ext4 (not mounted) e777547b-3a3a-7tgd-9a12-2769wsrbd92
/dev/sda6 swap <swap> d72b694e-4976-3333-hso5-7894e6s9d2
Agora, use 'nano', 'vi', 'gedit', 'mousepad' ou qualquer outro editor de texto favorito para editar ou confirmar o UUID listado para sua partição raiz em /etc/fstab. Para este exemplo, usarei nano:
sudo nano /etc/fstab
Agora, de acordo com nossas informações, nossas informações de /etc/fstab devem ser parecidas com isto, supondo que você esteja usando uma configuração de partição única não criptografada montada em " / " :
# / was on /dev/sda1 during installation
UUID=bac7229a-e019-5679-931d-5e14f15ff4bc / ext4 errors=remount-ro 0 1
# swap was on /dev/sda6 during installation
UUID=d72b694e-4976-3333-hso5-7894e6s9d2 none swap sw 0 0
Se as informações em /etc/fstab estiverem incorretas e você tiver atualizado essas informações adequadamente,tudo que você precisa fazer agora é reiniciarporque /etc/fstab é carregado após o grub e não está diretamente associado à configuração do seu initrd.img.
(O sistema lerá as informações em /etc/fstab e carregará automaticamente as partições corretas a partir daí)
Se isso não resolver o seu problema ou se as informações em /etc/fstab estiverem corretas, pode ser necessário executar:
sudo update-initramfs -v -c -k all
Você pode substituir "all" por uma versão específica do kernelse você não quiser atualizar todas as imagens initrd existentes (desta forma você pode atualizar apenas a imagem que não inicializa). Veja aqui para mais informações:https://stackoverflow.com/questions/9645073/how-to-make-an-initrd-img-in-ubuntu
Se tudo correr bem, não esqueça de executar:
sudo update-grub2
antes de reiniciar.
Por favor poste quaisquer erros.