版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mint_ying/article/details/51784969

Linux下格式化sd卡和重新分区

写这篇文章的最初是因为手边有张sd卡被人分了区。结果在windows上8G的卡只能认出512M。为了把“被吞掉”的部分找回来,我们就要使用linux下强大的分区工具fdisk。

在进行下述操作前,先获取root权限再操作会比较方便。之后的命令就可不输入sudo了。

sudo -i
  • 1

准备工作


把你的sd卡插入linux系统。你就会看到原本在windows下只能看到1个512M的空间,
而在linux下你就能看到那个第2分区了。

查看挂载点

df -h
  • 1

你会看到下述信息,告诉你设备名称挂载点
可能你的设备名称为mmcxxxp1或者mmcxxxp2的。
请注意,他们是一家。。。

Filesystem    size   Used Avail Use% Mounted on
...(其他fs)
/dev/sdb1     512M   4K   512M    1% /media/LABLE1
/dev/sdb2     6.8G   4K   6.8G    1% /media/LABLE2
  • 1
  • 2
  • 3
  • 4

卸载SD卡

sudo umount /dev/sdb1 /dev/sdb2
  • 1

Fdisk


接下来就是强大的liunx工具fdisk出场了。

sudo fdisk /dev/sdb
  • 1

输入m会出现命令类表,简洁而强大

Command (m for help): m
Command actiona   toggle a bootable flagb   edit bsd disklabelc   toggle the dos compatibility flagd   delete a partitionl   list known partition typesm   print this menun   add a new partitiono   create a new empty DOS partition tablep   print the partition tableq   quit without saving changess   create a new empty Sun disklabelt   change a partition's system idu   change display/entry unitsv   verify the partition tablew   write table to disk and exitx   extra functionality (experts only)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

输入p查看当前sd卡的分区(partition)信息

Command (m for help): pDisk /dev/sdb: 7948 MB, 7948206080 bytes
245 heads, 62 sectors/track, 1021 cylinders, total 15523840 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
Disk identifier: 0x00000000Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *        2048     1048576      523264+   c  W95 FAT32 (LBA)
/dev/sdb2         1048577    15523839     7237631+  83  Linux
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

其中,需要记住的是他的容量7948206080 bytes之后会用到。
同时也留意他的heads和setcors/track

删除分区


输入d删除(delete)所有sd卡分区。因为有2个分区,需要删除2次

Command (m for help): d
Partition number (1-4): 1Command (m for help): d
Selected partition 2
  • 1
  • 2
  • 3
  • 4
  • 5

建立扇区


如果SD卡不是255 heads, 63 sectors/track,按照以下步骤建立扇区

输入x进入扩展命令列表

Command (m for help): xExpert command (m for help):
  • 1
  • 2
  • 3

输入n显示扩展命令列表

Command actionb   move beginning of data in a partitionc   change number of cylindersd   print the raw data in the partition tablee   list extended partitionsf   fix partition orderg   create an IRIX (SGI) partition tableh   change number of headsi   change the disk identifierm   print this menup   print the partition tableq   quit without saving changesr   return to main menus   change number of sectors/trackv   verify the partition tablew   write table to disk and exit
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

输入h设置heads = 255

Expert command (m for help): h
Number of heads (1-256, default 245): 255
  • 1
  • 2

输入s设置sectors/track = 63

Expert command (m for help): s
Number of sectors (1-63, default 62): 63
  • 1
  • 2

输入c设置cylinder = 966

Expert command (m for help): c
Number of cylinders (1-1048576, default 1021): 966
  • 1
  • 2

cylinder计算方法

cylinder = SD卡容量(bytes) / heads / sectors / 512(bytes)
cylinder = 7948206080 / 255 /63 / 512 = 966.3 = 966
  • 1
  • 2

输入r返回(return)普通命令

Expert command (m for help): rCommand (m for help):
  • 1
  • 2
  • 3

输入p再次查看当前sd卡的分区信息。
此时你会看到heads, sectors/track, cylinder都已经更新了

