在 Linux 中使用 Ventoy 制作 Windows 启动盘

Ventoy 是一个开源的多系统启动 U 盘解决方案,支持直接从 ISO/WIM/VHD(x)/EFI 文件启动,无需反复格式化 U 盘。

1. 准备工作

1.1 获取 Windows ISO 镜像

三选一,建议使用非官方源(Microsoft 官网可能会有神秘报错):

  • OS.click(推荐):https://os.click/en
  • UUP dump:https://uupdump.net/
  • Microsoft 官网:https://www.microsoft.com/software-download/windows11

下载完成后校验文件:

sha256sum windows11.iso

2. 安装 Ventoy

2.1 下载 Ventoy

访问 Ventoy 官网 下载 Linux 版本安装包,例如 ventoy-1.0.00-linux.tar.gz

解压安装包:

tar -xzf ventoy-1.0.00-linux.tar.gz
cd ventoy-1.0.00

2.2 使用 WebUI 制作 Windows 启动盘

Ventoy 提供了 WebUI 图形化界面,推荐使用此方式安装,GUI 版本可能导致未响应。

  1. 启动 WebUI 服务器
sudo ./VentoyWeb.sh

启动后会显示以下提示信息:

===============================================================

  Ventoy Server 1.1.07 is running ...

  Please open your browser and visit http://127.0.0.1:24680

===============================================================

################## Press Ctrl + C to exit #####################
  1. 打开浏览器访问

在浏览器中打开 http://127.0.0.1:24680

  1. 在 WebUI 中安装

WebUI 界面如下图所示:

Ventoy WebUI 界面

界面说明:

  • 设备选择Device 下拉框选择目标 U 盘设备,右侧绿色刷新按钮可重新扫描设备
  • 版本信息
    • Ventoy In Package:显示安装包中的 Ventoy 版本(如 1.1.07)和分区格式(MBR/GPT)
    • Ventoy In Device:显示设备中已安装的 Ventoy 版本,如果为空则表示未安装
  • Option 菜单
    • Secure Boot Support:启用安全启动支持,建议勾选以兼容支持 UEFI Secure Boot 的计算机,在一些品牌笔记本电脑安装中,如果不启用安全会导致无法安装系统
    • Partition Style:选择分区格式,可选择 MBR(Legacy BIOS)或 GPT(UEFI)
    • Partition Configuration:分区配置选项,可设置在U盘内的保留空间
    • Clear Ventoy:清除设备中的 Ventoy
    • Show All Devices:显示所有设备
  • 状态显示Status - READY 表示准备就绪
  • 操作按钮
    • Install:安装 Ventoy 到 U 盘
    • Update:升级设备中的 Ventoy 版本

在 WebUI 中执行以下操作:

  • 选择目标 U 盘设备
  • 选择分区格式(MBR 或 GPT)
  • 选择文件系统类型(exFAT, NTFS, FAT32 等)
  • 点击 安装 按钮

注意: 安装会格式化 U 盘,清除所有数据。普通 U 盘建议使用 exFAT 文件系统,大容量移动硬盘或 SSD 建议使用 NTFS 文件系统。

3. 拷贝镜像文件

安装完成后,U 盘会被分成两个分区:

  • 第 1 个分区(镜像分区):容量较大,用于存放 ISO 文件
  • 第 2 个分区(VTOYEFI 分区):32MB,存放 Ventoy 启动文件

将下载的 Windows ISO 镜像文件直接拷贝到第 1 个分区(大一点的分区)中即可。可以将文件放在任意目录及子目录下,Ventoy 会自动遍历所有目录,按字母顺序显示在启动菜单中。

注意: 安装完成后,镜像分区也可以手动重新格式化为其他支持的文件系统(exFAT/FAT32/NTFS/UDF/XFS/Ext2/3/4),不影响 Ventoy 功能。

4. 启动安装

4.1 设置启动顺序

  1. 重启计算机,进入 BIOS/UEFI 设置
  2. 将 U 盘设置为第一启动项
  3. 保存并退出

4.2 选择镜像启动

从 U 盘启动后,Ventoy 会显示镜像文件列表,选择要安装的 Windows ISO 文件即可开始安装。

4.3 目标分区格式要求

