Proxmox VE存储配置全攻略:从硬盘识别到虚拟机挂载
1. 从一块新硬盘到PVE可用存储的完整旅程最近在折腾家里的Proxmox VE服务器加了一块4TB的机械硬盘准备给虚拟机做数据盘。本以为在PVE里添加硬盘就是点几下鼠标的事结果从物理连接到最终在虚拟机里看到盘符中间愣是踩了好几个坑。比如明明在PVE的Web管理界面里看到了新加的存储但创建虚拟机时就是选不到又比如直接格式化了硬盘结果PVE自己的LVM-Thin存储池差点被覆盖掉惊出一身冷汗。这些经历让我意识到在PVE里“添加硬盘”这个操作远不止是插上线、点个“添加”按钮那么简单它背后是一套从物理层到逻辑层再到虚拟化层的完整存储管理逻辑。如果你也正准备给PVE扩容或者刚装好PVE发现除了系统盘外其他硬盘都没法用那这篇文章就是为你准备的。我会以一个PVE用户的视角带你走一遍从识别物理硬盘、创建存储、到最终挂载给虚拟机使用的全流程。过程中会穿插我踩过的那些坑以及对应的排查思路和解决方案。无论你是想加一块SATA机械盘存电影还是加一块NVMe SSD跑数据库这里的核心思路都是相通的。我们不止看“怎么做”更要弄明白“为什么这么做”这样下次再遇到存储相关的问题你就能自己定位了。2. 物理硬盘接入与系统识别一切的基础在PVE的Web界面里操作之前我们得先确保系统底层已经正确识别到了这块新硬盘。很多后续问题其实根源都在这一步。2.1 硬盘的物理连接与类型选择首先当然是关机把硬盘接上。这里有几个细节接口选择现在主流的接口是SATA和NVMeM.2。SATA硬盘通用性强线缆连接通常用于大容量机械盘或SATA SSD。NVMe硬盘通过PCIe通道速度远超SATA但需要主板有M.2插槽。对于PVE宿主我建议系统盘用一块小容量的NVMe SSD保证系统响应速度数据盘则可以根据需求和预算选择大容量SATA机械盘或NVMe SSD。供电与散热尤其是企业级机械硬盘启动电流大务必确保电源供电充足。NVMe SSD则要关注散热很多服务器主板或M.2转接卡都自带散热片务必装上长时间高温会严重影响SSD寿命和性能。RAID考虑如果你有多块同型号硬盘并追求数据冗余或性能可以考虑硬件RAID卡或PVE软件RAID如ZFS。但对于新手我强烈建议先以单盘模式JBOD接入并熟悉流程。RAID配置不当可能导致数据无法恢复复杂度也高一个数量级。接好线开机进入PVE系统的Shell可以通过主机控制台或SSH连接。我们首先用lsblk命令来查看块设备。lsblk这个命令会以树状结构列出所有块设备磁盘和分区。一块全新的、未分区的硬盘通常会显示为类似sdb、nvme0n1这样的设备名并且没有下属的分区比如sdb1。sdX(如 sda, sdb): 通常指SATA、SAS或USB连接的磁盘。nvmeXnY(如 nvme0n1): 指NVMe协议的磁盘。n1代表命名空间1通常一块盘就一个。如果lsblk里没看到新硬盘别急可以尝试ls -la /dev/disk/by-id/这里能看到通过唯一ID标识的磁盘更可靠。执行dmesg | tail -50或journalctl -k --since “1 min ago”查看内核日志搜索硬盘型号或sd、nvme关键词看是否有识别错误或驱动问题。检查物理连接重新插拔数据线和电源线。2.2 理解PVE的存储模型Datacenter与Storage硬盘被系统识别后在PVE里还不能直接使用。这里需要理解PVE的两级存储概念Datacenter存储视图这是全局的、物理的存储资源池。你在这里“添加”的存储实际上是告诉PVE“我有一块硬盘/一个目录/一个NFS服务器你可以用它来存东西”。它本身不决定存什么、怎么存。Storage配置这是在Datacenter存储基础上定义的存储类型和用途。PVE支持多种存储类型比如Directory 最简单的目录存储就在硬盘上划个文件夹用。LVM-Thin 这是PVE默认推荐给虚拟机的存储类型支持快照和克隆空间超分配非常灵活。ZFS 功能强大的文件系统自带RAID、压缩、去重等高级特性适合对数据完整性要求高的场景。NFS/CIFS 网络文件共享。iSCSI 块存储网络共享。关键点你添加的物理硬盘通常需要先格式化成某种文件系统如ext4或卷管理格式如LVM、ZFS然后再在PVE中将其定义为特定类型的Storage才能用于存放虚拟机磁盘.qcow2, .raw文件、ISO镜像或容器模板。我最初踩的坑就是直接在PVE的Node视图下对一块新硬盘点击“创建LVM-Thin”结果它把我整块盘都初始化成了一个LVM-Thin池。后来我才知道如果这块盘你只想分一部分给PVE另一部分留作他用比如直通给某个虚拟机你应该先在操作系统层面用fdisk或parted工具进行分区然后只对某个分区创建PVE存储。3. 实战为PVE添加并配置一块新数据盘假设我们有一块全新的4TB SATA机械硬盘设备名为/dev/sdb。我们想用它来存放虚拟机的磁盘镜像并希望使用LVM-Thin存储类型以获得快照功能。3.1 方案选择与磁盘初始化面对一块新盘通常有三种方案整盘用作一个PVE存储最简单磁盘所有空间都归PVE管理。分区后部分空间用作PVE存储更灵活可以留出空间做其他用途。使用ZFS如果硬盘数量多或追求数据特性可以用ZFS接管整块或多块盘。这里我们选择方案一将整块/dev/sdb用作一个LVM-Thin池。警告以下操作会清空磁盘所有数据请务必确认设备名无误首先创建物理卷PV和卷组VG。LVM-Thin需要建立在传统的LVM卷组之上。# 1. 创建物理卷 pvcreate /dev/sdb # 2. 创建卷组命名为 vg_data (名字可自定) vgcreate vg_data /dev/sdb接下来在这个卷组中创建一个LVM-Thin池Thin Pool。你可以把Thin Pool想象成一个“空间水库”虚拟机磁盘Thin Volume从这个水库里按需取水并且可以承诺分配比实际物理空间更多的水量超分配。# 3. 创建Thin Pool命名为 lv_thin_pool并分配全部卷组空间 # -l 100%FREE 表示使用卷组所有剩余空间 lvcreate -l 100%FREE --thinpool lv_thin_pool vg_data执行完后可以用lvs命令查看创建的Thin Pool。3.2 在PVE Web界面中添加存储命令行初始化完成后我们转到PVE的Web管理界面。选择你的数据中心Datacenter。点击“存储”选项卡然后点击右上角的“添加”。在下拉菜单中选择“LVM-Thin”。在弹出的表单中配置ID 给你这个存储起个名字比如data_store。这个ID会在创建虚拟机时看到。Thinpool 这里会自动列出系统中可用的Thin Pool。你应该能看到我们刚创建的vg_data/lv_thin_pool选择它。节点 选择“所有节点”如果这是单机部署的话。内容 勾选你希望在此存储上存放的内容类型。对于数据盘通常勾选“磁盘映像”和“容器”就够了。“ISO镜像”和“容器模板”可以放在更快的系统盘存储上。点击“添加”。添加成功后你就能在存储列表中看到data_store并可以看到它的总容量和可用空间。3.3 避坑指南为什么添加了存储却无法使用这是我遇到的第一个大坑。存储添加成功了但在创建新虚拟机选择“硬盘”的总线类型时下拉列表里死活找不到我刚加的data_store。排查过程如下检查存储状态在“存储”列表里确认data_store的状态是绿色的“可用”而不是灰色的。检查内容类型这是我踩坑的地方。我创建存储时只勾选了“磁盘映像”但**“容器”选项没有勾选**。而我的使用场景是既开虚拟机也开LXC容器。PVE会根据你创建的资源类型VM或Container只显示支持该内容类型的存储。所以如果你打算用它放虚拟机磁盘就勾选“磁盘映像”如果也放容器就两者都勾选。检查节点权限确保存储被添加到了正确的节点或者勾选了“所有节点”。如果你在节点A添加了存储但在节点B上创建虚拟机自然看不到。命令行验证回到Shell检查Thin Pool是否真的创建成功且路径正确。lvs命令查看vg_data/lv_thin_pool是否存在。另一个常见坑磁盘已被挂载或占用。如果你在初始化磁盘前系统已经自动将其挂载比如挂载到了/mnt/sdb那么pvcreate命令会失败提示设备忙。你需要先用umount /dev/sdb1如果有分区或umount /dev/sdb卸载它如果卸载不了可以用fuser -km /mnt/sdb强制结束占用进程然后再进行初始化操作。4. 高级场景与存储优化当单盘基础配置满足需求后你可能会遇到更复杂的场景。4.1 使用分区而非整盘如果你不想把整块盘都给PVE比如想分500GB给PVE剩下的3.5TB留作他用例如创建一个ext4分区通过Bind Mount挂载给某个容器使用。步骤有所不同# 1. 使用 parted 或 fdisk 对 /dev/sdb 进行分区 # 这里以 fdisk 为例 fdisk /dev/sdb # 在 fdisk 交互界面中输入 n 创建新分区然后选择主分区设置起始扇区结束扇区可以输入 500G 来指定大小。 # 创建完后输入 t 更改分区类型设置为 ‘8e’ (Linux LVM)。 # 最后输入 w 写入并退出。 # 2. 让系统重新读取分区表 partprobe /dev/sdb # 3. 后续操作针对分区 /dev/sdb1 进行而不是整块盘 /dev/sdb pvcreate /dev/sdb1 vgcreate vg_data_part /dev/sdb1 lvcreate -l 100%FREE --thinpool lv_thin_pool_part vg_data_part之后在PVE Web界面添加存储时选择对应的Thin Pool即可。4.2 添加NVMe SSD并启用DiscardTRIM对于SSD启用TRIM在Linux LVM里叫Discard非常重要它可以告诉SSD哪些数据块已不再使用便于主控进行垃圾回收维持长期性能。假设你添加了一块NVMe SSD设备名为/dev/nvme0n1。初始化步骤和SATA盘类似但在创建文件系统或Thin Pool时有额外选项。# 创建物理卷和卷组 pvcreate /dev/nvme0n1 vgcreate vg_ssd /dev/nvme0n1 # 创建Thin Pool时通过 --discards 参数启用discard支持 lvcreate -l 100%FREE --thinpool lv_ssd_pool vg_ssd --discards passdown--discards passdown这个参数是关键它允许Discard命令从虚拟机透传到物理SSD。此外在PVE的虚拟机硬件配置中对于使用该SSD存储的虚拟磁盘也可以勾选“SSD仿真”和“Discard”选项实现更精细的控制。4.3 挂载现有文件系统作为Directory存储如果你有一块硬盘上面已经有数据比如一个装满电影的ext4分区你不想格式化只是想把它作为网络存储挂载给多个虚拟机或容器使用。这时可以用“Directory”存储类型。# 1. 创建挂载点 mkdir -p /mnt/movies # 2. 获取分区的UUID (更稳定) 或 设备名 blkid /dev/sdc1 # 3. 编辑 /etc/fstab 实现开机自动挂载 # 添加一行例如 UUID你的分区UUID /mnt/movies ext4 defaults 0 0 # 4. 手动挂载测试 mount -a df -h /mnt/movies # 查看是否挂载成功然后在PVE Web界面“添加” - “目录”ID:movie_share目录:/mnt/movies内容: 可以勾选“磁盘映像”和“容器”但注意如果你只是存文件虚拟机可以通过Samba或NFS分享这个目录不一定非要用PVE的存储功能。这里添加为Directory存储更多是为了方便上传ISO或容器模板。4.4 监控与维护SMART检测与性能查看硬盘健康是数据安全的基石。定期检查硬盘的SMART状态是个好习惯。# 安装 smartmontools apt install smartctl -y # 查看硬盘基本信息及健康状态 smartctl -i /dev/sdb smartctl -H /dev/sdb # 查看详细的SMART属性数据关注 Raw_Read_Error_Rate, Reallocated_Sector_Ct, Current_Pending_Sector等 smartctl -A /dev/sdb # 对于机械硬盘可以启动一个长时间的自我测试后台运行 smartctl -t long /dev/sdb # 一段时间后查看测试结果 smartctl -l selftest /dev/sdb对于性能可以使用iostat命令查看磁盘实时IO情况。# 安装 sysstat apt install sysstat -y # 每2秒刷新一次查看所有磁盘的IO统计 iostat -dx 2关注%util利用率接近100%表示磁盘忙和await平均IO等待时间单位毫秒值越大表示响应越慢。5. 虚拟机层面的配置与直通考量存储配置好后如何在虚拟机中使用它呢5.1 为虚拟机添加新磁盘创建新虚拟机或编辑现有虚拟机时在“硬件”选项卡点击“添加” - “硬盘”。存储 这里就可以选择我们刚添加的data_store或ssd_store了。大小 设置虚拟磁盘容量。得益于Thin Provisioning你可以分配一个比物理池实际空间更大的值超分配但需谨慎管理避免所有虚拟机同时写满导致池空间耗尽。总线/类型 对于Linux虚拟机VirtIO SCSI或VirtIO Block是性能最好的选择但需要虚拟机内安装驱动PVE提供的virtio驱动ISO。对于Windows虚拟机如果没装驱动可以先选择SATA或SCSI以确保能识别。缓存 默认的“无”或“Write back”性能较好但断电有数据风险。对于数据盘如果宿主机有UPS可以用“Write back”对于重要数据或没有UPS建议用“Write through”或“无”。“Direct Sync”最安全但性能最差。SSD仿真和Discard 如果后端存储是SSD并启用了Discard这里可以勾选让虚拟机操作系统也能进行TRIM操作。添加后启动虚拟机在操作系统内进行分区、格式化、挂载操作就像使用一块物理硬盘一样。5.2 硬盘直通Passthrough的利与弊有时你可能需要让虚拟机独占一块物理硬盘以获得最佳性能或兼容性例如跑TrueNAS/黑群晖这类NAS系统。这就是硬盘直通。两种主要方式PCIe直通VFIO 将整个SATA控制器或NVMe设备通过VT-d/AMD-Vi技术直接传递给虚拟机。性能无损但该控制器上的所有硬盘都将从宿主机“消失”完全由虚拟机控制。配置较复杂需要编辑GRUB、加载VFIO模块等。磁盘设备直通 将单个硬盘如/dev/sdb作为“裸设备”映射给虚拟机。PVE可以通过“添加” - “硬盘” - 选择“未使用的磁盘”来实现。这种方式相对简单。直通的优缺点优点 性能最好延迟最低兼容性极佳虚拟机内可以直接看到硬盘的SMART信息。缺点 失去了PVE存储管理的灵活性快照、迁移、备份变得困难如果直通的硬盘故障可能会影响虚拟机稳定性配置稍复杂。个人建议除非有非常明确的性能需求或兼容性要求如运行需要直接控制硬盘的NAS系统否则对于大多数应用场景使用PVE提供的虚拟磁盘qcow2/raw格式并配合LVM-Thin或ZFS在管理灵活性、快照功能和性能之间能取得更好的平衡。虚拟磁盘的性能损失对于绝大多数应用来说已经微乎其微。6. 存储扩容、迁移与故障排查思路6.1 存储空间不足在线扩容LVM-Thin池如果你的data_store快满了而物理硬盘还有剩余空间比如你当初只用了分区可以扩容Thin Pool。# 假设我们之前用了 /dev/sdb1 分区现在想扩大到整个 /dev/sdb # 1. 首先删除原有分区创建一个新的更大的分区操作前备份数据此操作有风险 # 2. 扩容物理卷 (假设新分区还是 /dev/sdb1) pvresize /dev/sdb1 # 3. 查看卷组空闲空间是否增加 vgdisplay vg_data # 4. 扩容Thin Pool lvextend -l 100%FREE vg_data/lv_thin_pool扩容后在PVE Web界面里存储的容量显示可能会稍有延迟或需要刷新但池的物理空间已经增加。注意这扩展的是“水池”的大小虚拟机内看到的磁盘大小并不会自动增加你还需要在虚拟机内部操作系统里扩展分区和文件系统。6.2 虚拟机磁盘迁移PVE的一个强大功能是可以在不同存储之间在线迁移虚拟磁盘。比如你想把一台虚拟机的系统盘从慢速的机械盘存储迁移到高速的SSD存储。在虚拟机“硬件”选项卡点击需要迁移的硬盘。点击“磁盘操作”下拉菜单选择“迁移”。选择目标存储如ssd_store可以勾选“在线迁移”以避免关机。点击“迁移”。迁移速度取决于磁盘大小和存储性能。6.3 常见故障排查思路问题 虚拟机无法启动提示“找不到启动磁盘”或“磁盘锁定”。排查 检查存储是否离线。在Shell执行pvesm status查看存储状态。检查物理连接、网络连接如果是网络存储。尝试在节点上stop再start虚拟机。问题 存储显示“不可用”或“错误”。排查 检查/etc/pve/storage.cfg配置文件看存储定义是否正确。检查挂载点是否存在、权限是否正确。对于Directory存储检查/etc/fstab挂载是否成功。查看系统日志journalctl -xe获取错误详情。问题 LVM-Thin池空间耗尽虚拟机无法写入。排查 这是Thin Provisioning的最大风险。首先用lvs查看池的“Data%”使用率。如果已满最快的解决办法是扩容物理池见6.1。如果无法立即扩容可以尝试清理虚拟机内不必要的文件。迁移部分虚拟磁盘到其他存储。如果虚拟机支持在客体内执行fstrim需要Discard支持来释放空间。预防 务必监控存储使用率不要过度超分配。在PVE的“监控”选项卡中可以为存储设置告警。折腾存储是玩转PVE的必修课它没有想象中那么难但细节很多。核心思路就是分层理解物理设备 - 操作系统识别 - LVM/ZFS管理 - PVE存储抽象 - 虚拟机使用。每一步都搞清楚自己在做什么为什么要这么做遇到问题就沿着这个链条从上到下或从下到上去排查大部分问题都能迎刃而解。最后对于生产环境任何磁盘操作前做好备份永远是第一铁律。

