概括
我使用 ext2 文件系统格式化了 64Ggb 微型 SD 卡。挂载并复制文件后,许多文件被损坏; 10,500 个文件中的近 400 个。
我也尝试过ext3和ext4。我看到,这里有很多人已经成功使用 ext 文件系统格式化 SD 卡。
细节
- 我使用 fdisk 删除分区并将其重新创建为 Linux 分区
fdisk /dev/mmcblk0
d, 1
n, p, 1, 2048, max
w
Command (m for help): p
Disk /dev/mmcblk0: 59.46 GiB, 63847792640 bytes, 124702720 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x1fdb5227
Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p1 2048 124702719 124700672 59.5G 83 Linux
- 创建文件系统
mkfs -t ext2 -m 1 -b 2048 /dev/mmcblk0p1
tune2fs -L microsd /dev/mmcblk0p1
- 我安装了这个 /etc/fstab 条目:
LABEL=microsd /mnt/data1 ext2 auto,async,rw,exec,noatime,nosuid,nodev 0 2
- 我将大约 10,500 个文件复制到 /mnt/data1/
我对源文件和复制的文件进行了比较。近 400 个文件不同
硬件和操作系统
- 戴尔 Inspiron 灵越 11-3180 笔记本电脑
https://www.dell.com/support/home/en-us/product-support/product/inspiron-11-3180-laptop/docs
SD 卡:SanDisk Extreme、64GB、MicroSD、V30、XC1、[3] A2
将其插入 microSD 插槽
操作系统:MX-21.2.1_KDE_x64 野花 2022 年 4 月 9 日
内核:5.10.0-20-amd64 #1 SMP Debian 5.10.158-2 (2022-12-13) x86_64 GNU/Linux
更新1
- 尝试使用 f2fs 文件系统
mkfs -t f2fs -f /dev/mmcblk0p1
F2FS-tools: mkfs.f2fs Ver: 1.14.0 (2020-08-24)
Info: Disable heap-based policy
Info: Debug level = 0
Info: Trim is enabled
Info: Segments per section = 1
Info: Sections per zone = 1
Info: sector size = 512
Info: total sectors = 124733440 (60905 MB)
Info: zone aligned segment0 blkaddr: 512
Info: format version with
"Linux version 5.10.0-20-amd64
([email protected])
(gcc-10 (Debian 10.2.1-6) 10.2.1 20210110, GNU ld
(GNU Binutils for Debian) 2.35.2) #1 SMP Debian 5.10.158-2 (2022-12-13)"
Info: [/dev/mmcblk0p1] Discarding device
Info: This device doesn't support BLKSECDISCARD
Info: Discarded 60905 MB
Info: Overprovision ratio = 0.810%
Info: Overprovision segments = 497 (GC reserved = 254)
- 使用此 /etc/fstab 条目安装:
/dev/mmcblk0p1 /mnt/mxtrance.data1 f2fs auto,async,rw,exec,noatime,nosuid,nodev 0 0
- 复制 10,500 个文件后,有 35 个文件显示“不同”
然后我重新复制了这 35 个文件,diff 报告没有差异。但 5 分钟后显示 20 个文件有问题:“输入/输出错误”
- 我要放弃这张SD卡了
可能是该特定 SD 卡无法重新格式化。我打算购买另一种 SD 卡“类型”,然后再试一次。
更新2
- 尝试了不同的新 MicroSD 卡。
SD Card: SanDisk Ultra, 64gb, MicroSD, [1], XC 1, (10) A1
140MB/s transfer speed
- 我使用 fdisk 删除分区并将其重新创建为 Linux 分区
Before:
/dev/mmcblk0p1 32768 124735487 124702720 59.5G 7 HPFS/NTFS/exFAT
fdisk /dev/mmcblk0
d
n, p, 1, 2048, 124735487
w
After:
/dev/mmcblk0p1 2048 124735487 124733440 59.5G 83 Linux
Reboot
- 创建 f2fs 文件系统
与手册页一起,这很有用: https://docs.kernel.org/filesystems/f2fs.html
mkfs -t f2fs -l microsd -f /dev/mmcblk0p1
F2FS-tools: mkfs.f2fs Ver: 1.14.0 (2020-08-24)
Info: Disable heap-based policy
Info: Debug level = 0
Info: Label = microsd
Info: Trim is enabled
Info: Segments per section = 1
Info: Sections per zone = 1
Info: sector size = 512
Info: total sectors = 124733440 (60905 MB)
Info: zone aligned segment0 blkaddr: 512
Info: format version with
"Linux version 5.10.0-20-amd64 ([email protected])
(gcc-10 (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils
for Debian) 2.35.2) #1 SMP Debian 5.10.158-2 (2022-12-13)"
Info: [/dev/mmcblk0p1] Discarding device
Info: This device doesn't support BLKSECDISCARD
Info: Discarded 60905 MB
Info: Overprovision ratio = 0.810%
Info: Overprovision segments = 497 (GC reserved = 254)
Info: format successful
- 使用 /etc/fstab 挂载
LABEL=microsd /mnt/mxtrance.data1 f2fs auto,async,rw,exec,gc_merge,discard,data_flush,noatime,nosuid,nodev 0 0
将 10,519 个文件复制到 /mnt/mxtrance.data1,然后在源和目标之间进行比较。没有差异。
大约一个小时后,删除2个文件后,diff显示有50个文件不同,即损坏。我应该只看到两个差异。看起来只有二进制文件被损坏(但只有一些)。
结果:仍然无法使用。