Unraid 7.3 Internal Boot 迁移实录:从 NVMe 故障、Btrfs 降级,到 TPM 许可与 HBA 启动问题

一、背景

最近在折腾 Unraid 7.3 的 Internal Boot,也就是从传统 USB 启动迁移到内部 SSD 启动。

原本的目标很简单:

用一块企业级 SATA SSD 替代 U 盘,作为 Unraid 的内部启动盘,提高稳定性。

但实际迁移过程中,顺带暴露出了一堆隐藏问题:

  1. Cache Pool 中一块 NVMe 已经出现真实介质错误;
  2. Btrfs RAID1 虽然能自修复,但并不代表硬盘健康;
  3. 512G 临时盘无法直接 replace 1T cache 盘;
  4. Btrfs allocated chunk 和实际 used 不是一回事;
  5. Internal Boot 写入成功后,BIOS 仍然无法从 SSD 启动;
  6. LSI SAS2308 HBA 卡上的 SSD 无法被 BIOS 当作启动盘;
  7. TPM 许可迁移后出现多个 key 文件冲突;
  8. 迁移后 License 页面显示过期时间,引发对 legacy lifetime updates 的疑问。

这篇文章记录完整处理过程,供后续折腾 Unraid 7.3 Internal Boot、Btrfs cache pool 和 TPM license 的人参考。

Read more

PyCharm Workspace Mode + uv Workspace 实战指南

Python 新一代 Monorepo 工程组织方式


一、前言

最近打开 PyCharm,你可能会看到这样一个提示:

1
2
3
4
5
Enable and try workspace mode Beta

A large project can be split into smaller parts
(like backend, API, and shared code),
making it easier to organize and maintain.

很多人第一反应:

“这是啥?”

“和普通 Project 有什么区别?”

“是不是类似 pnpm workspace?”

“Python 终于开始搞 monorepo 了吗?”

实际上:

这个功能背后,代表的是 Python 工程组织方式的一次重大升级。

而它真正对应的生态,其实是:

1
uv + pyproject.toml + workspace

这篇文章会从:

  • 为什么需要 Workspace
  • 什么是 Monorepo
  • uv Workspace 怎么用
  • PyCharm Workspace Mode 如何配合
  • 实际部署怎么做
  • 如何避免架构混乱

完整讲清楚。

Read more

使用 Cloudflare R2 + Workers 构建稳定、高性能的软件下载分发

本文记录了在实际项目中使用 Cloudflare R2 + Workers 构建软件下载分发体系时,从最初设计、踩坑、排错,到最终稳定方案的完整过程。内容包含 Cache Rules 与 Worker 缓存冲突的真实问题,适合直接作为生产级参考。


一、背景与目标

在为 AirTools 构建桌面端分发体系时,我希望实现:

  • 安装包(.exe / .dmg 等)全球 CDN 强缓存
  • 版本元信息(latest.json)实时更新、不被缓存
  • 不自建服务器,尽量使用 Cloudflare 原生能力
  • 缓存行为稳定、可预测,不出现随机 500

最终技术选型为 Cloudflare R2 + Cloudflare Workers


Read more

为什么我开始从 RGB 转向 OKLCH —— 颜色处理的新阶段

在做自己的项目时,我逐渐发现一个问题:
颜色越写越乱、越调越脏,很多看似简单的调色逻辑在实际效果上完全不符合预期。

比如:
• 明明只是想调亮一点,但 RGB/HSL 调完后颜色不是变灰就是变艳;
• 做渐变时颜色中途莫名其妙发暗;
• 图表配色在亮色主题和暗色主题下反差不一致;
• 在宽色域(如 P3)设备上,颜色表现和预期差得更远。

这些都指向同一个底层原因:
RGB(甚至 HSL/HSV)并不是一个符合人眼感知的色彩空间。

于是我开始把新的颜色计算逻辑逐步迁移到 OKLCH —— 一个感知均匀、现代化、已被浏览器原生支持的色彩空间。
这篇文章来分享我为什么做这个选择,也希望给你在项目色彩处理上的参考。

Read more

使用 ExifTool 为照片批量添加和复制 GPS 信息

在日常摄影中,我们常常会遇到这样一个问题:使用相机(如 Nikon Z30 等非 GPS 相机)拍摄的照片并没有记录位置信息。如果你希望在后期整理或分享时,让照片具备地理信息,就需要借助专业工具来补充或批量写入 GPS 数据。

本文将介绍如何使用强大的命令行工具 ExifTool 来解决这个问题,包括:
1. 为照片添加 GPS 信息;
2. 将一张照片的 GPS 信息复制到另一张或多张照片中;
3. 检查和验证修改结果。

Read more

Python 新包管理工具:UV

Python 生态中有许多包管理工具,如 pippoetryconda,而 uv 作为一个新兴工具,正迅速受到关注。uv 由 Astral 开发,基于 Rust 编写,宣称是 Python 包管理的未来。它不仅速度极快(据称比传统工具快 10-100 倍),还集成了项目管理、虚拟环境管理和 Python 版本管理的功能,旨在成为一个全能解决方案。

截至 2025 年 3 月 29 日,uv 的官方文档和社区反馈显示,其普及度正在提升,尤其在需要高效依赖管理的场景中表现出色。然而,作为一个较新的工具,其长期稳定性仍需更多用户验证。

Read more

Docker 镜像拉取失败

在国内使用 Docker 时,拉取官方镜像可能会遇到速度缓慢或连接超时的问题。这主要是由于网络环境和访问 Docker 官方镜像仓库(Docker Hub)时的带宽限制所致。为了解决这一问题,配置国内的 Docker 镜像加速器(registry mirrors)是一种有效的解决方案。

Docker 镜像加速器是由国内服务提供商搭建的镜像仓库,通过同步 Docker Hub 的内容,提供更快的镜像拉取速度。这些加速器能够有效减少镜像下载时间,提高开发和部署效率。

Read more

MarkItDown 真的好么?

MarkItDown 是微软开源的一款多功能文档转换工具,旨在将多种文件格式(如 PDF、Office 文档、图像、音频等)高效转换为 Markdown 格式,适用于文档索引、文本分析、内容管理等场景。以下是其核心特性与优势的详细解析:

Read more

2024年的如今

一年一年又一年
转身发现自己过了这么多年
依旧一事无成

倔强要来的娃
让我多了一个身份
家庭多了一个成员
软萌可爱
却又有时脾气恶劣
天使魔鬼结合体

从看到娃的那时起
软肋铠甲并存
想了太多太多
她嫌我想的太远
我却不知道能否保证娃的健康快乐

因为娃
我跟她疲惫不堪
得靠着娃的笑容充电

值么?
不知道

也没得选
对么?

2024年的如今一团糟
2025年的以后还会更糟么?

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×