相关新闻

VTAgent:基于智能体关键帧锚定的证据感知视频问答技术

VTAgent:基于智能体关键帧锚定的证据感知视频问答技术

1. 项目缘起:当视频问答遇上“证据”难题如果你做过视频内容理解相关的项目,尤其是那种需要从一段视频里回答问题的任务,你肯定遇到过一种让人头疼的情况:模型给出的答案听起来头头是道,逻辑自洽,但仔细一核…

2026/9/28 1:46:40 阅读更多 →
数学建模国赛72小时高效团队协作SOP:从分工到时间管理的实战指南

数学建模国赛72小时高效团队协作SOP:从分工到时间管理的实战指南

1. 从“单打独斗”到“精密协作”:国赛的本质是团队项目如果你点开这篇文章,大概率是第一次或者第二次参加全国大学生数学建模竞赛(简称“国赛”)。在准备过程中,你可能听过无数遍“团队合作很重要”,但这句…

2026/10/9 3:19:21 阅读更多 →
Mathor Cup数学建模竞赛备赛指南:从通知解读到实战策略

Mathor Cup数学建模竞赛备赛指南:从通知解读到实战策略

1. 竞赛全景与核心价值解析又到了一年一度让无数理工科学子既兴奋又头疼的时节——Mathor Cup数学建模竞赛的通知发布了。对于在校大学生,尤其是数学、计算机、金融、工程等相关专业的朋友来说,这个名字绝不陌生。它不像一些纯理论的数学竞赛那样曲高和寡…

