分类 kvm虚拟机 下的文章

明白了,你想在 Xubuntu 25.10 虚拟机 上通过 Docker 安装 MongoDB。我给你一个完整、现代、最稳妥的方案。

一、前提条件
Xubuntu 已安装并更新:

bash
复制代码
sudo apt update
sudo apt upgrade -y
Docker 未安装 → 如果已经安装可以跳过。

二、安装 Docker
1️⃣ 安装依赖
bash
复制代码
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release
2️⃣ 添加 Docker 官方 GPG key
bash
复制代码
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
3️⃣ 添加 Docker 仓库
bash
复制代码
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
4️⃣ 更新 apt 并安装 Docker
bash
复制代码
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
5️⃣ 启动 Docker 并开机自启
bash
复制代码
sudo systemctl enable --now docker
sudo systemctl status docker
6️⃣ 可选:普通用户运行 Docker
bash
复制代码
sudo usermod -aG docker $USER

重新登录用户会话生效

三、拉取 MongoDB Docker 镜像
bash
复制代码
docker pull mongo
默认使用latest版

也可以指定具体版本,如 mongo:6.0

四、运行 MongoDB 容器
1️⃣ 简单启动(无持久化数据)
bash
复制代码
docker run -d --name mongodb -p 27017:27017 mongo
-d 后台运行

--name mongodb 容器名称

-p 27017:27017 将宿主机端口映射到容器

2️⃣ 持久化数据(推荐)
bash
复制代码
sudo mkdir -p /home/$USER/mongo-data

docker run -d --name mongodb \
-p 27017:27017 \
-v /home/$USER/mongo-data:/data/db \
mongo
容器 /data/db 映射到宿主机目录

这样即使容器删除,数据不会丢失

五、验证 MongoDB 是否运行
bash
复制代码
docker ps
输出中应看到 mongodb 容器状态为 Up

连接 MongoDB Shell:

bash
复制代码
docker exec -it mongodb mongosh
如果显示 MongoDB shell 提示符,说明成功启动

六、可选:Docker Compose(方便管理)
创建 docker-compose.yml:

yaml
复制代码
version: "3.9"
services:
mongo:

image: mongo:7.0
container_name: mongodb
ports:
  - "27017:27017"
volumes:
  - ./mongo-data:/data/db

启动:

bash
复制代码
docker compose up -d
💡 总结

Docker 安装 MongoDB 在 Xubuntu 25.10 上非常简单

推荐挂载宿主机目录做数据持久化

可用 Docker Compose 管理

For Xubuntu 25.10, the process is similar but with some XFCE-specific steps. Here's how to set up Chinese language support and input methods:

  1. Install Chinese Language Support
    System Language Packages
    sudo apt update
    sudo apt install language-pack-zh-hans language-pack-zh-hans-base
    Fonts (Recommended)
    sudo apt install fonts-noto-cjk fonts-wqy-microhei fonts-wqy-zenhei
  2. Install Chinese Input Method
    Option A: Fcitx5 (Modern, Recommended)
    Fcitx5 works better with newer Xubuntu versions:
    sudo apt install fcitx5 fcitx5-chinese-addons fcitx5-frontend-gtk4 fcitx5-frontend-gtk3 fcitx5-frontend-qt5
    Configure Fcitx5:
    Log out and log back in
    Run in terminal: fcitx5-configtool
    Click +​ → uncheck "Only Show Current Language"
    Search for and add:
    Pinyin​ (for simplified Chinese)
    Shuangpin​ (if you use double pinyin)
    Auto-start:
    echo "fcitx5 -d" >> ~/.xprofile
    Option B: IBus (Simpler)
    sudo apt install ibus-libpinyin ibus-gtk ibus-gtk3
    Configure IBus:
    Open Settings​ → Session and Startup
    Go to Application Autostart​ tab
    Add: ibus-daemon -drx
    Run: ibus-setupto configure
  3. Set System Language to Chinese
    Change Display Language
    Open Settings Manager​ → Language
    Click Add Language
    Select 中文 (简体)
    Drag it to the top of the list
    Log out and log back in
    Alternative: Using Terminal

    Set locale

    sudo update-locale LANG=zh_CN.UTF-8

