UEFI 모드에서 운영 체제로만 실행되는 Ubuntu 14.04가 있으며 여기에서는 이중 부팅이 없습니다. 커널 버전은 3.13.0-24-generic입니다. EFI 파티션이 있습니다. 이 경우 EFI 파티션은 기본값이 /dev/sda1
아니라 /dev/sda3
실제로 BIOS 모드를 EFI 모드로 변환 했기 때문 입니다. grub-efi-amd64
패키지를 사용 했지만 실제로 UEFI 펌웨어 부팅 메뉴에서 GRUB 부팅 메뉴를로드합니다 (UEFI 부팅로드 \EFI\ubuntu\grubx64.efi
).
이중 부팅 메뉴 로딩 단계를 건너 뛰고 UEFI에서 커널로 직접 빠르게 부팅하고 싶습니다. 12.10는 "커널 EFI 스텁 로더"이 있기 때문에 우분투는 커넬 기능을.
Ubuntu 커널을 EFI 파티션에 복사하고 (이름을 바꿀 수 있음) UEFI 부팅 메뉴에 항목을 만들어야한다는 것을 알고 있습니다 (예 :) efibootmgr
. 이렇게하려면 정확히 어떤 터미널 명령이 필요합니까?
아래 명령은 커널 버전 3.13.0-35 전용보다 더 일반적입니다.
$ 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'
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.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. " 에서 부팅이 중단됩니다 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다