1. 为什么树莓派玩家绕不开“格式化SD卡”这件事
刚拿到树莓派的人,十有八九会卡在第一步:SD卡插上电脑,系统提示“需要格式化才能使用”,或者干脆在资源管理器里显示成一个容量只有几十MB的RAW分区。这时候很多人第一反应是右键格式化,结果要么报错,要么格式化完树莓派还是起不来。我自己第一次玩树莓派4B的时候,就因为用Windows自带的格式化工具处理了一张32GB的卡,烧录系统后板子死活不亮,折腾了大半天才发现是分区表被写坏了。
SD Card Formatter就是专门解决这类问题的工具。它由SD协会官方推出,针对SD/SDHC/SDXC卡的特性做了底层适配,能正确重建分区表和文件系统结构,而不是像系统自带工具那样“表面擦一擦”。对于树莓派玩家来说,无论你是准备烧录Raspberry Pi OS、Ubuntu 20.04,还是给树莓派5配一张高速卡跑YOLOv5推理,格式化这一步做对了,后面烧录、启动、读写的稳定性都会好很多。
这篇文章面向的是刚接触树莓派的新手,也适合那些“格式化过但总出问题”的玩家。我会把SD Card Formatter的下载、安装、参数选择、格式化后的验证,以及常见报错的排查思路完整讲一遍。文中涉及的操作步骤基于我自己的实操记录,参数选择部分会说明背后的原因,方便你理解而不是照抄。读完之后,你应该能独立判断一张卡该用哪种格式化方式,以及格式化失败时该从哪里下手排查。
2. 格式化前的准备工作与工具选型思路
2.1 为什么不用Windows自带格式化
Windows的资源管理器格式化功能,本质上是调用系统的格式化API,它对U盘、移动硬盘、SD卡一视同仁。问题就出在这个“一视同仁”上。SD卡内部有一颗控制器,负责磨损均衡、坏块管理、ECC纠错等事情,而Windows格式化只会重写文件系统区域,不会去碰SD卡的控制层信息。如果卡之前被烧录工具写过镜像(比如用Win32 Disk Imager或balenaEtcher烧过树莓派系统),分区表结构会变得很特殊,Windows经常识别不了,就弹出“需要格式化”的提示。
更麻烦的是,Windows格式化时默认的分配单元大小(簇大小)对SD卡并不友好。比如一张64GB的卡,Windows可能默认用128KB的簇,而树莓派系统里大量小文件读写,簇太大反而浪费空间、拖慢速度。SD Card Formatter会根据卡的容量和SD协议规范,自动选择合适的簇大小和文件系统类型,这是它比系统工具靠谱的核心原因。
2.2 SD Card Formatter的版本选择
SD Card Formatter目前有Windows版和macOS版,官网(sdcard.org)可以免费下载。Windows版安装包大概几MB,安装过程没什么坑,一路下一步就行。需要注意的是,网上有些第三方下载站会捆绑广告软件,建议直接从SD协会官网下载,避免装到奇怪的东西。
macOS版是dmg格式,拖进应用程序文件夹即可。如果你用的是M系列芯片的Mac,SD Card Formatter有对应的通用二进制版本,运行没问题。Linux用户稍微麻烦一点,官方没有原生Linux版,但可以用dd命令配合parted手动完成类似操作,后面我会单独讲。
提示:下载时认准SD Association官方渠道,安装包的数字签名可以右键属性查看,确认签名者是SD Association再安装。
2.3 格式化前的数据备份
格式化会清空卡上所有数据,这一步没有后悔药。如果你卡里还有照片、文档或者之前树莓派系统里的配置文件,先复制到电脑硬盘或者移动硬盘上。特别是玩树莓派的人,经常在/home/pi或者/boot里改过配置(比如config.txt、wpa_supplicant.conf),这些文件格式化后就没了,重新配一遍挺费时间。
备份的时候有个小技巧:如果卡在Windows里能识别但提示格式化,先别急着格,用DiskGenius或者R-Studio这类工具试着把分区里的文件读出来。很多时候分区表坏了但数据区还在,能救回大部分文件。等备份完再动手格式化,心里踏实。
2.4 读卡器的选择容易被忽略
SD卡格式化失败,有时候不是卡的问题,而是读卡器的问题。便宜的USB 2.0读卡器芯片方案老旧,对大容量SDXC卡(64GB以上)支持不好,格式化到一半报错很常见。我手头有一个十几块的读卡器,插64GB卡在SD Card Formatter里直接不显示盘符,换了一个支持UHS-I的读卡器就正常了。
建议用笔记本自带的SD卡槽,或者买一个明确标注支持SDXC、UHS-I的读卡器。树莓派5支持PCIe扩展,如果你用的是M.2 HAT转接板加NVMe硬盘,那SD卡只是用来做引导,对读卡器要求反而没那么高,但格式化这一步还是绕不开。
3. SD Card Formatter核心参数详解与实操步骤
3.1 界面功能分区说明
打开SD Card Formatter,界面很简洁,主要分三块:顶部的驱动器选择区、中间的格式化选项区、底部的信息显示区。驱动器选择区会列出当前电脑上所有可移动存储设备,注意别选错成U盘或者移动硬盘,选错了数据就没了。格式化选项区有两个模式:Quick format(快速格式化)和Overwrite format(覆盖格式化)。信息显示区会显示选中卡的容量、文件系统类型、分区信息等。
很多人第一次用会忽略信息显示区,其实这里很有用。如果卡之前被烧录过树莓派镜像,这里可能显示多个分区,或者显示文件系统为“RAW”。看到RAW就说明分区表有问题,必须用覆盖格式化才能彻底修复。
3.2 Quick format和Overwrite format怎么选
这两个模式的区别,用生活类比来说:Quick format就像把书架上的书全部拿走,但书架本身不动;Overwrite format则是把书架拆了重新装一遍,还把每层隔板擦干净。
Quick format只重写文件系统的元数据区域,速度快,32GB卡大概十几秒就完事。适合以下场景:卡是全新的,或者之前正常使用过、只是想把内容清空。缺点是如果卡上有坏块或者分区表损坏,快速格式化可能修不好,树莓派烧录后依然启动失败。
Overwrite format会把卡上每个扇区都写一遍(通常是写0),速度慢很多,32GB卡可能要十几分钟甚至更久,具体取决于卡的写入速度和读卡器。但它能强制刷新SD卡控制器的磨损均衡表,把潜在坏块标记出来,同时彻底清除旧的分区表残留。适合以下场景:卡之前烧录过树莓派系统、卡在Windows里提示格式化、卡是从其他设备拆下来的、卡疑似有坏块。
我的建议是:第一次给树莓派用的卡,或者卡之前烧录过镜像,一律用Overwrite format。虽然多等十几分钟,但能避免后面烧录系统后各种奇怪的启动问题。时间成本远比反复排查低。
3.3 逻辑大小调整(Logical Size Adjustment)
SD Card Formatter界面上有一个“Format Size Adjustment”选项,默认是Off。这个选项的作用是调整卡的分区容量。有些卡出厂时会有隐藏分区或者HPA(Host Protected Area),导致实际可用容量比标称小。开启这个选项后,工具会把卡的全部容量都划给主分区。
对于树莓派用户来说,这个选项一般保持Off就行。因为树莓派系统烧录后会自动扩展根分区到整张卡,不需要在这里提前调整。但如果你发现格式化后卡容量明显偏小(比如64GB卡只显示32GB),可以开启这个选项再格式化一次,通常能恢复全部容量。
3.4 完整格式化操作步骤
下面是我自己常用的操作流程,以Windows版为例:
- 把SD卡插入读卡器,读卡器插到电脑USB口。如果是笔记本自带SD卡槽,直接插进去。
- 打开SD Card Formatter,等待它识别到卡。如果没识别到,点一下“Refresh”按钮,或者拔插一次读卡器。
- 在驱动器下拉框里选中你的SD卡。这一步务必确认盘符和容量对得上,别选成U盘。
- 选择格式化模式。第一次用或者卡之前烧录过系统,选Overwrite format;日常清空选Quick format。
- Format Size Adjustment保持Off。
- 点击“Format”按钮,弹出确认框,点“是”。
- 等待进度条走完。Overwrite format模式下进度条会走得比较慢,耐心等。
- 格式化完成后,工具会弹出提示框,点“确定”。此时卡的文件系统应该是exFAT(64GB以上)或FAT32(32GB以下)。
格式化完成后,建议在资源管理器里打开卡,确认能正常读写。如果还是提示格式化,说明卡可能有硬件问题,换一张卡试试。
3.5 格式化后的验证方法
格式化完不代表万事大吉,最好做一次简单验证。我通常做两件事:第一,在卡里新建一个文本文件,写点内容,拔插一次读卡器,看文件还在不在;第二,用chkdsk命令检查文件系统错误。Windows下按Win+R输入cmd,然后执行:
chkdsk X: /f把X换成你的SD卡盘符。如果输出“Windows已扫描文件系统,未发现问题”,说明卡状态正常。如果有错误,chkdsk会尝试修复,修复后建议再格式化一次。
对于准备烧录树莓派系统的卡,还可以用SD Card Formatter的信息区确认分区数量。正常应该只有一个分区,如果显示多个分区,说明格式化没彻底,需要重新用Overwrite format再来一遍。
4. 树莓派场景下的格式化避坑与问题排查
4.1 格式化后树莓派还是启动不了
这是新手最常见的问题。格式化明明成功了,烧录系统也提示成功,但树莓派插电后绿灯不亮或者闪烁,屏幕没输出。原因通常不在格式化本身,而在烧录环节或者卡本身。
先排查烧录工具。balenaEtcher和Raspberry Pi Imager是树莓派官方推荐的烧录工具,前者跨平台,后者自带系统下载功能。如果你用的是Win32 Disk Imager,有时候会因为写入缓存没刷新导致镜像不完整。换balenaEtcher重新烧录一次,烧录完成后它会自动校验,校验通过再拔卡。
再排查卡的真伪。市面上有些扩容卡,标称64GB实际只有8GB,格式化时看不出来,烧录大镜像时就露馅了。用H2testw这个工具可以检测卡的真实容量,写满测试文件再读出来校验,扩容卡会报错。树莓派系统镜像一般2GB左右,扩容卡烧录时可能写到一半就失败。
最后排查读卡器。前面说过,老旧读卡器对大容量卡支持不好,烧录过程中可能丢数据。换一个读卡器重新格式化、重新烧录,往往能解决问题。
4.2 Windows提示“使用驱动器中的光盘之前需要将其格式化”
这个提示的意思是Windows识别到了存储设备,但读不出文件系统。对于SD卡来说,通常是因为卡之前被烧录过Linux镜像,分区表是ext4或者混合分区,Windows不认识。这时候不要点“格式化”,因为Windows的格式化修不好这种卡。
正确做法是打开SD Card Formatter,用Overwrite format模式格式化。如果SD Card Formatter也识别不到卡,试试用DiskGenius删除所有分区,再重建一个FAT32分区,然后再用SD Card Formatter格式化一次。我遇到过一张从树莓派3B上拆下来的16GB卡,Windows和SD Card Formatter都识别不了,用DiskGenius重建分区表后才恢复正常。
4.3 格式化速度异常慢或者卡死
Overwrite format本来就慢,但如果一张32GB卡格式化了半小时还没完,或者进度条卡在某个百分比不动,可能是卡有坏块。SD卡控制器在遇到坏块时会反复重试,导致速度骤降。这时候可以取消格式化,换Quick format试试,如果Quick format也卡死,基本可以判断卡报废了。
另一个可能是读卡器供电不足。有些USB Hub带不动读卡器,尤其是同时插了多个设备的时候。把读卡器直接插到电脑主板USB口,别经过Hub,往往能改善。
4.4 格式化后容量变小了
有玩家反馈,64GB卡格式化后只显示32GB甚至更小。这通常是卡出厂时带了隐藏分区,或者之前被某些工具写过HPA区域。解决办法是在SD Card Formatter里开启Format Size Adjustment选项,重新格式化一次。如果还是不行,用DiskPart命令行工具清理:
diskpart list disk select disk N clean create partition primary format fs=fat32 quick把N换成你的SD卡磁盘编号。注意diskpart的clean命令会清除磁盘上所有分区,操作前务必确认选对了磁盘,别把电脑硬盘清了。
4.5 常见问题速查表
| 问题现象 | 可能原因 | 解决思路 |
|---|---|---|
| Windows提示需要格式化 | 分区表被Linux镜像覆盖 | 用SD Card Formatter的Overwrite format |
| 格式化后树莓派不启动 | 烧录工具缓存问题或扩容卡 | 换balenaEtcher重新烧录,用H2testw验卡 |
| 格式化速度极慢或卡死 | 卡有坏块或读卡器供电不足 | 换读卡器直插主板USB,坏块卡建议更换 |
| 格式化后容量偏小 | 隐藏分区或HPA区域 | 开启Format Size Adjustment,或用diskpart清理 |
| SD Card Formatter识别不到卡 | 读卡器兼容性问题 | 换支持SDXC的读卡器,或笔记本自带卡槽 |
| 格式化完成但树莓派读写报错 | 簇大小不匹配或卡质量差 | 重新用Overwrite format,换卡测试 |
4.6 关于Linux下格式化的补充
如果你主力系统是Linux,没有SD Card Formatter可用,可以用命令行完成类似操作。先确认卡设备名:
lsblk找到你的SD卡,比如/dev/sdb。然后卸载所有分区:
sudo umount /dev/sdb*接着用dd命令把卡开头部分清零,相当于Overwrite format的简化版:
sudo dd if=/dev/zero of=/dev/sdb bs=1M count=100最后用parted或fdisk重建分区表,格式化为FAT32:
sudo parted /dev/sdb mklabel msdos sudo parted /dev/sdb mkpart primary fat32 1MiB 100% sudo mkfs.vfat -F 32 /dev/sdb1这套流程我在Ubuntu 20.04和树莓派Trixie上都用过,效果和SD Card Formatter的Quick format接近。但要注意dd命令的of=参数千万别写错,写错了可能把系统盘清了。
5. 格式化之外的延伸:树莓派存储卡的选择与维护
5.1 什么样的SD卡适合树莓派
树莓派对SD卡的速度和耐久度有一定要求。Class 10是最低门槛,UHS-I Speed Grade 1(U1)够用,如果跑树莓派5或者做NAS、跑YOLOv5推理,建议上U3或者A2级别的卡。A2级别的卡随机读写性能更好,系统启动和软件加载会快不少。
容量方面,16GB够跑基础系统,32GB适合大多数项目,64GB以上适合做媒体中心或者跑多个容器。但要注意,树莓派4B和5对SDXC卡的支持没问题,老款的树莓派1代和2代对64GB以上卡可能有兼容性问题,建议用32GB以下。
品牌上,SanDisk、Samsung、Kingston的卡我用下来比较稳。杂牌卡标称速度虚高,实际写入可能只有几MB/s,烧录系统时能急死人。
5.2 日常使用中的卡维护
SD卡是消耗品,尤其是树莓派这种7x24小时运行的项目,卡上的系统分区频繁读写,寿命会缩短。几个维护习惯可以延长卡的寿命:第一,关闭不必要的日志写入,在/etc/fstab里把/var/log挂到tmpfs;第二,定期用SD Card Formatter做一次Overwrite format,刷新控制器状态;第三,重要数据定期备份到外部存储,别只存卡里。
如果树莓派项目对稳定性要求高,比如做ADS-B接收或者人脸识别门禁,建议用USB启动或者NVMe启动(树莓派5支持PCIe),把系统跑在外接硬盘上,SD卡只做引导。这样既快又稳,卡也不容易坏。
5.3 格式化与烧录的配合流程
最后梳理一下从拿到新卡到树莓派跑起来的完整流程:新卡先用SD Card Formatter做一次Overwrite format,然后用Raspberry Pi Imager烧录系统,烧录完成后不要急着拔卡,等Imager校验通过。拔卡前在系统里安全弹出,避免写入缓存没刷新。插到树莓派上首次启动,等待系统自动扩展分区和重启。如果启动失败,先检查烧录工具和卡的真伪,再考虑重新格式化。
这套流程我用了几年,从树莓派3B到4B再到5,基本没出过问题。格式化这一步看似简单,但它是整个链路的地基,地基没打好,后面烧录再顺利也是白搭。希望这篇内容能帮你少走一些弯路,把时间花在真正有意思的项目上。