Linux下格式化U盘或者SD卡

    前段时间用SD卡刻了用一个Linux系统(存储系统),插在windows下显示只有32MB(原卡16GB的)。好了,问题来了,其他的空间去哪里了呢?

    1、如何释放其他未使用的空间?

    2、如何重新找回所有空间作为他用呢?

    第一个问题的解决办法:

    参考我的另一篇文章:《树莓派Raspberry Pi 16G SD卡刷系统时默认空间扩容

    使用gparted图形化工具进行分区扩容。

    地址:http://thinkpig007.blog.51cto.com/971471/1334196

    第二个问题的解决办法:

    当你将此sd插入windows系统下打算格式化,用做他用。可是很悲剧,你右键SD属性,只看到可用空间为32MB,天呐?16GB的空间怎么就剩这么点了呢?你试着想使用windows下的格式化来解决问题,但是当你右键格式化后,可用空间依旧只有32MB,怎么办呢?

    这是因为在写入存储系统的时候,硬件将SD重新分区了,你在windows下格式化和看到只是存储系统的一个分区。要把其他空间找回来就需要重新分区(一般SD就分一个分区)。

    有两种解决办法:

    (1)使用windows PE里面的磁盘分区工具或者单独使用磁盘分区工具

    找到SD,将所有分区删除(注意是SD,不要搞错了哦)

    (2)使用linux下的fdisk工具来进行重新分区

        

我的操作过程:    

查看当前系统的挂载的分区情况,看到最后的SD分区

root@bt:~# mount

/dev/sda1 on / type ext4 (rw,errors=remount-ro)

proc on /proc type proc (rw,noexec,nosuid,nodev)

none on /sys type sysfs (rw,noexec,nosuid,nodev)

none on /sys/fs/fuse/connections type fusectl (rw)

none on /sys/kernel/debug type debugfs (rw)

none on /sys/kernel/security type securityfs (rw)

none on /dev type devtmpfs (rw,mode=0755)

none on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)

none on /dev/shm type tmpfs (rw,nosuid,nodev)

none on /var/run type tmpfs (rw,nosuid,mode=0755)

none on /var/lock type tmpfs (rw,noexec,nosuid,nodev)

none on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)

vmware-vmblock on /var/run/vmblock-fuse type fuse.vmware-vmblock 


(rw,nosuid,nodev,default_permissions,allow_other)

/dev/sdb1 on /media/NB_5024_X64 type fuseblk 


(rw,nosuid,nodev,allow_other,blksize=4096,default_permissions)

将SD挂载卸载

root@bt:~# umount /dev/sdb1

对SD的分区进行删除

root@bt:~# fdisk /dev/sdb1


WARNING: DOS-compatible mode is deprecated. It's strongly 


recommended to

         switch off the mode (command 'c') and change display 


units to

         sectors (command 'u').


Command (m for help): m

Command action

   a   toggle a bootable flag

   b   edit bsd disklabel

   c   toggle the dos compatibility flag

   d   delete a partition

   l   list known partition types

   m   print this menu

   n   add a new partition

   o   create a new empty DOS partition table

   p   print the partition table

   q   quit without saving changes

   s   create a new empty Sun disklabel

   t   change a partition's system id

   u   change display/entry units

   v   verify the partition table

   w   write table to disk and exit

   x   extra functionality (experts only)


Command (m for help): p


Disk /dev/sdb1: 32 MB, 32868864 bytes

255 heads, 63 sectors/track, 3 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x73736572


This doesn't look like a partition table

Probably you selected the wrong device.


     Device Boot      Start         End      Blocks   Id  System

/dev/sdb1p1          119529      232583   908105142   72  Unknown

Partition 1 has different physical/logical beginnings (non-


Linux?):

     phys=(80, 13, 10) logical=(119528, 74, 3)

Partition 1 has different physical/logical endings:

     phys=(371, 101, 51) logical=(232582, 38, 44)

Partition 1 does not end on cylinder boundary.

/dev/sdb1p2   ?      120513      242122   976826554   6c  Unknown

Partition 2 has different physical/logical beginnings (non-


Linux?):

     phys=(357, 43, 4) logical=(120512, 46, 15)

Partition 2 has different physical/logical endings:

     phys=(367, 32, 52) logical=(242121, 118, 1)

Partition 2 does not end on cylinder boundary.

/dev/sdb1p3   ?           1           1           0    0  Empty

Partition 3 has different physical/logical beginnings (non-


Linux?):

     phys=(0, 10, 0) logical=(0, 0, 1)

Partition 3 has different physical/logical endings:

     phys=(0, 0, 0) logical=(267349, 89, 4)

Partition 3 does not end on cylinder boundary.

/dev/sdb1p4            1726        1726         223+   0  Empty

Partition 4 has different physical/logical beginnings (non-


Linux?):

     phys=(0, 0, 0) logical=(1725, 158, 44)

Partition 4 has different physical/logical endings:

     phys=(0, 0, 0) logical=(1725, 165, 49)

Partition 4 does not end on cylinder boundary.


Command (m for help): d


Command (m for help): p


Disk /dev/sdb1: 32 MB, 32868864 bytes

255 heads, 63 sectors/track, 3 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x73736572


     Device Boot      Start         End      Blocks   Id  System


Command (m for help): w

删除完sdb1后,w保存

同样再来对sdb真个设备进行分区删除

root@bt:~# fdisk /dev/sdb――》d――》w,d删除分区,w保存操作退出fdisk

再来看,sdb设备大小,且没有其他分区。

root@bt:~# fdisk -l


Disk /dev/sda: 107.4 GB, 107374182400 bytes

255 heads, 63 sectors/track, 13054 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x000025ee


   Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *           1       12518   100548608   83  Linux

/dev/sda2           12518       13055     4305921    5  Extended

/dev/sda5           12518       13055     4305920   82  Linux 


swap / Solaris


Disk /dev/sdb: 15.9 GB, 15931539456 bytes

64 heads, 32 sectors/track, 15193 cylinders

Units = cylinders of 2048 * 512 = 1048576 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x4f9ae4a3


   Device Boot      Start         End      Blocks   Id  System

root@bt:~#

OK搞定,将SD从Linux系统退出,放到windows下格式化为NTFS,可以看到有14.8GB的空间可用。




你可能感兴趣的:(linux,格式化SD卡)