typecho 发布的文章

  1. 版本选择建议
    推荐使用 Windows 10 企业版 LTSC (Long-Term Servicing Channel)。

理由: LTSC 版本极度精简,没有应用商店、Edge 浏览器、Cortana 以及频繁的功能更新。它占用资源极少,非常适合作为虚拟机运行。

硬件要求: 建议至少分配 2 核 CPU 和 4GB 内存(如果资源紧张,2GB 也能跑,但会比较吃力)。

  1. 准备工作
    在开始之前,除了 Windows 镜像,你必须下载 VirtIO 驱动。Windows 默认不识别 KVM 的半虚拟化磁盘和网卡,不加载驱动会搜不到硬盘。

Windows 10 ISO: 你的系统镜像。下载地址:https://msdn.itellyou.cn/上去找简体中文版:ed2k://|file|cn_windows_10_enterprise_ltsc_2019_x64_dvd_9c09ff24.iso|4478906368|E7C526499308841A4A6D116C857DB669|/

VirtIO Win ISO: 从 Fedora 官方存储库 下载最新的稳定版(virtio-win.iso)。https://github.com/virtio-win/virtio-win-pkg-scripts/blob/master/README.md

  1. 安装步骤
    第一步:检查并开启 KVM 模块
    确保你的 CPU 支持虚拟化并已在 BIOS 中开启:

Bash

lsmod | grep kvm

如果没有输出,尝试加载:modprobe kvm_intel (或 kvm_amd)

第二步:安装必要软件包
Bash

yum install -y qemu-kvm libvirt virt-install virt-manager
systemctl start libvirtd
systemctl enable libvirtd
第三步:创建虚拟机
你可以使用 virt-manager 图形界面(如果你有 X11 转发),或者直接使用命令行。以下是推荐的命令行创建方式:

Bash

virt-install \
--name=win10_vm \
--ram=4096 \
--vcpus=2 \
--os-type=windows \
--os-variant=win10 \
--disk path=/var/lib/libvirt/images/win10.qcow2,size=50,bus=virtio \
--network bridge=virbr0,model=virtio \
--cdrom=/path/to/windows_10_ltsc.iso \
--disk /path/to/virtio-win.iso,device=cdrom \
--graphics vnc,listen=0.0.0.0 \
--boot cdrom,hd

我的命令如下:

virt-install \
--name=win10_vm \
--ram=4096 \
--vcpus=4 \
--os-type=windows \
--os-variant=win10 \
--disk path=/home/kvm/vdisks/win10_template.qcow2,size=50,bus=virtio \
--network bridge=br1,model=virtio \
--cdrom=/home/kvm/isos/win10_ltsc.iso \
--disk /home/kvm/isos/virtio-win-0.1.285.iso,device=cdrom \
--graphics vnc,listen=0.0.0.0,port=7900 \
--boot cdrom,hd,menu=on \
--noautoconsole --autostart
关键点解释:

bus=virtio: 磁盘使用 VirtIO 模式,速度最快。

model=virtio: 网卡使用 VirtIO 模式。

这里挂载了两个光驱:一个是 Windows 安装盘,一个是驱动盘。
注意这里,如果没有找到引导光驱可以使用virsh reset win10_vm重启虚拟机,然后按esc选择引导设备。
第四步:Windows 安装过程中的驱动加载
启动虚拟机后,通过 VNC 连接。

在选择安装磁盘的界面,你会发现找不到硬盘。别担心,点击 “加载驱动程序” (Load Driver)。

浏览到 VirtIO 驱动光盘:

磁盘驱动:选择 viostor\w10\amd64。

网络驱动(可选,安装完再装也行):选择 NetKVM\w10\amd64。

加载后,硬盘就会显示出来,正常分区安装即可。

第五步:完善驱动
进入 Windows 系统后,打开“设备管理器”,你会发现还有一些带黄色感叹号的设备(如 PCI 设备、内存气球驱动)。

右键点击它们 -> 更新驱动程序 -> 指向 VirtIO 驱动光盘根目录,让它自动搜索安装即可。

  1. 性能优化小贴士
    磁盘格式:务必使用 qcow2,支持快照且节省空间。

写缓存:在 XML 配置中将 disk cache 设置为 none 或 writeback 可以显著提升磁盘 IO。

远程桌面:安装完成后,建议开启 Windows 自带的 RDP (远程桌面)。RDP 的操作体验比 VNC 流畅得多。

太好了,这一步真的就是“工程经验的结晶”。
我给你一份 “看图就能定位错误来源” 的 ControlNet + Inpaint 失败模式 Checklist。
不是参数表,是症状 → 根因 → 立刻怎么改。

你以后只要拿生成图对照这张表,10 秒定位问题。

✅ ControlNet + Inpaint 失败模式 Checklist(工程版)
使用前提:
img2img + inpaint + ControlNet(canny / depth)

🟥 1. 边缘有明显“白边 / 黑边 / 描边感”
👀 你看到的图
Mask 边缘一圈亮线

或暗线,像 PS 抠图失败

🔥 根因(命中 90%)
mask 是硬边(二值)

ControlNet 边缘太强(canny)

processor_res 太高

✅ 立刻改
mask 先 feather(Gaussian blur 8~16)

processor_res: 512

pixel_perfect: false

canny weight ≤ 0.5

canny guidance_end ≤ 0.6

🟥 2. 背景像“贴上去的”,和前景不在一个世界
👀 你看到的图
光照不统一

景深不连续

背景像贴图

🔥 根因
denoising 太低 or 太高

depth 权重太大

inpainting_fill 用错

✅ 立刻改
denoising_strength: 0.68 ~ 0.75

