一直想着在 macos 上利用 qemu 整一个独立的 linux 子系统,于是学习了一下 qemu 不过一般情况来说启动虚拟机之后都直接打开了一个窗口终端,然后我就发现了 tty 重定向到终端这个有意思的东西。
1、配置 GRUB
我这里安装的操作系统是 debian,并且使用了 GNU GRUB 作为启动引导。grub 配置文件路径在 /etc/default/grub
,直接使用 nano /etc/default/grub
编辑配置文件
GRUB_CMDLINE_LINUX="text console=tty0 console=ttyS0,115200"
GRUB_TERMINAL=serial
GRUB_SERIAL_COMMAND="serial --speef=115200 --unit=0 --word=8 --parity=on --stop=1"
主要就是修改上面三个配置项目,保存配置文件后执行 update-grub
生成更新 grub 引导配置文件 /boot/grub/grub.cfg 更新成功的话在文件中应该会看到
…
serial --speef=115200 --unit=0 --word=8 --parity=on --stop=1
terminal_input serial
terminal_output serial
…
2、QEMU 无窗口启动
使用 qemu 的启动参数 -nographic
来无窗口启动虚拟机,我这边就是修改启动脚本
#!/bin/sh
qemu-system-x86_64 \
-m 8G `# 指定内存大小` \
-vga virtio \
-smp cpus=4 `# 指定 CPU 核数` \
-drive file=debian2.qcow2,if=virtio \
-cpu host `# 指定使用宿主机 CPU` \
-display default,show-cursor=on `# 显示配置` \
-nographic -serial mon:stdio `# 无窗口启动` \
-machine accel=hvf `# 指定机器类型,使用 Hypervisor.framework 虚拟化环境`
3、隐藏 GRUB 选择菜单
按道理到上面应该搞定了,但是使用的时候我发现每次启动都得等 grub 读秒选择启动系统,于是我就想着能不能把这个菜单关掉,解决方案就是将选择超时时间设置为 0 ,还是在 /etc/default/grub
配置文件,修改保存后 update-grub
更新。
GRUB_DEFAULT=0 # 默认选择项
GRUB_TIMEOUT=0 # 超时时间