2026/10/5 20:50:55 阅读更多 →

最新新闻

算法训练营第一天:二分查找、移除元素与有序数组平方的双指针实战

算法训练营第一天:二分查找、移除元素与有序数组平方的双指针实战

1. 训练营第一天为什么安排这三道题1.1 三道题背后的知识点串联第一天进代码随想录算法训练营,很多人第一反应是先截图打卡、问用什么语言、要不要装环境。但我建议先花十分钟把 704、27、977 这三道题当成一个整体来看。它们的编号不同、难度都偏入门,但…

2026/10/9 11:21:13 阅读更多 →
内存与外存的本质区别:地址空间、访问路径与功能性分层

内存与外存的本质区别:地址空间、访问路径与功能性分层

1. 为什么“内存 vs 外存”这个问题,90%的人一开口就错?刚在某高校实验室带学生做嵌入式系统调试,一个大三同学指着开发板上两颗芯片问:“老师,这颗标着DDR4的是内存,旁边那颗eMMC是不是就是外存&#xff1…

2026/10/9 11:21:13 阅读更多 →
T3 Stack全栈开发实战:tRPC与Prisma打造类型安全应用

T3 Stack全栈开发实战:tRPC与Prisma打造类型安全应用

第一次看到 t3code 这个名字,我以为是某个代码生成器,后来才反应过来,它其实指向的是 T3 Stack 最佳实践下的那套全栈代码工程。T3 Stack 是 tRPC、Tailwind CSS、TypeScript 的合称,搭上 Next.js 之后,相当于把前端页…