重要提示: 如果目标安装位置(通常是系统盘)使用 GPT 分区表且格式为 NTFS,安装过程中可能会出现错误。建议在安装 Windows 前,将目标安装位置格式化为 GPT 格式,以避免安装失败。

5. 注意事项

  • 安装 Ventoy 会格式化 U 盘,清除所有数据,请提前备份重要文件
  • U 盘容量需至少 8GB(推荐 16GB 或更大)
  • 可以将 U 盘当作普通存储设备使用,存放普通文件不影响 Ventoy 功能
  • 支持同时存放多个 ISO 文件,启动时可以选择
  • MBR/GPT 分区格式选项只在安装时有效,升级不会改变现有分区格式

参考文档

使用 Whisper Tiny 模型实现快速语音转文字:Python 部署与实践指南

1. 环境准备

1.1 系统要求

  • 操作系统:Ubuntu / Debian / WSL / macOS / Windows
  • Python:3.10 或更高版本
  • 系统依赖ffmpeg(Whisper 处理音频文件必需)

1.2 安装系统依赖

Ubuntu/Debian:

sudo apt-get update
sudo apt-get install -y ffmpeg

macOS:

brew install ffmpeg

Windows:ffmpeg.org 下载并安装

1.3 安装 Python 依赖

pip install openai-whisper

或者使用项目 requirements.txt:

pip install -r requirements.txt

2. Whisper 模型选择

Whisper 提供多种模型,可根据需求选择:

模型参数量速度准确度推荐场景
tiny3900万最快较低实时交互、低延迟需求
base7400万较快中等平衡速度和准确度
small2.44亿中等较好一般应用
medium7.69亿较慢较高高准确度需求
large15.5亿最慢最高专业转录

本项目使用 tiny 模型,适合实时语音交互场景。

3. 核心功能实现

3.1 模型管理(单例模式)

import whisper
import warnings

_whisper_model = None

def get_whisper_model():
    """获取或加载Whisper模型(单例模式)"""
    global _whisper_model
    if _whisper_model is None:
        with warnings.catch_warnings():
            warnings.filterwarnings("ignore", message="FP16 is not supported on CPU")
            _whisper_model = whisper.load_model("tiny", device="cpu")
    return _whisper_model

特点:

  • 延迟加载:首次使用时才加载模型
  • 单例模式:全局只加载一次,节省内存
  • 自动处理 CPU/GPU:根据设备自动选择

注意:首次运行时会自动下载模型文件(tiny 模型约 75MB),下载完成后会缓存到本地,后续运行会直接使用缓存,无需重新下载。

3.2 音频文件处理

async def process_audio_file(audio_content: bytes, filename: str):
    """处理音频文件并转写"""
    # 1. 验证文件格式
    validate_audio_file(filename, audio_content)
    
    # 2. 保存到临时文件
    temp_path = create_temp_file(audio_content, filename)
    
    # 3. 转写音频
    result = transcribe_audio_file(temp_path, filename)
    
    # 4. 清理临时文件
    cleanup_temp_file(temp_path)
    
    return result

支持的音频格式:

  • .mp3, .wav, .flac, .m4a, .ogg, .webm, .mpeg, .mp4

注意:Whisper 会自动通过 ffmpeg 处理各种音频格式,无需手动转换。确保系统已安装 ffmpeg。

3.3 API 接口

可以使用 FastAPI 等 Web 框架封装 Whisper 功能,提供 HTTP API 接口。典型的接口设计包括:

语音转文字接口示例:

from fastapi import FastAPI, File, UploadFile
import whisper

app = FastAPI()
model = whisper.load_model("tiny")

@app.post("/transcribe")
async def transcribe_audio(audio: UploadFile = File(...)):
    """语音转文字接口"""
    # 保存上传的音频文件
    temp_path = save_temp_file(audio)
    
    # 转写音频
    result = model.transcribe(temp_path, language="zh")
    
    # 清理临时文件
    cleanup_temp_file(temp_path)
    
    return {
        "text": result["text"],
        "language": result["language"]
    }

4. 快速开始

4.1 最小示例

import whisper

# 加载模型(首次会自动下载)
model = whisper.load_model("tiny")

# 转写音频文件
result = model.transcribe("audio.wav", language="zh")
print(result["text"])