Or for specific components

sudo update-locale LC_TIME=zh_CN.UTF-8 LC_NUMERIC=zh_CN.UTF-8

  1. Set Up Input Switching
    For Fcitx5:
    Default shortcuts:
    Switch input method: Ctrl + Space
    Switch between languages: Super + Space
    Change shortcuts:
    fcitx5-configtool
    Go to Global Options​ → Trigger Input Method
    For IBus:
    Switch input: Super + Space
    Configure: ibus-setup
  2. Fix Common Issues
    Input Method Doesn't Show

    Check if running

    fcitx5-remote # Should return 0

    If not, start it

    fcitx5 -d

Or for IBus

ibus restart
Missing Tray Icon
sudo apt install fcitx5-module-xorg
Then add to ~/.xprofile:
export GTK_IM_MODULE=fcitx5
export QT_IM_MODULE=fcitx5
export XMODIFIERS=@im=fcitx5
Font Rendering Issues

Install font config

sudo apt install fontconfig-config

Rebuild font cache

fc-cache -fv

  1. Complete Setup Script
    Run this for a complete setup:

    !/bin/bash

    Chinese support for Xubuntu 25.10

    sudo apt update
    sudo apt install -y \
    language-pack-zh-hans \
    fonts-noto-cjk \
    fonts-wqy-microhei \
    fcitx5 \
    fcitx5-chinese-addons \
    fcitx5-frontend-gtk4 \
    fcitx5-frontend-gtk3

Create config files

cat > ~/.xprofile << EOF
export GTK_IM_MODULE=fcitx5
export QT_IM_MODULE=fcitx5
export XMODIFIERS=@im=fcitx5
fcitx5 -d &
EOF

echo "Install complete. Please log out and log back in."

一、在centos7上安装kvm

http://qianlongoffice.gicp.net/index.php/archives/171/

二、kvm虚拟机镜像的选择与下载

三、设置kvm宿主机为桥接模式

四、kvm虚拟机安装中文语言包

http://qianlongoffice.gicp.net/index.php/archives/196/

五、虚拟机下安装anaconda虚拟环境

六、安装google浏览器安装google的webdriver

https://googlechromelabs.github.io/chrome-for-testing/known-good-versions-with-downloads.json
找到合适的版本
https://storage.googleapis.com/chrome-for-testing-public/147.0.7727.55/linux64/chromedriver-linux64.zip
unzip chromedriver_linux64.zip
sudo mv chromedriver /usr/local/bin/
赋予执行权限:
bash
sudo chmod +x /usr/local/bin/chromedriver
验证驱动:
bash
chromedriver --version

七、安装mangodb数据库

八、项目迁入

在 KVM 虚拟机中,Xubuntu 分率太低(通常锁定在 800x600 或 1024x768)通常是因为使用了默认的虚拟显卡驱动。要解决这个问题,我们需要从驱动配置和系统设置两个维度入手。

  1. 修改 KVM 显卡配置(宿主机操作)
    KVM 默认可能使用 cirrus 或 vga 驱动,这些驱动对高分辨率支持很差。建议切换到 virtio 或 qxl。

推荐方案: 使用 virtio(性能最好,支持动态调整)。

操作命令:
Bash

virsh edit <虚拟机名称>

找到 video部分,修改为:

<video>
  <model type='virtio' vram='65536' heads='1' primary='yes'/>
</video>

注意:修改 XML 后需要彻底关闭虚拟机(destroy)再启动(start)才能生效。

  1. 在 Xubuntu 内部调整(虚拟机操作)
    一旦显卡驱动改成了 virtio 或 qxl,你可以通过以下步骤手动调整分辨率:

A. 图形界面调整
点击左上角 Xfce 菜单 -> Settings (设置) -> Display (显示)。

在 Resolution (分辨率) 下拉菜单中选择你想要的尺寸(如 1920x1080)。

点击 Apply (应用)。

B. 命令行调整(xrandr)
如果菜单里没有你想要的分辨率,可以使用 xrandr 强制设置:

Bash

# 查看支持的输出名称,通常是 Virtual-1
xrandr

