在Luckfox Lyra(Zero W)上将TF卡格式化为ext4文件系统
本文提供了一个在Luck-fox Lyra Zero W开发板上,直接通过命令行将TF卡(SD卡)从默认的VFAT格式转换为Linux标准ext4
格式的完整操作指南。本教程基于fdisk
和mkfs.ext4
工具,适用于所有需要在嵌入式Linux设备上进行磁盘分区和格式化操作的场景。
警告:以下操作将彻底清除TF卡上的所有数据,请在操作前务必备份重要文件。
第一步:环境准备与设备卸载
首先,通过SSH或串口登录到您的Luckfox开发板。将待格式化的TF卡插入卡槽。
-
确认设备名称
使用fdisk -l
或lsblk
命令,找到代表您TF卡的设备名称。通常,它会被识别为/dev/mmcblk0
,其上的分区则为/dev/mmcblk0p1
。 -
检查并卸载分区
在进行任何磁盘操作前,必须确保分区未被系统挂载。# 检查分区是否已被自动挂载 mount | grep mmcblk0
如果该命令有输出(例如,显示设备被挂载在
/mnt/sdcard
),则必须先执行卸载命令。如果无输出,则可跳过此步。umount /dev/mmcblk0p1
第二步:使用 fdisk
重新分区
我们将使用fdisk
工具删除旧的VFAT分区,并创建一个新的、对齐的Linux分区。
-
启动
fdisk
fdisk /dev/mmcblk0
进入
fdisk
的交互式命令行模式。 -
按顺序执行分区操作
在(m for help):
提示符后,依次输入以下单个字母命令,然后按回车。p
- 打印 (Print):查看当前分区表,确认您操作的是正确的设备。d
- 删除 (Delete):删除现有的分区(如果只有一个分区,它会被自动选中)。n
- 新建 (New):创建一个新分区。Partition type
: 输入p
选择primary
(主分区)。Partition number
: 输入1
。First sector
: 手动输入2048
。这是为了确保分区与闪存的物理块对齐(4K对齐),从而获得最佳性能。Last sector
: 直接按回车,接受默认值以使用全部剩余空间。
t
- 更改类型 (Type):更改分区系统ID。Hex code
: 输入83
,这是Linux
文件系统的标准ID。
p
- 再次打印 (Print):检查新的分区表是否正确。您应该能看到一个新的分区,其Id
为83
,Type
为Linux
。w
- 写入 (Write):这是最关键的一步! 将所有更改写入分区表并退出。
分区操作完成后,您的TF卡就有了一个新的、空的Linux分区结构。
第三步:格式化为 ext4 文件系统
-
处理自动挂载 (关键)
在您写入新分区表后,系统可能会“智能地”将这个新分区再次自动挂载。这会导致格式化失败。我们需要在格式化前再次卸载它。# 再次执行卸载,以防万一 umount /dev/mmcblk0p1
如果提示“not mounted”,则说明未被自动挂载,可直接进行下一步。
-
执行格式化
使用mkfs.ext4
命令来创建ext4
文件系统。mkfs.ext4 /dev/mmcblk0p1
- 在格式化过程中,系统可能会检测到旧的文件系统残留,并提示
... contains a vfat file system. Proceed anyway? (y,N)
。 - 输入
y
并按回车,确认您要覆盖旧数据。 - 等待命令执行完成,日志会显示创建文件系统、写入inode表、创建日志等过程。
- 在格式化过程中,系统可能会检测到旧的文件系统残留,并提示
第四步:挂载并验证
格式化完成后,您的TF卡就已经准备就绪了。
-
创建一个挂载点 (如果需要的话):
mkdir -p /mnt/sdcard
-
手动挂载新的ext4分区:
mount /dev/mmcblk0p1 /mnt/sdcard
-
验证结果:
使用df -h
命令查看磁盘空间使用情况。您应该能看到/dev/mmcblk0p1
已经成功挂载,并且容量正确。df -h # 预期输出示例: # Filesystem Size Used Avail Use% Mounted on # /dev/mmcblk0p1 57.9G ... ... ...% /mnt/sdcard
您还可以通过
mount | grep mmcblk0
确认文件系统类型为ext4
。
至此,您已成功将TF卡在Luckfox开发板上格式化为ext4
文件系统。