Приведенные ниже команды являются более общими, чем только для версии ядра 3.13.0-35.
1. Смонтируйте раздел efi и скопируйте туда файлы ядра
$ 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. Измените имя файла ядра
Сократите имя файла ядра, удалив его, -generic
поскольку, как представляется, существует ограничение длины пути в 39 символов и переименование файла (-ов) ядра для завершения .efi
, это обеспечивает совместимость с большинством систем.
$ 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'`
Вышеуказанное сокращение имени файла имени ядра недостаточно для dpkg
установленного основного ядра , потому что, например, /EFI/ubuntu/vmlinuz-3.16.0-031600rc6.efi
без -generic
по-прежнему имеет длину 40 символов.
3. Добавить новую запись в меню загрузки EFI
Замените 3.13.0-35
в этом примере вашу конкретную версию ядра
$ 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
Этот новый пункт меню загрузки станет вашим новым выбором по умолчанию.
Вы , возможно , не нужны дополнительные параметры отладки debug
, ignore_loglevel
, libata.force=dump_id
и crashkernel=384M-:128M
. Initrd
должен присутствовать, иначе загрузка зависает на « Switched to clocksource tsc. », потому что корневое устройство sda1 не может быть открыто.