在 debian installer 里用 qemu kvm 测试硬盘上的系统运行

场景:远程服务器上的系统不能成功联网或启动,且没有ipmi可远程诊断。
尝试:如果主机商有提供急救系统,可用qemu来启动硬盘上的系统,在vnc里查看系统的运行情况。

例子:

  1. sysresccd 5.3.2的急救系统,无kvm模块。使用了amd64位的内核,且程序是32位的,无法方便地编译出kvm模块使用
  2. 可先安装kexec-tools,然后下载debian installer的网络安装文件,修改initrd,增加自动应答文件。通过kexec来启动debian远程安装,如 kexec --command-line="auto=true priority=critical mirror/http/hostname=deb.debian.org" --initrd=initrd.gz linux
  3. 通过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 到相应的目录
  4. depmod -a # 重新扫描模块的依赖
  5. modprobe kvm_intel # 启用kvm模块
  6. wget -qO- /tmp http://www.danpros.com/content/files/vkvm.tar.gz | tar xvz -C /tmp # 下载别人打包好的qemu文件
  7. /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系统。当然,这里如端口转发是不生效的

参考:

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

标签: debian

添加新评论