Command (m for help): pDisk /dev/sdb: 7948 MB, 7948206080 bytes
255 heads, 63 sectors/track, 966 cylinders, total 15523840 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
Disk identifier: 0x00000000Device Boot      Start         End      Blocks   Id  System
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

建立分区


输入n新建(new)一个分区

输入p选择新建一个主分区

输入1创建分区1

输入分区1的‘First sector’和‘Last sector’

Command (m for help): n
Partition type:p   primary (0 primary, 0 extended, 4 free)e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-15523839, default 2048): 2048
Last sector, +sectors or +size{K,M,G} (2048-15523839, default 15523839):
Using default value 15523839
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

输入t改变分区系统ID,
一般windows的用,则输入分区类型码cFAT32,
而linux的为默认的分区类型码83EXT3

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): c
Changed system type of partition 1 to c (W95 FAT32 (LBA))
  • 1
  • 2
  • 3
  • 4

输入a激活分区的bootable标志

Command (m for help): a
Partition number (1-4): 1
  • 1
  • 2

输入w将建立完成对分区表写入sd卡,并退出

Command (m for help): w
The partition table has been altered!Calling ioctl() to re-read partition table.WARNING: If you have created or modified any DOS 6.x
partitions, please see the fdisk manual page for additional
information.
Syncing disks.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

格式化分区


windows的分区格式化命令(其中LABEL为卷标)

sudo mkfs.msdos -F32 /dev/sdb1 -n LABEl1
  • 1

linux的分区格式化命令

sudo mkfs.ext3 /dev/sdb2 -L LABEL2
  • 1

完成


需要注意的是,有时需要在Windows再次格式化第一个引导分区LABEL1才能成功引导Linux。(不要使用快速格式化)

参考资料


http://blog.sina.com.cn/s/blog_68e596750100jx9m.html


树莓派-找回丢失的空间

原本的文章到上面就结束了,这只是个“课外阅读”的简单实践章节而不单独另开一篇。
通过使用上述的fdisk的功能来找回安装完树莓派后部分磁盘空间无法使用的问题。
fdisk细节问题请见上文,下面就直接列出步骤了:

背景: 将树莓派安装到了一张8G的TF卡上。装完df -h后发现只有一半的磁盘空间。

找回方法:

进入fdisk

sudo fdisk /dev/sdb
  • 1

输入p查看当前sd卡的分区(partition)信息。

会发现有2个分区。
一个是boot的windows下可认的FAT32的分区。
另一个是root的linux的分区。但只有3.xG
  • 1
  • 2
  • 3

输入d删除(delete)第二个分区。

Command (m for help): d
Partition number (1-4): 2
  • 1
  • 2

输入n新建(new)一个分区

输入p选择新建一个主分区

输入1创建分区1

输入分区1的‘First sector’和‘Last sector’

此时使用默认的开始和结束的sector值即可。你也可以看到默认就是帮你扩展到最大。
  • 1

输入w将建立完成对分区表写入sd卡,并退出

此时会提醒你无法当场写入,需要你reboot
  • 1

terminal输入sudo reboot重启系统

sudo reboot
  • 1

待重启完成后,resize修复分区。其中p2即指partition 2

sudo resize2fs /dev/mmcblk0p2
  • 1

完成后,重新查看磁盘信息

df -h
  • 1

至此,“丢失”的磁盘空间已经找回来了。:)

