1.有些U盘/SD卡只有设备节点没有分区节点而有些U盘/SD卡即有设备节点又有分区节点?
这是MBR导致的,有些U盘/SD卡没有MBR,所以只有设备节点,而有些是有MBR的,所以即有设备节点和分区节点
2.在Windows下删除U盘里的文件后在linux下查看U盘剩余容量时获取上来的值仍然后在Windows下删除文件之前的值?
U盘使用的是fat32文件系统,fat32中有个fsinfo扇区里面记录了整个分区的容量信息,但这个值不要求一定正确,在Windows下删除文件后不会更新fsinfo扇区,因此导致linux中获取上来的值不对;还有跟mount时有无usefree参数也有关系,使用usefree参数linux会直接使用fsinfo扇区里的信息,这样可以加快挂载速度,如果fsinfo没有更新会导致获取上来的数据不正确;
3.U盘使用过程中变成了只读?
U盘挂载时会指定IO出错后的处理机制,未指定时默认在出错后将分区设置为只读的。以只读的方式open一个不存在的文件,write/read时传入的偏移值为负数等都会导致IO出错;如果不想IO出错后分区变为只读,mount时明确指定处理方式。
4.U盘在linux下创建了多个分区,但在Windows下只显示第一个分区的信息?
这个是Windows系统的限制,Windows只识别U盘的第一个分区。