在 debian installer 里用 qemu kvm 测试硬盘上的系统运行
场景:远程服务器上的系统不能成功联网或启动,且没有ipmi可远程诊断。
尝试:如果主机商有提供急救系统,可用qemu来启动硬盘上的系统,在vnc里查看系统的运行情况。
例子:
- sysresccd 5.3.2的急救系统,无kvm模块。使用了amd64位的内核,且程序是32位的,无法方便地编译出kvm模块使用
- 可先安装kexec-tools,然后下载debian installer的网络安装文件,修改initrd,增加自动应答文件。通过kexec来启动debian远程安装,如 kexec --command-line="auto=true priority=critical mirror/http/hostname=deb.debian.org" --initrd=initrd.gz linux
- 通过ssh远程连接到debian installer,下载debian live中的 /lib/modules/5.10.0-8-amd64/kernel/arch/x86/kvm 和 /lib/modules/5.10.0-8-amd64/kernel/virt 到相应的目录
- depmod -a # 重新扫描模块的依赖
- modprobe kvm_intel # 启用kvm模块
- wget -qO- /tmp http://www.danpros.com/content/files/vkvm.tar.gz | tar xvz -C /tmp # 下载别人打包好的qemu文件
- /tmp/qemu-system-x86_64 -net nic -net user,hostfwd=tcp::3389-:3389 -m 2048M -localtime -enable-kvm -cpu host,+nx -M pc -smp 2 -vga std -usbdevice tablet -k en-us -hda /dev/sda -boot once=c -vnc :1 # 尝试启动硬盘上的Windows系统。当然,这里如端口转发是不生效的
参考:
- https://packages.debian.org/bullseye/debian-installer/
- https://www.danpros.com/2017/09/install-windows-on-any-server-using-rescue-system-and-qemu-kvm
BusyBox v1.30.1 (Debian 1:1.30.1-7) built-in shell (ash)
Enter 'help' for a list of built-in commands.
/tmp # ls -l /dev/sd*
brw------- 1 root root 8, 0 Aug 28 08:26 /dev/sda
brw------- 1 root root 8, 1 Aug 28 08:26 /dev/sda1
brw------- 1 root root 8, 2 Aug 28 08:26 /dev/sda2
brw------- 1 root root 8, 3 Aug 28 08:26 /dev/sda3
brw------- 1 root root 8, 4 Aug 28 08:26 /dev/sda4
/tmp # /tmp/qemu-system-x86_64 -net nic -net user,hostfwd=tcp::3389-:22 -m 2048M -localtime -enable-kvm -cpu host,+nx -M pc -smp 2 -vga std -usbdev
ice tablet -k en-us -hda /dev/sda -boot once=c -vnc :1