Linux数据盘格式化实战:设备确认、分区、mkfs与挂载避坑指南

1. 格式化前先搞清楚这几件事

接到一台机器,客户说数据盘满了,想要重新格式化,我第一句话永远都是:数据备份了吗?这不是客套,是血泪教训。Linux下格式化硬盘这个操作,新手看起来就是一条mkfs.ext4 /dev/sdb的事,但实际上踩过坑的人都知道,真正难的从来不是那一条命令,而是格式化之前和之后的那些细节。

你说它难吗?真不难。但你如果没想清楚下面几个问题就动手,轻则分区表写错、文件系统类型选错,重则把系统盘当成数据盘给抹了,那可就真的欲哭无泪了。所以我把这个主题拆成一条完整的链路:从确认设备、规划分区、选择文件系统、执行格式化,到挂载配置和常见故障排查,每一步我都会把背后的原理和取舍逻辑讲清楚,不是单纯把命令抄给你,而是让你知道为什么这么做。

这篇文章适合谁?适合刚接触Linux服务器运维、准备自己动手给机器加数据盘、或者遇到“硬盘不识别/需要重新分区”这类问题的朋友。哪怕你之前对格式化一无所知,照着这个流程走完,也能心里有底。已经有一定经验的老手,也可以重点看看第4节和第5节,里面有几个坑我敢说大多数人第一次都踩过。

在开始操作之前,有一个原则必须先立住:任何格式化操作都是毁灭性的。格式化会抹掉设备上的所有数据,没有后悔药。下面我就从确认设备这一步开始,把完整流程一步步拆给你看。

1.1 先确认你要格式化的是哪块盘

这一步看起来多余,但恰恰是事故率最高的环节。很多人一进终端就是lsblk看一眼,然后凭记忆判断“sdb应该是数据盘”,结果sdb其实是另一个系统分区,或者机器上有两块一样的盘,搞混了就麻烦了。

我自己的习惯是,动手之前至少用三条命令交叉确认:

lsblk blkid lsscsi

lsblk看的是块设备的层级关系,能一眼看出每块盘的分区情况和挂载点;blkid看的是设备上的文件系统类型和UUID;lsscsi看的是物理设备的SCSI信息,像磁盘型号、序列号这些。

然后还要对照/dev/disk/by-id/目录,这里能看到带厂商和序列号的设备链接,用来区分多块同型号硬盘最稳。比如:

ls -l /dev/disk/by-id/

你能看到类似ata-INTEL_SSDSC2BB800G8_BTCD404 SOMETHING这样的名字,这个就是你物理硬盘的唯一标识。比对一下序列号和机器上贴的标签,确认无误再动手,这个习惯能救你命。

另外一个判断要点是:看挂载点。如果某块盘已经挂载到/或者/boot,那绝对不能碰。如果你是在云主机上操作,还要特别注意云厂商的控制台上可能有一块“系统盘”和一块“数据盘”,系统盘的设备名通常是/dev/vda或/dev/sda,数据盘是/dev/vdb、/dev/vdc这类,也要先确认清楚。

注意:不要在不确定设备名的情况下执行任何命令,更不要拿dd或者mkfs去试,试错的代价是数据全部丢失。

1.2 格式化前必须做的两个动作

确认了设备名,接下来就是两个操作:第一,备份数据;第二,卸载分区。

备份这个事,我不想多展开,只说一句:如果盘上有业务数据,先拷贝到别处或者做快照,宁可多备份一份也不要有侥幸心理。特别是云主机,在控制台给云盘做快照是非常简单但最有效的保险手段。

然后就是卸载。如果这个分区已经挂载,直接格式化通常会失败,因为系统会提示设备忙。卸载命令是:

umount /dev/sdb1

如果你不确定挂载到哪个目录,可以看df -h或者lsblk的输出。万一提示target is busy,说明有进程正在使用这个挂载点,可以用fuser -m /dev/sdb1查看占用进程,确认没问题后再卸载。

