Os comandos abaixo são mais genéricos que o kernel versão 3.13.0-35.
1. Monte a partição efi e copie os arquivos do kernel lá
$ mount /dev/sda3 /boot/efi
$ mkdir -pv /boot/efi/EFI/ubuntu/
$ cp -uv /boot/vmlinuz-* /boot/initrd.img-* /boot/efi/EFI/ubuntu/ '/boot/vmlinuz-3.13.0-35-generic' -> '/boot/efi/EFI/ubuntu/vmlinuz-3.13.0-35-generic' '/boot/initrd.img-3.13.0-35-generic' -> '/boot/efi/EFI/ubuntu/initrd.img-3.13.0-35-generic'
2. Altere o nome do arquivo do kernel
Reduza o nome do arquivo do kernel removendo -generic
porque parece haver um limite de caminho de comprimento de 39 caracteres e renomear arquivo (s) de kernel para terminar em .efi
, isso garante compatibilidade com a maioria dos sistemas
$ for f in /boot/efi/EFI/ubuntu/vmlinuz-*-generic; do mv -uv -- "$f" "${f//-generic/}.efi"; done '/boot/efi/EFI/ubuntu/vmlinuz-3.13.0-35-generic' -> '/boot/efi/EFI/ubuntu/vmlinuz-3.13.0-35-generic.efi''
A abreviação do nome do arquivo de kernel do nome acima não é suficiente para um mainline kernel do dpkg
installed, porque por exemplo /EFI/ubuntu/vmlinuz-3.16.0-031600rc6.efi
sem -generic
ainda tem 40 caracteres.
3. Adicionar nova entrada ao menu de inicialização EFI
Substitua 3.13.0-35
neste exemplo pela sua versão específica do kernel
$ kv=3.13.0-35;efibootmgr -c -p 3 -L $kv -l \EFI\ubuntu\vmlinuz-$kv.efi -u root=/dev/sda1 initrd=\EFI\ubuntu\initrd.img-$kv-generic ro rootfstype=ext4 debug ignore_loglevel libata.force=dump_id crashkernel=384M-:128M
Esta nova entrada no menu de inicialização se tornará sua nova opção de inicialização padrão.
Talvez você não precise dos parâmetros de depuração adicionais debug
, ignore_loglevel
, libata.force=dump_id
e crashkernel=384M-:128M
. Initrd
deve estar presente, caso contrário, a inicialização trava em " Comutada para clocksource tsc. " porque o dispositivo raiz sda1 não pode ser aberto.