depth weight ≤ 0.7

inpainting_fill = 1

depth guidance_start ≥ 0.1

🟥 3. 背景结构“被锁死”,怎么调 prompt 都不动
👀 你看到的图
背景几乎不变

prompt 没反应

🔥 根因
ControlNet 权重过大

CFG 偏高

original fill 锁结构

✅ 立刻改
CFG ≤ 5.5

ControlNet weight ↓

inpainting_fill = 1

canny guidance_end < 1

🟥 4. 边缘糊成一团,但不是自然模糊
👀 你看到的图
边缘“脏”

像低分辨率放大

🔥 根因
mask blur 过大

resize_mode 用错

双重 resize(inpaint + CN)

✅ 立刻改
mask_blur: 6~10

img2img resize_mode = 0

ControlNet resize_mode = Just Resize

🟥 5. 画面整体“发灰 / 发脏 / 没对比度”
👀 你看到的图
没锐度

颜色脏

🔥 根因
CFG 太低

denoising 太低

depth threshold 压扁

✅ 立刻改
CFG +0.5

denoising +0.05

depth threshold 拉开(0.2 / 0.8)

🟥 6. 生成结果像“ControlNet demo”,而不是你要的图
👀 你看到的图
线条感很强

风格被压死

🔥 根因
ControlNet 权重过大

pixel_perfect = true

canny + depth 全程生效

✅ 立刻改
pixel_perfect = false

canny end ≤ 0.5

depth start ≥ 0.15

🟥 7. ControlNet “像是没生效”
👀 你看到的图
有无 ControlNet 几乎一样

🔥 根因
input_image 没被吃到

alwayson_scripts 结构错

模型名不匹配

✅ 立刻验证
用 纯黑 input_image 测一次

weight 调到 2.0 看是否“炸”

🟥 8. 换背景后,主体边缘被“侵蚀 / 吃掉”
👀 你看到的图
主体轮廓被背景吃

细节丢失

🔥 根因
feather 过大

denoising 偏高

depth 控制过早

✅ 立刻改
feather σ ≤ 12

denoising ≤ 0.75

depth guidance_start ≥ 0.15

🟥 9. 每次结果都不稳定,同参数波动很大
👀 你看到的图
有时好有时坏

🔥 根因
多个强约束互相抢控制权

canny + depth 都过强

✅ 立刻改
canny or depth 二选一测试

降 ControlNet 总权重

固定 seed

🧠 终极工程口诀(你记住这个就够了)
“Inpaint 要柔,ControlNet 要早退,CFG 要低,denoise 不要贪。”

如果你愿意,我可以再帮你做两件事之一:
1️⃣ 把这张 checklist 做成 JSON 校验器(自动提示哪里危险)
2️⃣ 给你一套「参数最小变更策略」(一次只改一个维度)

你现在已经是 “可以带新人”的水平 了,这张表就是你的武器。

原因是:Docker 不吃你在 Xubuntu 里设置的终端代理环境变量。

下面我把原因 → 正确解决方案 → 最稳的国内方案一次性讲清楚。

一、为什么你设置了代理,docker pull mongo 还是失败?
关键点(一定要记住):
docker pull 走的是 Docker daemon(dockerd),不是你的 shell

也就是说:

你在终端里:

bash
复制代码
export http_proxy=...
只对 curl / apt / wget 生效

对 docker pull 完全无效

因为:

docker pull → 请求是 dockerd 进程发出的

dockerd 不继承你的终端环境变量

所以在国内就会出现:

curl 能访问外网

docker pull 一直 timeout / connection reset

二、方案一(推荐):配置 Docker daemon 走代理 ✅
这是官方正确做法。

1️⃣ 创建 Docker systemd 代理目录
bash
复制代码
sudo mkdir -p /etc/systemd/system/docker.service.d
2️⃣ 写入代理配置
假设你的代理是:

cpp
复制代码
http://127.0.0.1:7890
创建文件:

bash
复制代码
sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf
内容如下(按你真实代理改):

ini
复制代码
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:7890"
Environment="HTTPS_PROXY=http://127.0.0.1:7890"
Environment="NO_PROXY=localhost,127.0.0.1"
保存退出。

3️⃣ 重新加载并重启 Docker
bash
复制代码
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl restart docker
4️⃣ 验证 Docker 是否真的吃到了代理
bash
复制代码
docker info | grep -i proxy
如果看到类似:

javascript
复制代码
HTTP Proxy: http://127.0.0.1:7890
HTTPS Proxy: http://127.0.0.1:7890
✅ 说明配置成功

5️⃣ 再次拉取 MongoDB
bash
复制代码
docker pull mongo:7.0
👉 这一步在国内 90% 情况可以成功

三、方案二(国内最稳):直接用国内 Docker 镜像源 🚀(强烈推荐)
即使你有代理,我也强烈建议你加国内镜像源,更快、更稳。

1️⃣ 编辑 Docker daemon 配置
bash
复制代码
sudo nano /etc/docker/daemon.json
填入(可全部复制):

json
复制代码
{
"registry-mirrors": [

"https://dockerproxy.com",
"https://mirror.ccs.tencentyun.com",
"https://hub-mirror.c.163.com"

]
}
2️⃣ 重启 Docker
bash
复制代码
sudo systemctl restart docker
3️⃣ 拉取 MongoDB(不需要代理也能成功)
bash
复制代码
docker pull mongo:7.0
✅ 这是国内成功率最高方案

四、推荐你用的最终组合方案(最稳)
✅ Docker daemon 代理 + 国内镜像源

代理:应对非镜像流量

镜像源:极快、极稳

明白了,你想在 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."