# 强制设置分辨率
xrandr --output Virtual-1 --mode 1920x1080
  1. 安装 QEMU Guest Agent (增强交互)
    安装 Guest Agent 可以让宿主机和虚拟机更好地同步窗口大小:

    Bash

    sudo apt update
    sudo apt install qemu-guest-agent spice-vdagent
    sudo systemctl enable --now qemu-guest-agent

安装 spice-vdagent 后,如果你使用 virt-viewer 或 virt-manager 查看窗口,调整窗口大小,虚拟机的分辨率会自动跟随缩放。

  1. 修改 GRUB 引导分辨率(彻底解决启动黑框)
    如果你想让虚拟机从启动画面开始就保持高分辨率:

编辑 grub 文件:sudo nano /etc/default/grub

修改或添加以下行:

Plaintext

GRUB_GFXMODE=1920x1080
GRUB_GFXPAYLOAD_LINUX=keep

更新配置:sudo update-grub 并重启。

总结建议
如果你希望体验最流畅,建议使用 virt-viewer 连接虚拟机,并确保虚拟机内安装了 spice-vdagent。这样你只需要拉伸窗口,Xubuntu 就会像原生系统一样自动适配屏幕大小。

  1. 检查硬件虚拟化支持 (CPU Requirement)

KVM 需要您的 CPU 支持硬件虚拟化扩展,即 Intel VT-x 或 AMD-V,并且需要在 BIOS 中启用。

运行以下命令检查:
Bash

grep -E '(vmx|svm)' /proc/cpuinfo

如果命令有输出(例如看到 vmx 或 svm 标志),则表示您的 CPU 支持虚拟化。

如果没有任何输出,您可能需要在服务器的 BIOS/UEFI 设置中启用虚拟化功能,或者您的 CPU 不支持 KVM。
  1. 安装 KVM 相关的软件包

使用 yum 安装 KVM 核心组件和管理工具。
Bash

sudo yum install qemu-kvm libvirt libvirt-python libguestfs-tools virt-install bridge-utils -y
qemu-kvm: KVM 虚拟机管理程序。

libvirt: 虚拟化管理工具和库(提供 libvirtd 服务)。

libvirt-python: Python 绑定,有时是某些工具的依赖。

libguestfs-tools: 用于管理虚拟机磁盘映像的工具。

virt-install: 用于从命令行创建虚拟机的工具。

bridge-utils: 用于网络桥接配置的工具。

如果您希望使用图形界面管理虚拟机 (如 virt-manager),并且您的服务器支持 X-Window 和 VNC 或 X11 转发,则可以额外安装:
Bash

sudo yum install virt-manager virt-viewer -y
  1. 启动并启用 libvirtd 服务

libvirtd 是 KVM 的核心管理守护程序。您需要启动它并设置它在系统启动时自动运行。
Bash

# 启动 libvirtd 服务
sudo systemctl start libvirtd

# 设置 libvirtd 服务开机自启
sudo systemctl enable libvirtd

# 检查服务状态(确保它是 active (running))
sudo systemctl status libvirtd
  1. 验证 KVM 模块是否加载

运行以下命令检查 KVM 内核模块是否已加载:
Bash

lsmod | grep -i kvm

如果安装成功且硬件支持已启用,您应该会看到类似 kvm_intel (Intel CPU) 或 kvm_amd (AMD CPU) 以及 kvm 的输出。

  1. 可选:配置网络桥接

默认情况下,libvirtd 会创建一个名为 virbr0 的 NAT 网络桥接。如果您希望虚拟机能够与本地 LAN 上的其他物理机直接通信(而不是通过 NAT),则需要配置网络桥接。

这个步骤比较复杂,并且取决于您的服务器网络配置(例如您使用的网卡名称,以及是否使用 NetworkManager 或传统的 network 服务)。

💡 简单 NAT 模式: 对于基础测试或如果您的虚拟机只需要访问外部网络(如互联网),默认的 NAT 模式通常就足够了,无需额外配置。

🔗 桥接模式(Bridged Networking): 如果您需要桥接,您通常需要:

找到您的主网卡配置文件(例如 /etc/sysconfig/network-scripts/ifcfg-eth0 或 ifcfg-enp3s0)。

创建一个新的桥接配置文件(例如 /etc/sysconfig/network-scripts/ifcfg-br0)。

