커널 업그레이드 버그로 인해 이 설정을 수행했습니다.
GRUB_DEFAULT = 4
~에/etc/default/grub
내가 처형한 것보다
sudo setup-grub
그러나 그것은 효과가 없었습니다. 내가 원하는 버전은 4.2.0-16-generic입니다. 왜냐하면 4.2.0-18 및 4.2.0-17(실제로는 나열되지 않음)이 작동하지 않기 때문입니다. 목록에서는 4.2.0-16이 4위입니다.
작동하지 않을 때 다음을 시도했습니다.
GRUB_DEFAULT = "Advanced options for Ubuntu>Ubuntu, with Linux 4.2.0-16-generic"
그리고
sudo setup-grub
그러나 여전히 작동하지 않았고 작동하지 않는 커널 버전을 열었습니다. 현재는 Ubuntu의 고급 옵션을 통해서만 수동으로 4.2.0-16에 액세스할 수 있지만 자동으로 로드되기를 원합니다. 어떤 솔루션을 추천하시겠습니까?
출력 dpkg --list | grep linux-image
:
ii linux-image-extra-4.2.0-16-generic 4.2.0-16.19 amd64 Linux kernel extra modules for version 4.2.0 on 64 bit x86 SMP
ii linux-image-extra-4.2.0-17-generic 4.2.0-17.21 amd64 Linux kernel extra modules for version 4.2.0 on 64 bit x86 SMP
ii linux-image-extra-4.2.0-18-generic 4.2.0-18.22 amd64 Linux kernel extra modules for version 4.2.0 on 64 bit x86 SMP
ii linux-image-generic 4.2.0.18.20 amd64 Generic Linux kernel image
마지막 4개 출력(커널 4.2.0이 포함된 Ubuntu 15.10의 경우에만 해당).
답변1
submenu
해당 및 라인 의 ID를 사용해야 합니다 menuentry
.
메모 "Ubuntu의 고급 옵션"은(는 submenu
) 해당 ID를 사용해야 합니다.
달리다grep -E "^\\s*(menuentry|submenu) " /boot/grub/grub.cfg
예를 들어 출력이 다음과 같은 경우:
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-7da0d9d5-45bc-40e4-b17e-18cff7a59b76' {
submenu 'Advanced options for Ubuntu' $menuentry_id_option 'gnulinux-advanced-7da0d9d5-45bc-40e4-b17e-18cff7a59b76' {
menuentry 'Ubuntu, with Linux 4.4.0-140-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-140-generic-advanced-7da0d9d5-45bc-40e4-b17e-18cff7a59b76' {
menuentry 'Ubuntu, with Linux 4.4.0-140-generic (upstart)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-140-generic-init-upstart-7da0d9d5-45bc-40e4-b17e-18cff7a59b76' {
menuentry 'Ubuntu, with Linux 4.4.0-140-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-140-generic-recovery-7da0d9d5-45bc-40e4-b17e-18cff7a59b76' {
menuentry 'Ubuntu, with Linux 4.4.0-101-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-101-generic-advanced-7da0d9d5-45bc-40e4-b17e-18cff7a59b76' {
menuentry 'Ubuntu, with Linux 4.4.0-101-generic (upstart)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-101-generic-init-upstart-7da0d9d5-45bc-40e4-b17e-18cff7a59b76' {
menuentry 'Ubuntu, with Linux 4.4.0-101-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-101-generic-recovery-7da0d9d5-45bc-40e4-b17e-18cff7a59b76' {
menuentry 'Memory test (memtest86+)' {
menuentry 'Memory test (memtest86+, serial console 115200)' {
올바른 설정은 다음과 같습니다.
GRUB_DEFAULT="gnulinux-advanced-7da0d9d5-45bc-40e4-b17e-18cff7a59b76>gnulinux-4.4.0-101-generic-advanced-7da0d9d5-45bc-40e4-b17e-18cff7a59b76"
0부터 시작하는 번호 매기기를 사용할 수도 있지만 하위 메뉴 항목을 고려해야 합니다.
GRUB_DEFAULT="1>3"
update-grub
마지막에는 달리는 것을 잊지 마십시오 .
답변2
현재 grub을 백업하십시오.
sudo cp /etc/default/grub /etc/default/grub.bak
이제 파일을 열어보세요.
sudo gedit /etc/default/grub
다른 터미널을 열고 다음을 입력하세요.
cat /boot/grub/grub.cfg | grep 4.2.0-16
다음과 같은 줄이 표시됩니다.
menuentry 'Ubuntu, Linux 4.2.0-16-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.2.0-18-generic-advanced-esx5367c-b4ug -19sd-v6j8-ty2hj01ui3kj' {..........
다음 줄을 복사하여 붙여넣으세요.
다음에서 편집됨:
GRUB_DEFAULT ="gnulinux-4.2.0-16-generic-advanced-2e2221b2-b6c7-4553-815f-67afdc924a98"
편집 대상:
GRUB_DEFAULT ="gnulinux-advanced-2e2221b2-b6c7-4553-815f-67afdc924a98>gnulinux-4.2.0-16-generic-advanced-2e2221b2-b6c7-4553-815f-67afdc924a98"
파일을 저장합니다.
이제 다음 명령을 입력하십시오.
sudo update-grub
답변3
좋아요! 해결책을 찾았습니다. PPA를 grub-customizer에 연결해야 했습니다.
sudo add-apt-repository ppa:danielrichter2007/grub-customizer
내가 그랬던 것보다 :
sudo apt-get update
다음 단계는
sudo apt-get install grub-customizer
그런 다음 Unity Dash를 통해 grub-customizer를 열고 거기에서 원하는 커널을 선택합니다! :)
답변4
GRUB_DEFAULT
삽입 에 적합한 모든 Ubuntu 커널을 나열하는 작은 bash 기능
/etc/default/grub
MENUID=$( grep -E "^\\s*(submenu) " /boot/grub/grub.cfg | grep -oP "gnuli.*(?=')" )
grep '(?<=menuentry_id_option ).gnuli\S+' /boot/grub/grub.cfg -Po | \
sed "s@'@@g" |grep -vE 'recovery|simple|gnulinux-advanced' | sed "s@^@GRUB_DEFAULT=\"${MENUID}>@; s@\$@\"@"
산출:
GRUB_DEFAULT="gnulinux-advanced-20dfee37-ad84-49b2-8c69-a54699da855d>gnulinux-6.6.10-usb2-advanced-20dfee37-ad84-49b2-8c69-a54699da855d"
GRUB_DEFAULT="gnulinux-advanced-20dfee37-ad84-49b2-8c69-a54699da855d>gnulinux-5.15.0-35-generic-advanced-20dfee37-ad84-49b2-8c69-a54699da855d"
그런 다음 하나를 선택하고 붙여넣고 /etc/default/grub
실행 update-grub
하고 재부팅하십시오.