还有一个细节:如果这块盘上配了swap分区,格式化之前要用swapoff /dev/sdb2先关掉,否则也会被占用。这些“占坑”的行为不提前处理,后面执行格式化时就会莫名其妙地报错,而且报错信息还特别容易让人误解。

2. 分区方案:GPT还是MBR,分区表怎么规划

设备确认好、数据搞定之后,第二个决定就是对整块盘做分区规划。很多人格式化失败或者格式化后出现各种别扭问题,根子不在mkfs那一步,而是在分区表的选择和分区大小的规划上。

2.1 分区表类型怎么选

分区表就是你这块盘的“目录索引”,它决定了系统怎么理解磁盘上的分区结构。目前主流就两种:MBR 和 GPT。

  • MBR 是老标准,最大只支持2TB的磁盘,而且最多只能建4个主分区。想突破4个分区就得用扩展分区+逻辑分区,麻烦且限制多。
  • GPT 是新一代标准,理论上支持超大容量,PB级别都没问题,分区数量也几乎不受限。UEFI引导的系统通常都要求GPT。

现在的Linux发行版,两年前装的新机器基本都是GPT了。但如果你的盘是给老机器、老系统、或者一些特殊设备用的,MBR在某些特定兼容场景下还有存在价值。

我的建议很直接:除非你有明确的兼容性要求,否则一律用GPT。理由有两点:

  1. 容量支持无压力,单盘多大都能用;
  2. parted和fdisk对GPT的支持都很成熟,不会碰到莫名其妙的坑。

实际操作上看一下这块盘当前用的是哪种分区表:

fdisk -l /dev/sdb

输出的Disk label type字段就是分区表类型。如果是dos,那就是MBR;如果是gpt,那就是GPT。

2.2 用 fdisk 还是 parted

Linux下分区工具最常用的是fdisk和parted,另外还有一个gdisk,是专门操作GPT的。

fdisk的老版本对GPT支持不是太好,容易把GPT盘识别成损坏的MBR,但新版 util-linux 的 fdisk 已经默认支持GPT。我的习惯是:容量小于2TB的盘用fdisk,大于等于2TB的用parted。

为什么这样分?因为fdisk是交互式工具,给新手更友好,你用m可以随时查看帮助,不容易误操作。而parted是命令行参数直接操作,写错一个参数可能就真的把分区表搞废了。但parted对超大规模磁盘和GPT的处理更稳重,大容量场景下我比较信赖它。

简单说:

工具优点适合场景
fdisk交互友好、内置帮助完善新手、2TB以下磁盘
parted参数化操作、支持GPT/UEFI大容量磁盘、自动化脚本
gdisk专为GPT设计纯GPT操作、排查GPT问题

如果是新盘,我通常直接用fdisk就够了,几分钟能搞定。下面用一个例子演示。

2.3 实际分区操作演示

假设我们要把一块/dev/sdb的2TB数据盘分成一个整分区:

fdisk /dev/sdb

进入交互模式后,按顺序操作:

  1. 输入g,创建GPT分区表;
  2. 输入n,新建分区,一路回车使用默认的起始和结束扇区;
  3. 输入w,写入分区表并退出。

结束之后验证一下:

lsblk /dev/sdb

你应该能看到/dev/sdb1了。如果只是想分一个区,这样操作就完成了。如果要做成多分区,比如一个数据分区一个备份分区,就在n的时候指定起始和结束位置的空间大小,按+500G这种格式输入即可。

这里有个特别重要的提醒:分区操作完成后,在一定情况下内核并没有马上重读分区表,尤其是你在系统运行状态下操作一块已经存在过分区表的盘,可能会出现/dev/sdb1不存在的现象。这时候不需要重启,执行下面的命令让内核重新读取:

partprobe /dev/sdb

partprobe是让内核重新识别分区表的工具,能解决大部分“分区建了但看不到”的问题。

3. 文件系统选型与格式化实操

分区搞定了,下面就是重头戏:格式化,也就是创建文件系统。这一步要做两个决定:用什么文件系统类型,以及用什么参数。

3.1 文件系统类型怎么选

