以下のコマンドは、カーネルバージョン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.カーネルファイル名を変更する
長さ39文字のパス制限があるように見える-generic
ため、削除してカーネルファイル名を短くし、カーネルファイルの名前を最後に変更して、ほとんどのシステムとの互換性を確保します。.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
存在する必要があります。存在しない場合、ルートデバイスsda1を開けないため、「switched to clocksource tsc。」でブートがハングします。