KVM 虚拟机挂掉 console修复方法
一台使用多年的KVM虚拟机突然因为断电等原因无法正常启动。表现如下:virsh启动虚拟机后没有任何反应,远程SSH无法连接虚拟机。
尝试使用virsh控制台进入虚拟机,但是一直出现提示Escapecharacteros^],无法进入。
Google发现可以修改虚拟机的grub.conf设置来解决这个问题,但是虚拟机目前无法访问,这个文件根本无法修改。
所以,在KVM所在的服务器上,将虚拟机的img文件上传到某个目录(raw格式的img,具体安装方法可以在Google中搜索),直接修改/etc/grub.conf文件在虚拟机的内核行中,添加一个模块 Control=ttyS0virsh 来重启虚拟机,然后进入控制台,可以看到虚拟机的错误信息,原来是磁盘问题,重启虚拟机。
KVM虚拟机的常用操作命令整理
1、创建虚拟机的代码如下: [root@localhost~]#virt-install--name=centos1\ #生成虚拟机 --ram1024--vcpus=1\ --diskpath=/root/ centos1.img,大小e=10\ --accelerate--cdrom/root/CentOS-6.5-x86_64-bin-DVD1.iso\ --graphicsvnc,port=5921--networkbridge=br0 2、virsh其他操作代码如下: [root@localhost/] # virshstartcentos1 #启动虚拟机 [root@localhost/]#virt-viewercentos1 #如果有图形界面 是,就可以进入虚拟机界面了 [root@localhost~]#virshsh utdowncentos1 #关闭虚拟机 [root@localhost/]#virshrebootcentos1 #重新启动虚拟机 [root@localhost/]#virshsuspendcentos1 #暂停虚拟机[root@localhost t/]#virshresumecentos1 #恢复虚拟机 [root@localhost/]#virshautostartcentos1 #自动加载虚拟机 virsh参数如下: autostart#自动加载指定的虚拟机 connect#重新连接到hypervisorconsole#连接到客户会话 create#从SML创建虚拟机文件 start #启动不活动的虚拟机 destroy#删除虚拟机 Define#从 XML 文件定义虚拟机 domid#输入虚拟机的名称或 UUID 转换为IDdomuuid #将凹陷或ID转换为UUIDdominfo#查看虚拟机信息 domstate#查看虚拟机状态 domblkstat#快速获取虚拟机设备状态 domifstat#获取虚拟机网络接口状态 dumpxml#XML中的虚拟机信息 edit#编辑a virtual machine Machine XML file list #列出将要迁移的虚拟机#虚拟机到另一台主机 migrate, exit#重启非交互终端#继续重启虚拟机#继续保存虚拟机#将虚拟机的状态保存到文件转储#将虚拟机的内核保存到文件,方便分析方便shutdown#关闭虚拟机 setmem#更改内存分配 setmaxmem#更改最大内存限制 suspend#挂起虚拟机 vcpuinfo#虚拟机的CPU信息 虚拟机版本#显示Virsh版本3、virt-clone,如果我们想创建多个在同一个虚拟机中,这个命令是非常有用的代码如下:#virt-clone--connect=qemu:/// system- ocentos1-ncentos3-f /root/centos3.img 00:07成功创建克隆“centos3”。libguestfs-tools是一个虚拟机管理包,非常有用的工具 [root@localhost~]#yum-yinstalllibguestfs-tools #安装工具包 4、如果没有登录,显示镜像目录的代码如下:[ root@ localhost~]#virt-lscentos.img/home #查看centos.img的镜像文件tank 5中的/home目录 。
如果没有登录,复制文件到镜像文件的代码如下: [root@localhost~]#virshlist--all #显示所有虚拟机名称 ID name status -------- -- --------------------- --- --------- 1 Centos1 运行 2 Centos6.5 运行 - Arch 关闭 - Arch1 关闭 - Arch2关闭 - Arch3 关闭 - Arch5 关闭 - Centos3 关闭 - Ubuntu 关闭 - Ubuntu1 关闭 [root@localhost~]#virt-copy-out-dcentos1 /etc/passwd/tmp#将Centos1中的文件复制到tmp 6.检查虚拟机的分区状态。
代码如下: [root@localhost~]#virt-filesystems-dcentos1 /dev/sda1 /dev/VolGroup/lv_root[root@localhost~]#virt-list-partitions/root/centos.img /dev/sda1 /dev/sda2[root@localhost~]#virt-dfcentos.img 文件系统已使用 1K 块可用可用使用量% centos.i mg:/dev/sda1 495844 34510 435734 7% centos.img:/dev/VolGroup/lv_root 8780808 2842 056 5492700 33% 7、虚拟机挂载代码如下: [root@localhost~]#guestmount -a /root/centos.img -m /dev/VolGroup/lv_root--rw/mnt/usb [root@localhost~]#cd/mnt/usb/ [root@localhostusb]# ls bin dev home lib64 media mnt opt root selinux sys usr boot等lib丢失+找到misc net proc sbin srv tmp var 8,更改kvm中虚拟机内存大小的代码如下: [root@nfs~]#virsheditvm01 ##注意,直接 vi 编辑不会生效 vm01 df8604c1-dcf3-fa98-420f - 6eea7b39c395 1048576### 原来设置为1G,现在是 单位k 1048576改为1.5G 代码如下: [root@nfs~]#expr151572864/pp[root@nfs~]#virshlistIdName 1 胜 2003 3vm01 running/pp[root@nfs~]# virsh Shutdownvm01### 修改配置文件后,需要重新启动虚拟机 Shutdown /pp [root@nfs ~] #virshlist ### 确认已关闭 IDName Status ---------- - -------------------------------------------------- - -------------------------------------------------- - -------------------------------------------------- - -------------------------------------------------- - -------------------------------------------------- - --------- 1win2003 running /pp[root@nfs~]#virshstartvm01 启动它 Domainvm01started/pp[root@nfs~] #virshlistIdName 走到机器前获取 检查内存大小:代码如下: [root@vm01liuxiaojie]#free -m Totalused free share buffers cac hedMem: 1505 618 886 0 29 361-/+buffers/cache: 227 1277Swap: In 2000 0 20009 is the删除虚拟机的代码 (vm01) 如下:[root@nfsqemu]#virshundefine vm01[root@nfsqemu]#rm -f /home/data/vm0 1.img10,删除一个域代码如下:[root@nfsweb01]#virshlist--allIdNameState--- -------------------------- ---- ----1web01running## 处于工作状态- myweb01shutoff-myweb03shutoff-mywin2003shutoff-myxpshutoff-xpshutoff 代码如下: [root@nfsweb01]#virshundefineweb01 ##处于工作状态状态也可以删除! Domainweb01已未定义代码如下:[root@nfsweb01]#virshlistIdNameState--------------------------------1web01代码将会执行如下:[root@nfsweb01]#virshdestroyweb01Domainweb01销毁代码如下: [root@nfsweb01]#virshlist--all ##web01 不见了! IdNameState---------------------------------myweb01shutoff-myweb03shutoff-mywin2003shutoff-myxpshutoff-xpshutoff 代码如下: [ root @nfsweb01]#virshdefineweb01错误:无法打开文件“web01”:没有这样的文件或目录
rht-vmctl命令如何显示、开启、关闭和重置虚拟机?
本文介绍了 rht-vmctl 命令,这是一个由 Red Hat 制作的用于管理 Red Hat 训练中的 KVM 虚拟机的实用程序。
rht-vmctl的主要功能是控制两个虚拟机,即桌面和服务器,进行显示状态、启动、停止、重置等操作。
要使用此命令,您需要遵循简单的语法格式,即在命令行中键入“rht-vmctl”,后跟所需的参数。
常用参数包括:
start:用于启动指定的虚拟机,如启动桌面虚拟机。
poweroff:用于关闭虚拟机,例如关闭桌面虚拟机。
Reset:用于重置虚拟机,这会清除其当前状态并将其恢复到初始配置,例如重置桌面虚拟机。
以下是实际操作中如何使用rht-vmctl命令的几个示例:
[root@linuxcool~]#rht-vmctlviewdesktop:查看桌面虚拟机的状态。[root@linuxcool~]#rht-vmctlstartdesktop:启动虚拟桌面机。
[root@linuxcool~]#rht-vmctlpoweroffdesktop:关闭桌面虚拟机。
[root@linuxcool~]#rht-vmctlresetdesktop:重置虚拟桌面机。
07-KVM虚拟机的日常管理与配置
KVM虚拟机的管理是通过virsh命令进行的。以下是KVM设备的日常管理和配置详细信息。
查看KVM虚拟机配置文件的默认位置是/etc/libvirt/qemu/autostart,该目录是KVM虚拟机配置为开机自动启动的目录。
使用 virsh 命令来管理虚拟机。
您可以直接输入virsh命令,也可以先进入virsh命令终端然后执行命令。
要查看虚拟机的状态,请使用 virshlist 命令 查看正在运行的虚拟机 要查看所有虚拟机(包括其关闭状态),请使用 virshlist --all。
要启动虚拟机,请使用 virshstartVM1 命令。
要强制关闭或关闭虚拟机,请使用 virshshutdownVM1 或 virshdestroyVM1 命令。
通过配置文件运行虚拟机,使用命令virshcreate /etc/libvirt/qemu/VM1.xml。
要将虚拟机配置为在启动时自动启动,请使用 virshautostartVM1 命令。
该命令将配置文件链接到autorun目录,实现启动时自动启动。
要导出虚拟机配置,请使用 virshdumpxmlVM1>VM1-copy.xml 命令。
此过程备份当前虚拟机配置。
要定义和取消定义 KVM 虚拟机,请使用 virshundefineVM2 命令删除 xml 配置文件,但不删除磁盘文件。
要编辑 KVM 虚拟机配置文件,请使用 virsheditVM1 命令进入虚拟机 xml 配置文件编辑模式。
直接编辑xml文件不生效。
要挂起和恢复虚拟机,请使用 virshsuspendVM1 挂起虚拟机并使用 virshresumeVM1 恢复虚拟机。
其他运行命令包括使用 virshdomstateVM1 查询虚拟机的状态、使用 virshdomblklistVM1 命令检查虚拟机的磁盘使用情况、使用 virshconsoleVM1 命令访问虚拟机的控制台、使用 virshvncdisplayVM1 命令启动虚拟机的 VNC服务器。