Linux下常用的文件系统有这么几种:ext4、xfs、btrfs,还有比较新的f2fs(主要给闪存用)。

  • ext4:最老牌、最稳,兼容性最好。几乎所有Linux发行版默认都支持,出问题也好修复。适合通用场景,比如系统盘、普通数据盘。
  • xfs:高性能大文件读写是其强项,特别适合大容量数据存储、数据库文件目录这类场景。RHEL系、一些云服务器的默认数据盘文件系统就是xfs。它最大的坑是:缩容极难,只能扩大不能缩小(或者说缩小非常麻烦)。
  • btrfs:功能多,支持快照、压缩、校验和,适合做复杂存储,但对新手来说坑也比较多,日常普通使用没有必要选它。

如果你不想想太多,我给的默认答案就是:小容量盘和通用场景用 ext4,大容量数据盘和性能敏感场景用 xfs。这个组合在业界经过了最广泛的验证,不会出幺蛾子。

顺便说一个查看当前系统支持哪些文件系统的办法:

cat /proc/filesystems

比如里面列了ext4、xfs、btrfs、vfat等。如果你需要兼容Windows和Linux双系统访问的U盘,那就要选vfat(即FAT32)或者exFAT,这个不在我们服务器场景的讨论范围内。

3.2 mkfs 命令实操

创建文件系统的命令就是mkfs,它有很多家族成员:mkfs.ext4、mkfs.xfs、mkfs.btrfs。命令本身非常简单:

mkfs.ext4 /dev/sdb1

或者:

mkfs.xfs /dev/sdb1

但直接执行这个有个小隐患:如果/dev/sdb1上已经存在文件系统,mkfs会询问你确认,有些脚本场景下会卡住。这时可以用-F强制,但我不建议一开始就这么干,手动操作时多个确认反而是好事。

mkfs.ext4 -F /dev/sdb1

格式化的过程中,终端会刷一些进度信息,等它回到命令行提示符,文件系统就创建好了。接着用blkid验证:

blkid /dev/sdb1

输出里会看到TYPE="ext4"或者TYPE="xfs",以及一串UUID。这个UUID就是这块文件系统的唯一身份标识,后面配置开机自动挂载时要用。

3.3 几个值得加的参数

如果你只是跑一条裸命令能用,但生产环境里我通常建议加几个参数,尤其是ext4:

mkfs.ext4 -L data_disk -m 1 -T largefile /dev/sdb1

这里的含义:

  • -L data_disk:给这个文件系统打一个卷标,叫data_disk。卷标可以用blkid或者e2label查看,管理多块盘时非常方便。
  • -m 1:把保留给root用户的空间比例从默认的5%降为1%。默认5%的意思是,一个1TB的盘,格式化完会“少掉”50GB,root保留用。如果是纯数据盘,这个5%纯属浪费,设成1%就能多出4%的可用空间。
  • -T largefile:告诉mkfs这个文件系统预期存储大文件,会适当调整inode数量——大文件数量多的时候,默认inode会太多用不完,浪费空间。

xfs的参数相对少一些,我一般加-L卷标就够了:

mkfs.xfs -L data_disk /dev/sdb1

如果你是给SSD建文件系统,建议留意一下基础对齐问题。用fdisk建分区时,默认起始扇区已经是1MiB对齐了,不需要特别设置。这一点老教程里经常不写,但如果你用的系统和内核比较老,或者用了一些不规范的脚本分区,对齐出问题会直接导致性能严重下降。后面第5节我再细说。

4. 挂载与开机自动挂载配置

格式化完成并不等于这块盘能用了,你还需要把它挂载到某个目录,Linux系统才能往里写数据。

4.1 手动挂载

先建一个目录作为挂载点:

mkdir -p /data mount /dev/sdb1 /data

mount之后用df -h检查,你应该能看到/dev/sdb1挂载到了/data。如果这一步报错,最常见的原因是文件系统类型识别错误,比如你格的是xfs,但没指定-t xfs,系统自动识别应该没问题,但遇到老内核就可能失败。稳妥做法是:

mount -t ext4 /dev/sdb1 /data