将主网卡的配置修改为桥接的成员 (例如在主网卡配置文件中添加 BRIDGE=br0)。

在桥接配置文件中设置 IP 地址、网关等。

重启网络服务(可能需要重启服务器)。

⚠️ 警告:如果通过 SSH 连接服务器,重启网络服务(systemctl restart network 或 systemctl restart NetworkManager)可能会导致连接中断。请谨慎操作。
  1. 创建您的第一个虚拟机

您可以使用 virt-install 命令行工具来创建新的 KVM 虚拟机。

示例命令(假设您已经下载了一个 CentOS 7 ISO 镜像到 /tmp/centos7.iso):
Bash

sudo virt-install \
--name centos7-vm \
--ram 2048 \
--vcpus 2 \
--os-variant centos7 \
--disk path=/var/lib/libvirt/images/centos7-vm.qcow2,size=20 \
--network network=default \
--graphics vnc \
--location /tmp/centos7.iso

我的命令如下:

sudo virt-install \
--name=template \
--ram=2048 \
--vcpus=2 \
--os-variant=ubuntu20.04 \
--cdrom=/home/kvm/isos/xubuntu-25.10-desktop-amd64.iso \
--disk path=/home/kvm/vdisks/template.raw,size=20 \
--network bridge=br1 \
--graphics vnc,listen=0.0.0.0,port=5900 \
--boot cdrom,hd \
--noautoconsole --autostart
注:如果不知道os-variant值该怎么写,可用以下命令查看支持的版本
osinfo-query os | grep ubuntu

执行此命令后,安装程序将启动,您可以通过 VNC 客户端连接到服务器的 VNC 端口(通常是 5900 + Domain ID)来完成操作系统的安装。
如果是安装新版kali,由于centos7版本比较旧,只支持到debian9,造成无法识别光盘,无法安装?如何解决这个问题呢?
确实,CentOS 7 默认自带的 virt-install 和 osinfo-db(系统信息数据库)非常老旧(毕竟 CentOS 7 的内核和软件源停留在多年前),在它的列表里,debian9 可能已经是它能认出来的最新 Debian 系版本了。

如果系统数据库里找不到 debian12,强行写进去 virt-install 会直接报错拒绝执行。

既然受到了 CentOS 7 环境的限制,我们可以通过以下 3 种变通方案,跳过这个限制,让你的 2026 版 Kali 顺利从光盘引导:

方案一:使用 generic 兜底参数 + 强制引导顺序(最快、最省事)
既然系统认不出新版本,我们可以使用一个通用的、不带具体版本偏见的参数 generic,并配合 --boot cdrom 强制拉起光盘。

把你的命令修改为:

Bash
sudo virt-install \
--name=kali2026.1_template \
--ram=4096 \
--vcpus=4 \
--os-variant=generic \
--cdrom=/home/kvm/isos/kali-linux-2026.1-installer-amd64.iso \
--disk path=/home/disk/nvme1/kvm/vdisks/kali2026.1_template.raw,size=20,bus=virtio,format=raw \
--network bridge=br1,model=virtio \
--graphics vnc,listen=0.0.0.0,port=8900 \
--boot cdrom,hd \
--noautoconsole \
--autostart
💡 核心改动:

变更为 --os-variant=generic。

加上了 --boot cdrom,hd,这会无视一切硬件预设,强行把光驱塞到第一引导位。
7、注册虚拟机

#下面在宿主机上定义虚拟机
virsh define /etc/libvirt/qemu/template.xml  #定义虚拟机
virsh list --all #查看所有虚拟机
virsh start template #启动虚拟机

8、如何根据模板机来创建新的虚拟机,简化步骤
B站有个博主的关于kvm的视频很好,使用他的教程来完成快速部署虚拟机。
https://www.bilibili.com/video/BV1YagwzvENd?spm_id_from=333.788.player.switch&vd_source=9b80e371e50b4e6b3960c24dd1eee162&p=7
1、创建模板机
修改/etc/libvirt/qemu/模板文件.xml
。删除uudi列

。 删除网卡mac地址配置信息
2026-06-27T03:15:50.png
。修改为NAME
2026-06-27T03:11:13.png
。修改vncport端口
2026-04-03T03:53:52.png

