在centos7 下挂了一个新4T硬盘,用fdisk做了分区,发现4T硬盘只能分1.8T使用。
硬盘两种分区格式,即MBR和GPT:
MBR:MBR分区表(即主引导记录)大家都很熟悉。所支持的最大卷:2T,而且对分区有限制:最多4个主分区或3个主分区加一个扩展分区 GPT:
GPT(即GUID分区表)。是源自EFI标准的一种较新的磁盘分区表结构的标准,是未来磁盘分区的主要形式。与MBR分区方式相比,具有如下优点。突破
MBR 4个主分区限制,每个磁盘最多支持128个分区。支持大于2T的分区,最大卷可达18EB。
相比MBR,GPT在Linux系统中的优点有:
(1)几乎突破了分区个数的限制。
在GPT分区表中最多可以支持128个主分区。
(2)单个分区容量几乎没有限制。
单个分区最大支持1EB容量。
fdisk无法处理2T以上的硬盘分区。
需要用parted工具进行2T以上的分区。
# fdisk -l |grep /dev/sd
磁盘 /dev/sdb:2000.4 GB, 2000398934016 字节,3907029168 个扇区
/dev/sdb1 * 2048 1026047 512000 83 Linux
/dev/sdb2 1026048 3907028991 1953001472 8e Linux LVM
磁盘 /dev/sda:4000.8 GB, 4000787030016 字节,7814037168 个扇区
/dev/sda1 2048 4294967294 2147482623+ 83 Linux
检查一下文件系统挂接点:
[root@data-analysis python3script]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 1.6T 78G 1.5T 5% /
devtmpfs 7.8G 0 7.8G 0% /dev
tmpfs 7.8G 84K 7.8G 1% /dev/shm
tmpfs 7.8G 9.1M 7.8G 1% /run
tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
/dev/sda1 2.0T 81M 1.9T 1% /bigdata
/dev/sdb1 494M 161M 334M 33% /boot
/dev/mapper/centos-home 301G 33M 301G 1% /home
tmpfs 1.6G 0 1.6G 0% /run/user/0
tmpfs 1.6G 16K 1.6G 1% /run/user/42
用parted检查硬盘的剩余空间:
# parted /dev/sda
GNU Parted 3.1
使用 /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print free
Model: ATA WDC WD42EJRX-89B (scsi)
Disk /dev/sda: 4001GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system 标志
32.3kB 1049kB 1016kB Free Space
1 1049kB 2199GB 2199GB primary ext4
2199GB 4001GB 1802GB Free Space
用fdisk删除原来的2T分区,d(删除分区),w(保存分区)
# fdisk /dev/sda
WARNING: The size of this disk is 4.0 TB (4000787030016 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).
The device presents a logical sector size that is smaller than
the physical sector size. Aligning to a physical sector (or optimal
I/O) size boundary is recommended, or performance may be impacted.
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):d
已选择分区 1
分区 1 已删除
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
在(parted)提示符下执行:
(1)print 显示硬盘信息
(2)mklabel gpt 用gpt格式分区,提示原来的硬盘信息都要丢失
(3)mkpart 执行分区
输入分区名:sda1
输入文件系统类型:xfs
输入起始点:0
输入结束点:4001GB
按print显示的硬盘大小输入,4T做一个盘用。
结果提示 警告: The resulting partition is not properly aligned for best performance.
忽略/Ignore/放弃/Cancel?
不知道为什么,回车没有用,输入I,忽略。
执行完成,打印一下信息。
实际开始点是:17.4kb ,可能是这个原因有警告提示。
# parted /dev/sda
GNU Parted 3.1
使用 /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print
Model: ATA WDC WD42EJRX-89B (scsi)
Disk /dev/sda: 4001GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system 标志
(parted) mklabel gpt
警告: The existing disk label on /dev/sda will be destroyed and all data on this disk will be lost. Do
you want to continue?
是/Yes/否/No? y
(parted) mkpart
分区名称? []? sda1
文件系统类型? [ext2]? xfs
起始点? 0
结束点? 4001GB
警告: The resulting partition is not properly aligned for best performance.
忽略/Ignore/放弃/Cancel?
忽略/Ignore/放弃/Cancel? I
(parted) p
Model: ATA WDC WD42EJRX-89B (scsi)
Disk /dev/sda: 4001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name 标志
1 17.4kB 4001GB 4001GB sda1
(parted) quit
信息: You may need to update /etc/fstab.
格式化 xfs 硬盘
mkfs.xfs -f /dev/sda1
有个警告提示,不影响。
# mkfs.xfs -f /dev/sda1
warning: device is not properly aligned /dev/sda1
meta-data=/dev/sda1 isize=256 agcount=4, agsize=244188660 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0 finobt=0
data = bsize=4096 blocks=976754637, imaxpct=5
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal log bsize=4096 blocks=476930, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
原来的bigdata目录存在,直接挂载。
# mount /dev/sda1 /bigdata
# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 1.6T 78G 1.5T 5% /
devtmpfs 7.8G 0 7.8G 0% /dev
tmpfs 7.8G 84K 7.8G 1% /dev/shm
tmpfs 7.8G 9.1M 7.8G 1% /run
tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
/dev/sdb1 494M 161M 334M 33% /boot
/dev/mapper/centos-home 301G 33M 301G 1% /home
tmpfs 1.6G 0 1.6G 0% /run/user/0
tmpfs 1.6G 16K 1.6G 1% /run/user/42
/dev/sda1 3.7T 33M 3.7T 1% /bigdata
自动挂载设置:
在/etc/fstab中增加一行:
/dev/sda1 /bigdata xfs defaults 0 0
(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
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
解释:
align-check TYPE N 检查分区N的类型(最小选择)对齐
help [COMMAND] 打印常规帮助或命令帮助
mklabel,mktable LABEL-TYPE 创建新的disklabel(分区表)
mkpart PART-TYPE [FS-TYPE] START END 创建一个分区
name NUMBER NAME 使用分区号作为分区名称
print [devices|free|list,all|NUMBER] 显示分区表、可用设备、可用空间、找到的所有分区或特定分区
quit 退出程序
rescue START END 在起点和终点附近营救丢失的分区
resizepart NUMBER END 调整分区号大小,版本3中已经移除改命令
rm NUMBER 删除分区号
select DEVICE 选择要编辑的设备
disk_set FLAG STATE 更改所选设备上的标志