手动挂载的问题是:重启机器之后它就失效了,你还得再来一次。所以接下来要配置开机自动挂载。

4.2 修改 /etc/fstab 的正确姿势

持久化挂载要改/etc/fstab文件。这个文件里每一行是一个挂载配置,格式是:

设备标识 挂载点 文件系统类型 挂载选项 是否dump 是否fsck

我强烈建议是用UUID而不是设备名,因为设备名可能在重启之后发生变化(比如新插了一块盘,原来的sdb可能变成sdc),而UUID是跟着文件系统走的,不会变。

先用blkid查到UUID:

blkid /dev/sdb1

假设返回UUID="4a2f2afe-7aa0-4c2f-bd53-ae5c1234abcd" TYPE="ext4",那在/etc/fstab里追加一行:

UUID=4a2f2afe-7aa0-4c2f-bd53-ae5c1234abcd /data ext4 defaults 0 2

如果文件系统是xfs,最后那个检查数字建议写成 0,因为xfs不参与常规fsck:

UUID=4a2f2afe-7aa0-4c2f-bd53-ae5c1234abcd /data xfs defaults 0 0

关于挂载选项,defaults已经包含rw,suid,dev,exec,auto,nouser,async这些常用组合。数据盘我会额外加一个noatime,意思是访问文件时不去更新时间戳,减少写入频率,对SSD和机械盘都有轻微的性能提升:

UUID=... /data ext4 defaults,noatime 0 2

改完这个文件,千万别直接重启来验证,那样太慢了。用下面这个命令校验配置是否正确:

mount -a

这个命令会重新读取/etc/fstab并挂载所有尚未挂载的分区。如果配置有问题,它会立刻报错,而且不会等重启才暴露。这是我一直强调的做法:改fstab后第一时间用 mount -a 验证,不要盲目重启。

注意:fstab配置写错是启动崩溃的经典原因。最常见的坑是UUID写错了一个字母,或者文件系统类型不匹配,导致开机时挂载失败进入emergency mode。如果出现了这种情况,在emergency模式下手动修正/etc/fstab即可。

5. 常见问题、性能优化与避坑心得

到这一步,基本流程已经走完。但真正让一篇博文有价值的地方,是那些你不会在官方文档里看到的坑和排查思路。我把我这些年遇到的高频问题做一个汇总。

5.1 常见问题速查

现象原因解决办法
mkfs提示设备忙分区已挂载或swap在使用umount或swapoff,必要时fuser -m查占用
分区之后/dev/sdb1不存在内核未重新读取分区表执行partprobe /dev/sdb
blkid看不到UUID设备未正确格式化重新mkfs,用blkid -p /dev/sdb1强制读取
挂载后内容为空或异常文件系统损坏或选错类型fsck检查文件系统,确认mount -t类型
fstab配错导致开不了机UUID或格式错误进入紧急模式修复fstab后重启
df -h显示容量偏小文件系统保留块太多或对齐问题ext4用-m 1重新格式化;检查分区起始扇区是否1MiB对齐
格式化整块盘总失败盘上有旧分区表或正在使用清空分区表wipefs -a /dev/sdb后重新分区
无法向挂载点写入权限或SELinux上下文问题检查目录权限;用chmod或调整SELinux策略

这里特别想说一个命令:wipefs。如果你拿到一块旧盘,上面有历史分区表或文件系统残留,直接fdisk分区会报一些很奇怪的错。用wipefs -a /dev/sdb可以干净地擦除这个设备上的签名,然后再分区格式化就清爽了。

注意wipefs也是毁灭性的,先确认设备名再执行。

5.2 关于对齐和性能的几个实操点

硬盘格式化之后性能好不好,很多时候在分区阶段就决定了。SSD和高级格式化的4K机械盘,都要求分区起始扇区对齐到1MiB,否则跨物理扇区读写,性能直接腰斩。

用fdisk交互式分区时,默认值就是对齐好的。但如果你用老版本parted或者自己手工指定扇区起始位置,就容易出问题。怎么检查是否对齐?看起始扇区能不能被2048整除:

