之前一直没有接触过大于2T的磁盘分区的情况,只是听说Linux下大于2T的磁盘分区有问题。当自己遇到的时候,才真实体会到。
使用fdisk 工具分区的时候,如果分大于2T的分区,会提示:
Value out of range.
所以不能使用fdisk这个分区工具了,要是用parted 来进行分区。

我们使用fdisk -l  查看磁盘的时候会发现一段警告:
"WARNING: The size of this disk is 8.0 TB (7995995979776 bytes).
DOS partition table format can not be used on drives for volumes
larger than 2.2 TB (2199023255040 bytes). Use parted(1) and GUID
partition table format (GPT)."
这是因为我的/dev/sdb磁盘是8T,超过了2T. 超过2T只能将磁盘转化成GPT格式,GPT格式的磁盘相当于把原来MBR磁盘中原来保留4个分区表的4*16个字节只保留第一个16个字节,其它的类似于扩展分区,真正的分区表在512字节后,因此对GPT分区表来说是没有4个主分区的限制。

MBR分区表(主引导):
支持的最大卷:2T(1T=1024GB)
对分区的限制:最多4个主分区或3个主分区和一个扩展分区

GPT分区表(GUID分区表):
支持最大卷:18EB(1EB=1024T)
对分区的限制:每个磁盘最多支持128个分区

好的,下面看看如何使用parted 来分区这个8T的磁盘?
我的打算是,sdb1 分一半也就是4T,sdb2分3T,sdb3分1T.

 

可以先使用 "help" 命令获取帮助。常用命令有:
mklabel GPT //建立磁盘标签
print //如果没有任何分区,它查看磁盘可用空间,当分区后,它会打印出分区情况
mkpart primary 0%  n% //创建主分区,n为要分的分区占整个磁盘的百分比.(mkpart extended创建扩展分区),例如我这里要分一个占一半(4T)的分区,则写 0% 50%, 然后继续分3T “mkpart primary 51%  90%”, 再分一个1T的 "mkpart primary 91%  100%"
quit  //分区完后,直接quit即可,不像fdisk分区的时候,还需要保存一下,这个不用。

[root@localhost ~]# fdisk -l

Disk /dev/sda: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          38      305203+  83  Linux
/dev/sda2              39       10182    81481680   83  Linux
/dev/sda3           10183       10443     2096482+  82  Linux swap / Solaris

WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted.


WARNING: The size of this disk is 8.6 TB (8589934592000 bytes).
DOS partition table format can not be used on drives for volumes
larger than 2.2 TB (2199023255040 bytes). Use parted(1) and GUID
partition table format (GPT).


Disk /dev/sdb: 8589.9 GB, 8589934592000 bytes
255 heads, 63 sectors/track, 1044333 cylinders
Units = cylinders of 16065

 
Disk /dev/sdb  新增加设备名称

 

[root@localhost ~]# parted /dev/sdb   先选择要分区的硬盘,此处为/dev/sdb

GNU Parted 1.8.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) 

 

(parted) mklabel GPT   建立磁盘标签

 

 

(parted) print     如果没有任何分区,它查看磁盘可用空间,当分区后,它会打印出分区情况                                                       

Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 8590GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start  End  Size  File system  Name  Flags

 

 

(parted) mkpart primary 0%  50%

(parted) mkpart primary 51%  90%

(parted) mkpart primary 91%  100%

 

(parted) print   显示分区信息                                                        

Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 8590GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system  Name     Flags
 1      17.4kB  4295GB  4295GB               primary      
 2      4381GB  7731GB  3350GB               primary      
 3      7817GB  8590GB  773GB                primary

 

(parted) quit

 

partprobe    分区完了首先需要把让内核知道添加新分区了

 

然后就该格式化了:

mkfs.ext3 /dev/sdb1      4T的磁盘格式化,漫长的等待过程,公司服务器操作的时候是顶配的,秒格。

mkfs.ext3 /dev/sdb2
mkfs.ext3 /dev/sdb3

 

然后在home目录下创建几个文件

mkdir  dev doc back

 

将这三个分区挂载到这三个目录下

[root@localhost back]# mkdir dev doc back

 [root@localhost back]# mount /dev/sdb1 back

[root@localhost back]# mount /dev/sdb2 dev/

[root@localhost back]# mount /dev/sdb3 doc/

 [root@localhost back]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              76G  2.4G   70G   4% /
/dev/sda1             289M   16M  258M   6% /boot
tmpfs                 506M     0  506M   0% /dev/shm
/dev/sdb1             3.9T  195M  3.7T   1% /back/back
/dev/sdb2             3.0T  200M  2.9T   1% /back/dev
/dev/sdb3             709G  197M  673G   1% /back/doc

挂载成功

 

取消挂载/back/dev分区

[root@localhost back]# umount /back/back/

有时候磁盘正在使用中会提示buszy

[root@localhost back]# umount -l /back/back/   加-l参数即可解决,作用立即断开。