一、概念解读
1. MBR
传统的BIOS只支持从MBR(主引导记录(Master Boot Record))分区的硬盘启动。MBR分区的分区表保存在硬盘的第一个扇区,而且只有64字节,所以最多只能有四个表项。也就是说,我们只能把硬盘分为4主分区,或者分成小于等于3个主分区再加一个扩展分区。扩展分区又可以分为多个逻辑分区。MBR分区的优点就是简单,很多操作系统都可以从MBR分区的硬盘启动,缺点就是MBR分区不能识别大于2TiB(2.2TB)的硬盘空间,也不能有大于2T的分区。
2. GPT
Globally Unique Identifier)全局唯一标识磁盘分区表)分区的硬盘可以解决以上MBR分区的所有缺点,它没有4个主分区的限制(128个),支持大于2T的硬盘空间,每个分区的大小也可以超过2T。要从GPT分区的硬盘启动,主板使用EFI、硬盘使用GPT分区、操作系统支持GPT和EFI这三个条件缺一不可。当今主流系统包括64位的Win7、Win8,以及Mac OS X等Linux系统几乎都支持GPT,如果主板没有EFI的支持的话,以上系统也只能将GPT分区的硬盘当成数据盘,不能从GPT分区的硬盘启动。
3. 注意上面的MBR(msdos)和GPT(gpt)是硬盘分区格式,和位于分区之中的文件系统是两码事,还有更多的分区格式"aix","amiga","bsd","dvh","loop","mac","pc98","sun"。另外还有分区类型是指主分区,扩展分区或者逻辑分区。安装创建顺序来理解:分区格式-->分区类型-->文件系统-->存放文件。
4. fdisk是老牌的硬盘分区工具,但是不支持大于2T的硬盘,所以为了使用大于2T以上空间的硬盘,需要使用parted工具。
5. 不管是MBR还是GPT格式的分区,对LVM逻辑卷组来说是透明的,照样执行pvcreate vgcreate vgextend lvcreate lvextend之类的命令。
二、parted命令给一个盘分区
#fdisk /dev/sdb /*fdisk来分>2T的硬盘时,会提示*/
WARNING: The size of this disk is 2.2 TB (2199023255552 bytes).
DOS partition table format can not be used on drives for volumes
larger than (2199023255040 bytes) for 512-byte sectors. Use parted(1) and GUID
partition table format (GPT).
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help):
# parted /dev/sdb /*开始给一个盘sdb分区*/
GNU Parted 3.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) help /*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
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) mktable /*标明分区格式*/
New disk label type? help /*到底有哪些类型,help不会帮忙显示,参照上面的格式类型*/
parted: invalid token: help
New disk label type? gpt /*这里就选定为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 /*要注意的是,这里会破坏性的来创建gpt*/
(parted) p /*打印显示当前的硬盘情况,这里能查看到硬盘大小*/
Model: DELL PERC H330 Mini (scsi)
Disk /dev/sdb: 2199GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
(parted) mkpart /*创建分区*/
Partition name? []? /*直接回车,保持默认*/
File system type? [ext2]? /*指定文件系统类型,可选,后面我们会直接扩展到逻辑卷组,所以直接回车不输入文件系统*/
Start? /*直接回车不会自动选择从头开始,需要输入开始位置*/
Start? 0g /*0g表示从头开始;或0表示开始*/
End? /*同样,直接回车不会默认直到硬盘扇区结束位置*/
End? 2199g /*从上面p出来的硬盘具体大小,选择所有空间;或-1表示结束位置*/
(parted) p
Model: DELL PERC H330 Mini (scsi)
Disk /dev/sdb: 2199GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 2199GB 2199GB
(parted) toggle 1 lvm /*标记下这个分区为lvm*/
(parted) p
Model: DELL PERC H330 Mini (scsi)
Disk /dev/sdb: 2199GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 2199GB 2199GB lvm
(parted) quit /*退出parted,保存更改;因为要用逻辑卷组,所以忽略下面的提示*/
Information: You may need to update /etc/fstab.
最后呢,就可以用lvm的相关命令来创建物理卷,卷组等东西了。当然也可以直接mkfs来创建文件系统。
# pvcreate /dev/sdb /*这里我换用了另一台电脑来实例,sdb大小为5T+,实例如何扩展到系统已有的卷组中*/
# pvdisplay
--- Physical volume ---
PV Name /dev/sda3
VG Name centos
PV Size 2.00 TiB / not usable 2.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 524112
Free PE 22652
Allocated PE 501460
PV UUID YBZJY8-BCbL-tNhI-sJsR-W2N9-cabg-iXJS2P
"/dev/sdb1" is a new physical volume of "5.28 TiB"
--- NEW Physical volume ---
PV Name /dev/sdb1
VG Name
PV Size 5.28 TiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID w1yaW0-SOgn-JQw4-zgvi-kBam-3acy-cIAShY
这里注意,Allocatable NO及后面几个参数,都是不可用的。vgextend到vg之后默认变为Allocatable,然后通过pvchange可以来更改它的状态。
下面附录几个文件系统和他们支持的最大卷和最大文件大小
文件系统 | 最大卷大小 | 最大文件大小 |
第二扩展文件系统 (ext2) 和第三扩展文件系统 (ext3) | 16TiB | 2TiB |
第四扩展文件系统 (ext4) | 1EiB | 16TiB |
ReiserFS | 16TiB | 8TiB |
日志文件系统 (JFS) | 32PiB | 4PiB |
XFS | 16EiB | 8EiB |
B-tree 文件系统(Btrfs 尚在开发) | 16EiB | 16EiB |