fdisk -l /dev/sdb

输出里Start这一列如果是2048、4096这种数字,就是对齐的。如果看到一个像63这样的数字(老MBR的默认起始),那基本没对齐。重新分一次区就行,分区表错了改起来成本最小。

另一个和性能相关的点是TRIM,这主要针对SSD。格式化的时候最好加上discard相关支持。对ext4,可以直接挂载时用discard选项,或者用fstrim定时任务来自动回收。现在的系统普遍推荐用fstrim而不是挂载时带discard,因为实时discard在某些场景下反而影响性能。简单说:

fstrim -v /data

如果是云主机,大多数云盘的底层已经做了空间回收,这个可以不折腾。

5.3 数据盘到底要不要做swap分区

最后说一个经常被问到的问题:格式化数据盘时要不要顺便分一个swap区?

我的看法是:现在内存普遍够大,swap一般不是必需品。但如果你跑的是一些内存敏感的任务,比如编译、跑容器、或者启动一些吃内存的中间件,在磁盘上留4到8GB的swap备用还是有意义的。做法是单独分一个小分区,比如/dev/sdb2,然后:

mkswap /dev/sdb2 swapon /dev/sdb2

同样,持久化配置要写到/etc/fstab,这行的类型是swap。如果不想单独占分区,也可以直接用一个swap文件,看个人习惯。

不过提醒一句:如果你的数据盘是高延迟的机械盘,swap反复读写会拖累整体性能,多买点内存才是正经事。

6. 给新手的完整实操复盘

最后我用一个最典型的场景,把整个流程串一遍,你照着操作基本不会出错。场景:一台Linux服务器,加了一块2TB的云数据盘,设备名/dev/vdb,我要把它格式化成xfs并挂载到/data。

第一步,确认设备:

lsblk

看到/dev/vdb确实存在,没有挂载点,大小是2T。这就放心了。

第二步,备份检查。新盘不需要备份,但还是用blkid /dev/vdb看了一眼,没有任何输出,代表上面没有文件系统。

第三步,分区:

fdisk /dev/vdb

交互里输入g(新建GPT分区表),n(新建分区),回车默认全盘容量,最后w写盘。

执行partprobe /dev/vdb让内核识别新分区,再lsblk确认多了/dev/vdb1。

第四步,格式化:

mkfs.xfs -L data_disk /dev/vdb1

执行完之后blkid /dev/vdb1查看UUID和文件系统类型。

第五步,挂载:

mkdir -p /data mount /dev/vdb1 /data df -h

看到/data挂载成功,总容量正确。

第六步,配置开机自动挂载。用blkid拿到UUID,编辑/etc/fstab,加一行:

UUID=那个长长的字符串 /data xfs defaults,noatime 0 0

然后执行mount -a验证fstab配置没问题。至此,这块盘就能正常使用了。

整个流程看起来步骤不多,但每一步背后的判断和隐藏的坑,我在前面都展开了。你以后不管碰到什么盘、什么系统,只要先把“确认设备 → 备份 → 分区 → 格式化 → 挂载 → 持久化”这条链路记在心里,再遇到问题就不会慌。

我在实际运维中还有一个习惯,就是每次格式化之前,都会在终端里先敲一行date,记录一下当前时间,然后在做完所有操作之后再敲一次history | tail -20看一眼关键命令有没有敲错。这个习惯看起来没什么技术含量,但它能帮你复盘整个操作过程,尤其是在多台机器并行操作的时候,一份清晰的操作记录比什么文档都管用。格式化这件事,从来不是命令复杂,而是心要细。

相关新闻

多传感器数据分析:从nuScenes坐标系对齐到BEV特征构建全流程

多传感器数据分析:从nuScenes坐标系对齐到BEV特征构建全流程

简介:面向自动驾驶研究与工程实践,这份资源以nuScenes多模态数据集为核心,提供基于Python的解析与可视化代码,适合需要处理LiDAR、摄像头、毫米波雷达等传感器数据的研究者与开发者。压缩包共8个文件,以Python脚本为主…

