前言
-  
默认 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) alignment
  help [COMMAND]                           print general help, or help on COMMAND
  mklabel,mktable LABEL-TYPE               create a new disklabel (partition table)
  mkpart PART-TYPE [FS-TYPE] START END     make a partition
  name NUMBER NAME                         name partition NUMBER as NAME
  print [devices|free|list,all|NUMBER]     display the partition table, available devices,
        free space, all found partitions, or a particular partition
  quit                                     exit program
  rescue START END                         rescue a lost partition near START and END
  resizepart NUMBER END                    resize partition NUMBER
  rm NUMBER                                delete partition NUMBER
  select DEVICE                            choose the device to edit
  disk_set FLAG STATE                      change the FLAG on selected device
  disk_toggle [FLAG]                       toggle the state of FLAG on selected device
  set NUMBER FLAG STATE                    change the FLAG on partition NUMBER
  toggle [NUMBER [FLAG]]                   toggle the state of FLAG on partition NUMBER
  unit UNIT                                set the default unit to UNIT
  version                                  display the version number and copyright
        information 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  Flags
 1      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重新分区 










