Dr.*_*eon 5 command-line boot grub2 dual-boot 16.04
好的,这就是我想要实现的目标:
在 GRUB 中有一个单独的菜单选项,这样我就可以选择它并直接启动到命令行 - 即:没有桌面管理器,但保留现有的菜单项(像往常一样启动 Ubuntu)。
我已经调查过了,/etc/default/grub
但似乎没有什么可做的。而且/boot/grub/grub.cfg
它是自动生成的,所以我认为直接编辑它不是一个好主意。
我该怎么办?任何的想法?
更新:现有答案(暗示此问题是重复的)已过时。有关正确的解决方案,请参阅下面已接受的答案,该答案非常有效。(至少看起来是 16.04+)
打开文件/boot/grub/grub.cfg
并找到启动“常规”Ubuntu 的部分。
对我来说这是:
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-b8f25f1e-a169-4aaa-9f05-90e49359d865' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
set root='hd0,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 b8f25f1e-a169-4aaa-9f05-90e49359d865
else
search --no-floppy --fs-uuid --set=root b8f25f1e-a169-4aaa-9f05-90e49359d865
fi
linux /boot/vmlinuz-4.13.0-39-generic.efi.signed root=UUID=b8f25f1e-a169-4aaa-9f05-90e49359d865 ro
initrd /boot/initrd.img-4.13.0-39-generic
}
Run Code Online (Sandbox Code Playgroud)
将该部分复制到一个新文件,例如textmode.txt
.
转到/etc/grub.d
并创建(或编辑)文件40_custom
。
将以下“标题”复制到文件中:
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
Run Code Online (Sandbox Code Playgroud)
将菜单项添加textmode.txt
到文件中,但更改一些值(见下文):
menuentry 'Ubuntu (text mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-b8f25f1e-a169-4aaa-9f05-90e49359d865' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
set root='hd0,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 b8f25f1e-a169-4aaa-9f05-90e49359d865
else
search --no-floppy --fs-uuid --set=root b8f25f1e-a169-4aaa-9f05-90e49359d865
fi
linux /vmlinuz root=UUID=b8f25f1e-a169-4aaa-9f05-90e49359d865 systemd.unit=multi-user.target ro
initrd /initrd.img
}
Run Code Online (Sandbox Code Playgroud)
必须更改的值是:
'Ubuntu'
到'Ubuntu (text mode)'
(或任何你喜欢出现在菜单中)linux
行:将其更改为linux /vmlinuz root=UUID=... systemd.unit=multi-user.target ro
. 确保 UUID 保持不变。initrd
行:将其更改为/initrd.img
确保您的/
目录中有/vmlinuz
与/initrd.img
当前版本之间的符号链接。无论如何,这是默认设置。
跑
sudo update-grub
Run Code Online (Sandbox Code Playgroud)
这种方法与这个对非常相似问题的回答之间的区别在于,在最新版本的 Ubuntu 中,该行
linux /boot/vmlinuz-3.8.0-31-generic root=UUID=... ro quiet splash $vt_handoff
Run Code Online (Sandbox Code Playgroud)
需要替换为
linux /vmlinuz root=UUID=... systemd.unit=multi-user.target ro
Run Code Online (Sandbox Code Playgroud)
我不确定最近的实际含义,但我猜systemd被引入时是16.04 。
归档时间: |
|
查看次数: |
6515 次 |
最近记录: |