Appearance
QEMU 虚拟机安装和使用教程
- 安装QEMU和图形话工具
sh
yum install libvirt* qemu* virt-manager -y- 其他命令
sh
启动服务:sudo systemctl start libvirtd
设置开机开启:sudo systemctl enable libvirtd
检查运行状态:sudo systemctl status libvirtd
查看虚拟机列表:virsh list --all- 启动虚拟机
sh
virt-manager &
- 新建虚拟机





- 虚拟机安装







- 虚拟机快照
sh
创建快照命令
#!/bin/bash
# 配置部分
VM_NAME="ZTGIS_FILE" # 虛擬機名稱
DISK_PATH_DATA="/run/media/root/92ed153b-6f05-47ea-8289-d30d5b7e6145/qemu/${VM_NAME}_DATA.qcow2" # 數據磁盤路徑
DISK_PATH_SYS="/run/media/root/92ed153b-6f05-47ea-8289-d30d5b7e6145/qemu/${VM_NAME}_SYS.qcow2" # 系統磁盤路徑
TIMESTAMP=$(date +'%Y%m%d%H%M%S') # 日期
SNAPSHOT_NAME="${VM_NAME}_${TIMESTAMP}" # 快照名稱=虛擬機名稱+日期
SNAPSHOT_DIR="/run/media/root/92ed153b-6f05-47ea-8289-d30d5b7e6145/qemu/snapshots" # 快照存放目錄
LOG_FILE="/run/media/root/92ed153b-6f05-47ea-8289-d30d5b7e6145/qemu/log/qemu_snapshots.log" # 快照日志文件路徑
# 檢查數據磁盤文件是否存在
if [ ! -f "$DISK_PATH_DATA" ]; then
echo "´錯誤:數據磁盤文件不存在!" >> "$LOG_FILE"
exit 1
fi
# 檢查系統磁盤文件是否存在
if [ ! -f "$DISK_PATH_SYS" ]; then
echo "錯誤:系統磁盤文件不存在!" >> "$LOG_FILE"
exit 1
fi
# 創建快照文件名
SNAPSHOT_FILENAME_DATA="${SNAPSHOT_NAME}_DATA.qcow2"
SNAPSHOT_FILENAME_SYS="${SNAPSHOT_NAME}_SYS.qcow2"
SNAPSHOT_PATH_DATA="${SNAPSHOT_DIR}/${SNAPSHOT_FILENAME_DATA}"
SNAPSHOT_PATH_SYS="${SNAPSHOT_DIR}/${SNAPSHOT_FILENAME_SYS}"
# 檢查快照存放目錄是否存在,不存在則創建
if [ ! -d "$SNAPSHOT_DIR" ]; then
mkdir -p "$SNAPSHOT_DIR"
fi
# 暫停虛擬機
#virsh suspend "$VM_NAME"
# 創建數據磁盤
echo "開始創建數據磁盤快照:$SNAPSHOT_FILENAME_DATA for VM $VM_NAME at $(date)" >> "$LOG_FILE"
qemu-img convert -O qcow2 "$DISK_PATH_DATA" "$SNAPSHOT_PATH_DATA"
# 檢查數據磁盤快照創建結果
if [ $? -eq 0 ]; then
echo "數據磁盤快照'$SNAPSHOT_FILENAME_DATA' 創建成功,存儲在 $SNAPSHOT_PATH_DATA" >> "$LOG_FILE"
else
echo "錯誤:數據磁盤快照創建失敗!" >> "$LOG_FILE"
exit 1
fi
# 創建系統磁盤
echo "開始創建系統磁盤快照 :$SNAPSHOT_FILENAME_SYS for VM $VM_NAME at $(date)" >> "$LOG_FILE"
qemu-img convert -O qcow2 "$DISK_PATH_SYS" "$SNAPSHOT_PATH_SYS"
# 檢查系統磁盤快照創建結果
if [ $? -eq 0 ]; then
echo "系統磁盤快照'$SNAPSHOT_FILENAME_SYS' 創建成功,存儲在 $SNAPSHOT_PATH_SYS" >> "$LOG_FILE"
else
echo "´錯誤:系統磁盤快照創建失敗!" >> "$LOG_FILE"
exit 1
fi
# 恢復虛擬機運行
#virsh resume "$VM_NAME"
# 結束
echo "快照創建過程結束 at $(date)" >> "$LOG_FILE"
#!/bin/bashsh
執行快照腳本:/run/media/root/92ed153b-6f05-47ea-8289-d30d5b7e6145/snapshot/create_snapshot.sh
回復快照:qemu-img snapshot -a "kylin10.0_20250609101819" /var/lib/libvirt/images/kylin10.0.qcow2
檢查快照健康狀態:qemu-img check /var/lib/libvirt/images/snapshots/kylin10.0_20250609101819.qcow2
檢查虛擬機佔用磁盤文件打進程: lsof /run/media/root/92ed153b-6f05-47ea-8289-d30d5b7e6145/qemu/ZTGIS_APP_DATA.qcow2