前言
-
默认 SD 卡分区是 FAT32 格式,为了用于嵌入式Linux ext4 文件系统,需要改为 ext4 文件系统,但是SD 卡分区类型默认是
msdos
类型,也就是MBR
类型,不是GPT
类型。 -
烧写 ext4 分区表,或者使用 ubuntu 下
gparted
分区时,msdos
类型的 SD 卡,无法设置分区的名字,只能设置分区的label
标签 -
问题:如何把 SD 卡分区类型由
msdos
,也就是MBR
改为GPT
类型呢?
msdos
转 gpt
-
windows 下可以使用分区工具,比如
Diskgenius
把 SD 卡分区改为GPT
分区类型 -
ubuntu 下,可以使用
parted
命令更改 -
首先插入 SD 卡(读卡器),并让 ubuntu 系统识别,一般识别为
/dev/sdx
这样的设备,如/dev/sdb
-
然后运行
sudo parted /dev/sdb
,注意/dev/sdb
是 SD 卡的设备名,不要搞错 -
在
(parted)
提升符下,输入print
可以查看当前的分区类型,比如Partition Table: msdos
-
在
(parted)
提升符下,输入mklabel gpt
,更改为gpt
分区类型,【备注】注意如果 SD 卡有数据,会被清空(分区不存在了,需要再重新分区) -
在
(parted)
提升符下,输入print
,可以查看更改分区类型的结果,Partition Table: gpt
表示已经更改为gpt
分区类型了 -
在
(parted)
提升符下,输入quit
可以退出parted
命令 -
在
(parted)
提升符下,输入help
,可以查看相应的 parted 命令的参数与使用说明
zhangsz@ubuntu:~/Desktop$ sudo parted /dev/sdb
GNU Parted 3.3
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) help align-check TYPE N check partition N for TYPE(min|opt) alignmenthelp [COMMAND] print general help, or help on COMMANDmklabel,mktable LABEL-TYPE create a new disklabel (partition table)mkpart PART-TYPE [FS-TYPE] START END make a partitionname NUMBER NAME name partition NUMBER as NAMEprint [devices|free|list,all|NUMBER] display the partition table, available devices,free space, all found partitions, or a particular partitionquit exit programrescue START END rescue a lost partition near START and ENDresizepart NUMBER END resize partition NUMBERrm NUMBER delete partition NUMBERselect DEVICE choose the device to editdisk_set FLAG STATE change the FLAG on selected devicedisk_toggle [FLAG] toggle the state of FLAG on selected deviceset NUMBER FLAG STATE change the FLAG on partition NUMBERtoggle [NUMBER [FLAG]] toggle the state of FLAG on partition NUMBERunit UNIT set the default unit to UNITversion display the version number and copyrightinformation of GNU Parted(parted) print
Model: Generic MassStorageClass (scsi)
Disk /dev/sdb: 15.9GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: Number Start End Size Type File system Flags1 12.6MB 117MB 105MB primary ext4(parted) mklabel gpt
Warning: The existing disk label on /dev/sdb will be destroyed and all data on this disk will
be lost. Do you want to continue?
Yes/No? Yes
(parted) print
Model: Generic MassStorageClass (scsi)
Disk /dev/sdb: 15.9GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: Number Start End Size File system Name Flags(parted) quit
Information: You may need to update /etc/fstab.zhangsz@ubuntu:~/Desktop$ sudo gparted /dev/sdb
Unit tmp.mount does not exist, proceeding anyway.
GParted 1.0.0
configuration --enable-libparted-dmraid --enable-online-resize
libparted 3.3
zhangsz@ubuntu:~/Desktop$
- 自此,SD 卡分区类型就更改为了
gpt
分区,类似于emmc
,可以方便的使用gparted
进行图形分区,并可以为每个分区设置分区名字,用于fastboot
等镜像的烧写
小结
-
FAT 格式的 SD 卡,默认是 MBR,也就是
msdos
分区类型,可以使用 ubuntu 下的parted
命令更改为gpt
分区类型 -
SD 卡更改为
gpt
分区类型后,分区表丢失,需要重新创建分区,可以使用fdisk
或者图形界面的gparted
重新分区