4.2 使用 FastAPI 接口

启动服务:

uvicorn main:app --reload

测试接口:

# 转写接口示例
curl -X POST \
  -F "audio=@test.wav" \
  http://localhost:8000/transcribe

4.3 Python 代码调用

import whisper

# 加载模型
model = whisper.load_model("tiny")

# 转写音频文件
result = model.transcribe("audio.wav", language="zh")

# 输出结果
print(f"转写结果: {result['text']}")
print(f"检测语言: {result['language']}")
print(f"处理时间: {result.get('processing_time', 'N/A')}")

5. 配置说明

5.1 修改模型类型

修改模型名称:

# 使用 tiny 模型(推荐,速度快)
_whisper_model = whisper.load_model("tiny", device="cpu")

# 或使用其他模型
_whisper_model = whisper.load_model("base", device="cpu")
_whisper_model = whisper.load_model("small", device="cpu")

注意:如需提高转写准确度,可以:

  • 使用更大的模型(small/medium/large),但速度会变慢
  • 确保音频质量良好,减少背景噪音
  • 指定正确的语言参数,避免自动检测带来的延迟

5.2 设备选择

# CPU 推理(默认)
model = whisper.load_model("tiny", device="cpu")

# GPU 推理(需要 CUDA)
model = whisper.load_model("tiny", device="cuda")

注意:Tiny 模型在 CPU 上运行速度已经很快,适合大多数场景。如需进一步提升速度,可以考虑:

  • 使用 GPU 推理(需要安装 CUDA 版本的 PyTorch)
  • 使用更小的模型(但准确度会降低)

5.3 语言指定

# 自动检测语言(默认)
result = model.transcribe("audio.wav")

# 指定语言(更快)
result = model.transcribe("audio.wav", language="zh")  # 中文
result = model.transcribe("audio.wav", language="en")  # 英文

参考文档

使用fuck-u-code优化代码质量

fuck-u-code 是一款专门揭露屎山代码的质量分析工具,能够评估代码的"屎山等级"并输出美观的报告,可以输出md格式报告,供大模型分析使用。

项目介绍

项目地址: https://github.com/Done-0/fuck-u-code

项目描述: Legacy-Mess Detector – assess the “legacy-mess level” of your code and output a beautiful report | 屎山代码检测器,评估代码的"屎山等级"并输出美观的报告

核心特性

  • 多语言支持: Go、JS/TS、Python、Java、C/C++
  • 屎山指数: 0~100 分,越高越烂
  • 七维度检测: 复杂度 / 函数长度 / 注释率 / 错误处理 / 命名 / 重复度 / 结构
  • 彩色终端报告: 批评也能笑着听
  • Markdown 输出: 方便 AI 分析与文档集成
  • 灵活配置: 摘要 / 详细模式,多语言报告
  • 全程本地运行: 不上传代码,安全无忧

安装方法

方法一:Go 安装(推荐)

go install github.com/Done-0/fuck-u-code/cmd/fuck-u-code@latest

方法二:源码构建

git clone https://github.com/Done-0/fuck-u-code.git
cd fuck-u-code && go build -o fuck-u-code ./cmd/fuck-u-code

方法三:Docker 构建

docker build -t fuck-u-code .

基本使用方法

分析本地项目

# 基本分析 - 本地项目
fuck-u-code analyze /path/to/project
# 或
fuck-u-code /path/to/project

# 默认分析当前目录
fuck-u-code analyze

分析 Git 仓库

# 分析 Git 仓库(自动克隆)
fuck-u-code analyze https://github.com/user/repo.git
# 或
fuck-u-code https://github.com/user/repo

Docker 运行

docker run --rm -v "/path/to/project:/build" fuck-u-code analyze

常用选项

选项简写描述
--verbose-v显示详细报告
--top N-t最烂的前 N 个文件
--issues N-i每文件显示 N 个问题
--summary-s只看总结,不看过程
--markdown-m输出 Markdown 格式报告
--lang-l报告语言 (zh-CN/en-US/ru-RU)
--exclude-e排除指定目录或文件
--skipindex-x跳过 index.js/ts 文件

使用示例

fuck-u-code analyze --verbose
fuck-u-code analyze --top 3
fuck-u-code analyze --lang en-US
fuck-u-code analyze --summary
fuck-u-code analyze --exclude "**/test/**"
fuck-u-code analyze --markdown > report.md