2026/10/9 11:21:13 阅读更多 →
AI提示词注入攻击与防御实战:从三层防护模板到系统加固

AI提示词注入攻击与防御实战:从三层防护模板到系统加固

提示词工程做到后面,真正拉开差距的不是谁写的指令更花哨,而是谁能在恶意输入面前立得住。这话不是夸张。我前段时间接手一个AI客服项目,上线第三天就翻车了——有用户输入了一行看似普通的文字,让机器人在回复里把系统提示词原文…

2026/10/9 11:21:13 阅读更多 →
前端上传图片显示0kb破损?完整排查思路与根因分析

前端上传图片显示0kb破损?完整排查思路与根因分析

做前端最常碰到的一类“疑难杂症”,就是用户上传图片后,页面怎么刷新都是一张0kb的破损图,要么干脆裂开,要么显示文件已损坏。前几天我刚处理过一起类似的生产事故,用户反馈头像上传成功后怎么都是空白,花了…

2026/10/9 11:21:13 阅读更多 →
Agent-Reach 实战:CLI 驱动 AI Agent 的架构、安装与自动化

Agent-Reach 实战:CLI 驱动 AI Agent 的架构、安装与自动化

1. 从零认识 Agent-Reach:一个 CLI 驱动的 AI Agent 工具到底解决什么问题第一次看到 Agent-Reach 这个名字,我下意识把它归类成又一个"套壳聊天框"。真正跑起来之后才发现,它的定位其实更偏底层——一个用命令行驱动的 AI Agent 执…

2026/10/9 11:20:12 阅读更多 →

日新闻

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API这个话题,隔三差五就会在群里被翻出来讨论一次。上周还有个同事线上处理一个订单超时问题,排查到最后发现是ZonedDateTime序列化后时区丢了,用户在下单当天晚上看到的时间整整差了8个小时。这类问题几乎每个做Java开发的人都遇到过…

2026/10/9 0:00:49 阅读更多 →
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

前几个月我手头有好几台机器需要互相访问:办公室台式机、家里 NAS、还有一台云主机。如果只是偶尔传个文件倒还好,问题是工作场景经常要在几处环境之间来回切换,每次都先登录跳板机再层层代理,实在折腾。我先后试过端口映射、自建…

2026/10/9 0:00:49 阅读更多 →
AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent 这个词在过去一年里被反复提及,但真正动手搭过一套能跑起来的 Agent 系统的人都知道,从"知道它是什么"到"让它稳定干活"之间隔着一整套工程决策。我前后参与过几个 Agent 项目的落地,从最初用现成框架拼装&…

2026/10/9 0:01:50 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:32 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:40 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 10:11:06 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 21:13:17 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 6:17:20 阅读更多 →