为了使kvm虚拟机的分辨率支持的更大修改:
2026-06-27T03:18:27.png
。修改新生成的kvm虚拟机的磁盘文件名为和虚拟机名称一致
2026-04-03T04:05:14.png
window10的安装命令如下:
2026-04-03T03:59:55.png
生成之后还要手动进系统修改生成的kvm的主机名。
2、安装命令如下:
[root@bogon virtual_create]# createvm -a 192.168.222.34 -p 6905 -n kvm6905
Formatting '/home/kvm/vdisks/kvm6905.qcow2', fmt=qcow2 size=21474836480 backing_file='/home/kvm/vdisks/template.raw' encryption=off cluster_size=65536 lazy_refcounts=off
libguestfs: error: vfs_type: vfs_type_stub: /dev/sda2/root: Not a directory
libguestfs: error: mount_options: mount_options_stub: /dev/sda2/root: Not a directory
guestmount: ‘/dev/sda2/root’ could not be mounted.
guestmount: Did you mean to mount one of these filesystems?
guestmount: /dev/sda1 (unknown)
guestmount: /dev/sda2 (ext4)
sed:无法读取 /home/kvm/modify/etc/hostname:没有那个文件或目录
guestunmount: failed to unmount /home/kvm/modify: fusermount: failed to unmount /home/kvm/modify: Invalid argument

                 用户     进程号 权限   命令

/home/kvm/modify: root kernel mount /home

                 root       2695 ..c.. screen
                 root       2698 ..c.. sh
                 root       2701 F.ce. x-proxy-pp-linu
                 root       2708 ..c.. screen
                 root       2710 ..c.. sh
                 root       2712 F.ce. h9-miner-chia-l
                 qemu       6448 F.... qemu-kvm
                 qemu       9841 F.... qemu-kvm
                 qemu       9938 F.... qemu-kvm
                 qemu      11810 F.... qemu-kvm

定义域 kvm6905(从 /etc/libvirt/qemu/kvm6905.xml)

域 kvm6905 已开始
需要说明一点,脚本没有正确执行完毕,主要是挂在虚拟磁盘挂载不了,所以也修改不了主机名和ip地址。这以后再研究,不过确实可以快速创建虚拟机了,需要进入到虚拟机内部手动修改主机名;ip地址让它自动获取好了。
登录进入ubuntu修改主机名的方法:
sudo hostnamectl set-hostname kvm6905
sudo nano hosts

自动生成kali虚拟机的命令如下:生成虚拟机后还要自己改机器名
createvmkali -a 192.168.222.34 -p 8901 -n kali2026-1kvm8901

三、关于windows10虚拟机的快速创建
1、将/usr/local/bin/creatvm命令脚本再复制一份为/usr/local/bin/creatvmwin10.修改里面的windows10模板机所在的位置、并添加执行权限。
2026-04-03T06:40:42.png
2、再执行createvmwin10 -a 192.168.222.34 -p 7901 -n win10kvm7901

问题提示:
1、如何彻底删除虚拟机
。先关机 virsh destroy kvm7901
.删除配置文件和磁盘文件
virsh undefine kvm7901 --remove-all-storage

四、如何修改kvm虚拟机的硬盘格式核心数和内存大小?
1、修改内存、cpu核心数
virsh list --all
virsh shutdown win10kvm7901

如果没关

virsh destroy win10kvm7901

备份配置文件

virsh dumpxml win10kvm7901 > ~/win10kvm7901_back.xml

编辑配置文件,修改内存和cpu数量为所需

virsh edit win10kvm7901

启动虚拟机

virsh start win10kvm7901

2、将硬盘格式由qcow2改为raw

重复上面查看、关机、一系列操作,找到虚拟磁盘存放的位置/home/kvm/vdisks

切换到虚拟磁盘目录

cd /home/kvm/vdisks

执行qcow2--->raw转换

qemu-img convert -p -f qcow2 -O raw ./win10kvm7901.qcow2 ./win10kvm7901.raw

修改配置文件中虚拟硬盘格式和存放目录的内容,保存退出,重启虚拟机、

virsh edit win10kvm7901
virsh start win10kvm7901