代码质量分析脚本

基于 fuck-u-code 工具,我编写了一个简单的代码质量分析脚本,用于自动生成 Markdown 格式的代码质量报告。

脚本内容

创建 analyze_code_quality.sh 文件:

#!/bin/bash

# 代码质量分析脚本
fuck-u-code analyze --markdown --lang zh-CN --skipindex --exclude "**/tests/**" > code_quality_report.md

echo "代码质量分析完成,报告已生成:code_quality_report.md"

使用方法

# 1. 创建脚本文件
nano analyze_code_quality.sh
# 将上述脚本内容复制到文件中

# 2. 赋予执行权限
chmod +x analyze_code_quality.sh

# 3. 运行脚本
./analyze_code_quality.sh

脚本参数说明

  • --markdown: 输出 Markdown 格式报告
  • --lang zh-CN: 使用中文语言
  • --skipindex: 跳过 index.js/ts 文件
  • --exclude "**/tests/**": 排除测试目录

输出文件

  • code_quality_report.md - 代码质量分析报告

Markdown 输出

适合 AI 分析、文档集成、CI/CD、团队协作

fuck-u-code analyze --markdown
fuck-u-code analyze --markdown > report.md
fuck-u-code analyze --markdown --top 10 --lang en-US > report.md

默认排除路径

  • 前端: node_modulesdistbuild*.min.js
  • 后端: vendorbintargetlogsmigrations

疑难解答

常见问题

  1. command not found 错误
# 把 Go bin 路径加到 PATH
export PATH="$PATH:$(go env GOPATH)/bin"
# 并写入 .bash_profile / .zshrc 等
  1. 权限错误
chmod +x analyze_code_quality.sh
chmod +x quick_analyze.sh
  1. fuck-u-code 未安装
go install github.com/Done-0/fuck-u-code/cmd/fuck-u-code@latest
  1. 不在项目根目录
  • 确保在包含 requirements.txtapp/ 目录的根目录运行
  1. 分析失败
  • 检查 logs/analysis_error.log 文件
  • 确保项目代码没有语法错误

报告解读

评分系统

  • 分数范围: 0~100 分
  • 分数含义: 越高越烂,欢迎"高分大佬"上榜
  • 七维度检测:
    • 复杂度分析
    • 函数长度检查
    • 注释率统计
    • 错误处理评估
    • 命名规范检查
    • 重复度检测
    • 代码结构分析

生成的 Markdown 报告包含

  • 📊 整体质量评分
  • 📈 各项指标详情
  • 🔍 问题文件列表
  • 💡 改进建议

改进重点

根据报告中的优先级进行代码改进,重点关注:

  • 高复杂度函数
  • 重复代码
  • 缺少注释
  • 错误处理

Markdown 转 PDF 加水印工具

一个功能强大的Markdown转PDF工具,支持GitHub风格的Markdown语法、代码文档、Mermaid图表等,并自动添加水印。专为技术文档和代码项目设计,支持中文字体渲染和批量处理。

功能特性

  • Markdown → PDF(GitHub样式):表格、代码块、链接、图片;多语言代码高亮
  • Mermaid 支持:流程图、时序图、甘特图自动渲染
  • 水印能力:文本/图片水印、透明度/角度/密度可调,亦可输出无水印
  • 中文字体:自动识别常见中文字体,渲染稳定
  • 批量处理input/ 全目录一键处理,结果输出至 output/
  • 交互/默认双模式:交互式最少参数配置;快速模式开箱即用
  • 多语言界面:中英自动/手动切换

适用:README/设计与架构(Mermaid)/API与代码文档、技术博客归档、项目报告与教学讲义;支持批量加水印或生成纯净PDF,便于团队分发协作。

快速开始

运行项目

git clone https://github.com/pinyinjj/Markdown-to-PDF-Tool.git
cd md-pdf-watermark
python main.py

程序会引导您选择操作模式:

1. 处理PDF文件(添加水印)

  • 为现有PDF文件添加水印
  • 支持批量处理多个PDF文件

2. 转换Markdown到PDF(添加水印)

  • 将Markdown文件转换为PDF并添加水印
  • 支持Mermaid图表和代码高亮
  • 自动检测中文字体

