同一个SD卡在Linux下和Windows下可见容量不一致
问题描述
有张16G的SD卡在linux系统下能显示全部的容量,在windows下却只可见一个40MB的盘符,如何在windows下显示16G的容量。
以上问题可以通过在linux下使用fdisk工具解决。如下步骤的1-5均在linux主机上操作。
解决步骤
1、首先将SD卡中linux文件系统的分区删掉,因为在windows下,linux的文件系统不被识别(ext2、ext3等)。假设你的SD卡在linux中的设备号为sdb,那么使用命令:fdisk /dev/sdb
Command (m for help): d
Partition number (1-4): 1
Command (m for help): d
Partition number (1-4): 2
……
有几个分区删掉几个(如sdb1、sdb2、sdb3等等)。
2、创建一个新的分区
Command (m for help): n
Command action
e extended //从分区
p primary partion(1-4) //主分区
选择p
Partition number(1-4):1
First cylinder(1-4096,default 1): 1(或者直接回车)
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-4096,default 4096):4096(或者直接回车)
Using default value 4096
此时已经将SD卡创建成了一个独立的分区
可以在创建其他分区,也可不再创建。
3、保存所作的改动
Command (m for help):w
这个操作一定要有,此时才真正的将改动写入分区表。
接下来系统自动会有较短时间的同步操作,用户无需任何操作。
4、格式化成vfat文件系统
mkfs.vfat /dev/sdb1(不行的话试试/dev/sdb2)
//将sdb1格式化成vfat格式,注意linux下的vfat就是windows下的fat32格式。
5、在linux下查看是否格式化成功
使用命令:fdisk -l
如果可以看到sdb设备对应的分区表中只有sdb1一个设备并且文件系统为vfat,那么证明上述操作成功。
6、在windows上查看并进行写入实验
一个开卷有益的公众号:IT平头哥