Linux下格式化sd卡和重新分区相关推荐

  1. linux 下格式化 SD卡

    在linux下面给sd卡分区,格式化是非常轻松的. 我安装的系统是ubuntu10.04. sd卡插上之后,自动mount了. 所以,第一步,umount. $sudo -i 输入自己的密码取得roo ...

  2. Linux下eMMC,SD卡格式化和分区管理

    Linux下eMMC,SD卡格式化和分区管理 一.Linux下查看eMMC设备是否正确识别 在命令行终端,输入ls /dev/mmc* -l,查看eMMC是否成功识别 dev目录下成功识别到了eMMC ...

  3. LINUX下的SD卡分区

    LINUX下的SD卡分区     首先在windows下面使用HP格式化工具格式化SD卡,然后将SD卡接入Linux操作系统. 识别SD卡后,打开终端.查看SD卡是否已经挂载,如果已经挂载需要先卸载再 ...

  4. Linux下对SD卡分区操作

    Linux下对SD卡分区操作 一.使用linux下的磁盘管理工具fdisk sudo fdisk  /dev/mmcblk0 使用fdisk打开你的SD卡设备名称,我的设备是mmcblk0,是自己SD ...

  5. 海思系统开发——linux下挂载SD卡

    海思系统开发--linux下挂载SD卡 (1)通过#fdisk -l命令确认板子上的linux系统是否识别SD卡 [/]# fdisk -l /mnt/mmc # fdisk -l Disk /dev ...

  6. ubuntu下格式化sd卡

    在linux下环境下将sd卡插入读卡器,就自动挂载了,所以要先卸载. $sudo -i 取得root权限 # mount 可以看到最后一行的设备号 /dev/mmcblk0 on /media/FCC ...

  7. linux下制作SD卡镜像,mkimage.sh解析

    mkimage.sh解析 sudo ./make_sdimage.py -f -P preloader.img,u-boot.img,num=3,format=raw,size=10M,type=A2 ...

  8. 开发板——linux下挂载SD卡

    (1)通过#fdisk -l命令确认板子上的linux系统是否识别SD卡 [/]# fdisk -l /mnt/mmc # fdisk -l Disk /dev/mmcblk0: 29 GB, 310 ...

  9. Linux C 格式化SD卡

    //若不存在/sdcard/mmcblk0p1 (这是本系统自己挂载的目录)if (access("/sdcard/mmcblk0p1", 0) == -1){system(&qu ...

  10. linux下通过SD卡烧录.bin程序

    1.文件mkv210_image.c详解 分析启动过程可知: 210 启动后先执行内部iROM中的BL0,BL0执行完后会根据OMpin 的配置选择一个外部设备来启动(有很多,我们实际使用的有2个:u ...

最新文章

  1. 无法加载JNI共享库(JDK)
  2. TIME_WAIT状态的一些总结
  3. 队列的定义与操作-顺序存储,链式存储(C语言)
  4. UVAL - 6755 - Swyper Keyboard
  5. int默认值为0,Integer默认值为null
  6. linux虚拟机调整分辨率
  7. iOS开发之App从点击到启动
  8. OBCA认证培训课程-分布式事务 MVCC 事务隔离级别
  9. python图片x轴数据过多_一个操作证明python数据可视化比excel强百倍:X轴刻度间隔显示...
  10. linux vi命令的查询,linux vi命令模式详解
  11. 推荐 DBeaver 数据库管理工具 PD数据库建模
  12. 医院计算机管理工资,医院绩效管理平台:绩效工资管理系统
  13. Submissions in Production是什么意思?
  14. BOC保护的氨基酸卟啉TAPP-Ala-BOC、TAPP-Phe-BOC、TAPP-Trp-BOC、Zn·TAPP-Ala-BOC、Zn·TAPP-Phe-BOC、Zn·TAPP-Trp-BOC齐岳
  15. 使用Xamarin实现跨平台移动应用开发(转载)
  16. 交通领域主要SCI期刊——2017年JCR
  17. Web3.0峰会上IPFS最新消息利好不断
  18. jQuery动画+案例
  19. 山东大学软件学院 - 面向对象开发技术 - 期末复习知识点总结
  20. 高中在线计算机,高中计算机考试试题集-20210414015151.docx-原创力文档

热门文章

  1. 浪潮激荡大时代,存储起航新十年
  2. Safari打开官网自动打开app
  3. php输出一个直角三角形,php hypot()直角三角形斜边长度 is_infinite()是否为无限值...
  4. 有学生表Student, 课程表Course, 学生选课表StudentCourse
  5. java 控制台聊天昵称_简单的java控制台聊天室实现
  6. texstudio语法检查
  7. deepin升级Linux内核,深度 deepin 20.1 (1005)系统开启内测:升级至 Linux Kernel 5.8 稳定内核...
  8. win10豆沙绿设置
  9. 英语诗歌选读 | 期末总结
  10. vmware虚拟机的作用