3. 仅生成图片水印

  • 只生成水印图片,不处理任何文件
  • 适合批量生成水印素材
  • 支持文本和图片两种水印类型

4. 转换Markdown到PDF(无水印)

  • 将Markdown文件转换为PDF,不添加水印
  • 支持Mermaid图表和代码高亮
  • 适合需要纯净PDF的场景

详细安装说明

Windows 安装

  1. 安装Python

    • python.org 下载Python 3.8+
    • 安装时勾选"Add Python to PATH"
  2. 安装依赖

    pip install -r requirements.txt
    playwright install
    
  3. 系统依赖(如果需要)

    playwright install-deps
    

Linux 安装

  1. 安装Python

    # Ubuntu/Debian
    sudo apt update
    sudo apt install python3 python3-pip python3-venv
    
    # CentOS/RHEL
    sudo yum install python3 python3-pip
    
  2. 安装依赖

    pip install -r requirements.txt
    playwright install
    
  3. 系统依赖

    sudo playwright install-deps
    

国际化支持

语言设置

程序支持英文和中文两种界面语言:

自动语言检测

程序会自动检测系统语言环境:

  • 检测系统 locale 设置
  • 检查环境变量 LANG
  • 默认使用英文作为后备语言

手动语言设置

# 使用英文界面
python main.py --lang en --interactive

# 使用中文界面
python main.py --lang zh --interactive

# 自动检测(默认)
python main.py --interactive

语言切换

  • 在交互式模式中,语言设置会影响所有界面文本
  • 包括菜单选项、提示信息、错误消息等
  • 不影响处理的文件内容

配置说明

水印配置

程序使用WatermarkConfig类管理所有配置:

class WatermarkConfig:
    # 文本水印设置
    GENERATE_IMAGE_FROM_TEXT = True      # 是否从文本生成图片水印
    TEXT_WATERMARK_FILE = "watermarks/text_watermark.png"  # 文本水印图片文件名
    FONT_SIZE = 36                       # 字体大小
    TEXT_COLOR = (68, 68, 68, 220)      # 文本颜色RGBA
    PADDING = 20                         # 内边距
    
    # PDF水印参数
    WATERMARK_TYPE = "grid"              # 水印类型:grid/insert
    OPACITY = 0.2                        # 透明度
    ANGLE = 45                           # 旋转角度
    IMAGE_SCALE = 1.0                    # 图片缩放
    HORIZONTAL_BOXES = 3                 # 水平网格数
    VERTICAL_BOXES = 6                   # 垂直网格数

字体配置

程序会自动检测系统中文字体,支持:

  • Windows: 微软雅黑、黑体、宋体、楷体、仿宋等
  • Linux: Noto Sans CJK等

如需指定字体,可设置环境变量:

export WATERMARK_FONT="/path/to/your/font.ttf"

使用方法

基本使用

  1. 准备文件:将PDF或Markdown文件放入input/目录
  2. 运行程序:执行python main.py
  3. 查看结果:处理后的文件在output/目录

调整水印样式

修改WatermarkConfig中的相关参数:

# 调整透明度
OPACITY = 0.3

# 调整角度
ANGLE = 30

# 调整网格密度
HORIZONTAL_BOXES = 4
VERTICAL_BOXES = 8

故障排除

常见问题

  1. Playwright浏览器未安装
playwright install
  1. 中文字体未找到
    • 确保系统已安装中文字体
    • 或设置WATERMARK_FONT环境变量
  2. watermark命令未找到
    • 确保已安装pdf-watermark
    • 检查虚拟环境是否正确激活
  3. 权限问题
# Linux
sudo playwright install-deps

调试模式

程序会输出详细的处理信息,包括:

  • 文件处理状态
  • 水印生成过程
  • 错误信息

依赖包说明

包名版本用途
Pillow>=9.0.0图像处理,生成文本水印图片
markdown>=3.4.0Markdown文件处理
playwright>=1.30.0浏览器自动化,PDF渲染
pdf-watermark>=0.1.0PDF水印添加

许可证

本项目采用 GPL-3.0-or-later 许可证发布。


注意:首次运行可能需要下载Playwright浏览器,请确保网络连接正常。