2026/10/20 3:52:15 阅读更多 →
Kubernetes四大节点组件原理与故障排查指南

Kubernetes四大节点组件原理与故障排查指南

1. 什么是Kubernetes节点组件?它到底在解决什么问题?你可能已经听过“K8s是云原生时代的操作系统”这种说法,但真正用过的人会发现:这句话不是比喻,而是事实——只不过这个“操作系统”不装在你的笔记本里,…

2026/10/20 3:52:15 阅读更多 →
构建个人技能体系:从清单到矩阵的迭代实战

构建个人技能体系:从清单到矩阵的迭代实战

“skills”这个标题看上去太简单了,简单到一眼扫过去容易直接略过。但你真把它当成一个项目来对待的时候,它可能是很多人一直想做、却迟迟没动手做对的那件事:把自己的技能体系盘清楚、搭起来、用起来。我不是在讲一个概念,我是把…

2026/10/20 3:52:15 阅读更多 →

最新新闻

x86-64内核启动:Multiboot协议与QEMU加载机制详解

x86-64内核启动:Multiboot协议与QEMU加载机制详解

简介:本资源是中科大操作系统课程实验一的完整实现包,面向刚接触操作系统开发的初学者,聚焦Multiboot协议启动机制的实践入门。内容涵盖Multiboot Header编写、VGA显存直写“helloworld”、串口输出“HELLOWORLD”等核心功能,并配…

2026/10/20 4:44:48 阅读更多 →
千问实战:从Function Calling到Agent,AI如何真正“干活”?

千问实战:从Function Calling到Agent,AI如何真正“干活”?

前两年我们夸一个大模型,说它“真能聊”,基本就是最高评价了。现在风向变了。最近一阵子,我观察到的现象是,包括千问在内的主流大模型,越来越强调“干活”而不是“对话”——它们开始调用工具、操作文件、跑流程&#…

2026/10/20 4:44:48 阅读更多 →
Vim制表符设置与命令模式高效编辑实战指南

Vim制表符设置与命令模式高效编辑实战指南

1. 为什么一个制表符设置能决定你写代码的效率和协作体验Vim制表符设置及命令模式下常用命令——这看起来像一句教科书目录,但对每天用Vim写代码、改配置、审日志的开发者来说,它其实是真实工作流里最常被低估的“隐形瓶颈”。我带过三届某高校Linux系统…

2026/10/20 4:44:48 阅读更多 →
知识工作流插件组合:从捕获到输出的效率提升实战指南

知识工作流插件组合:从捕获到输出的效率提升实战指南

做知识工作的人,电脑里一定有一堆工具:浏览器、编辑器、笔记软件、文档、表格,可能还有各种在线平台。工具多不是问题,真正的问题是它们彼此不连通。我查网页资料要复制粘贴到文档里,格式乱了重新排;写代码…

2026/10/20 4:44:48 阅读更多 →
嵌入法特征选择:原理、实操与避坑指南

嵌入法特征选择:原理、实操与避坑指南

做特征选择这件事,我见过最多的场景就是一张宽表摆在面前:几百列特征,业务方各说各话,时间又紧,不少人干脆套一个方差过滤或者直接上模型。这个系列写到第4篇,终于聊到嵌入法(Embedded Methods&…

2026/10/20 4:44:48 阅读更多 →
uniapp外卖小程序全链路方案:微信登录+AI评语+支付闭环

uniapp外卖小程序全链路方案:微信登录+AI评语+支付闭环

简介:这是一套基于uniapp开发的美团外卖风格微信小程序实战项目,融合人工智能评论识别、商家店铺与商品列表管理、用户授权登录、微信支付等核心功能,面向前端初学者及小程序进阶开发者,适用于课程设计、毕设选题或工程实训场景。…

2026/10/20 4:43:48 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

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

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

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

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

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

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/19 10:02:04 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 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/19 2:54:50 阅读更多 →
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/19 9:10:22 阅读更多 →
黑夜航拍船只数据集训练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/18 12:16:16 阅读更多 →