一、简介
通常我们用的比较多的一般都是fdisk工具来进行分区,但是现在由于磁盘越来越廉价,而且磁盘空间越来越大;而fdisk工具他对分区是有大小限制的,它只能划分小于2T的磁盘。如果使用fdisk对大于2T的磁盘分区,虽然可以分区,但仅识别2T的空间,所以磁盘容量超过2T的话,就使用Parted工具来实现对GPT磁盘进行分区操作。
GPT格式的磁盘相当于原来MBR磁盘中原来保留4个partition table的4*16个字节,只留第一个16个字节,类似于扩展分区,真正的partitiontable在512字节之后,GPT磁盘没有四个主分区的限制。
下面是实际演练,分别使用fdisk与parted对不同容量硬盘进行分区。
二、fdisk分区(2T容量以下硬盘使用)
1、查看当前磁盘情况
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
df
-h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3
133G 31G 96G 25% /
tmpfs 16G 9.9G 5.9G 63%
/dev/shm
/dev/sda1
504M 43M 436M 9%
/boot
/dev/sda5
2.7T 2.4T 204G 93%
/data
/dev/sdb1
2.7T 2.4T 204G 93%
/data
[root@bidw tmp]
# fdisk -l
Disk
/dev/sda
: 299.4 GB, 299439751168 bytes
255 heads, 63 sectors
/track
, 36404 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical
/physical
): 512 bytes / 512 bytes
I
/O
size (minimum
/optimal
): 512 bytes / 512 bytes
Disk identifier: 0x000ccf41
Device Boot Start End Blocks Id System
/dev/sda1
* 1 66 524288 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2
66 1371 10485760 82 Linux swap / Solaris
/dev/sda3
1371 18888 140704768 83 Linux
/dev/sda4
18888 36405 140705792 5 Extended
/dev/sda5
18888 36405 140704768 83 Linux
WARNING: GPT (GUID Partition Table) detected on
'/dev/sdb'
! The util
fdisk
doesn't support GPT. Use GNU Parted.
Disk
/dev/sdb
: 2999.0 GB, 2998960914432 bytes
255 heads, 63 sectors
/track
, 364602 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical
/physical
): 512 bytes / 512 bytes
I
/O
size (minimum
/optimal
): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdb1
1 267350 2147483647+ ee GPT
Disk
/dev/sdc
: 1999.8 GB, 1999844147200 bytes
81 heads, 63 sectors
/track
, 765421 cylinders
Units = cylinders of 5103 * 512 = 2612736 bytes
Sector size (logical
/physical
): 512 bytes / 512 bytes
I
/O
size (minimum
/optimal
): 512 bytes / 512 bytes
Disk identifier: 0x42d69282
|
可以看到/dev/sdc是需要分区的
2、使用fdisk进行分区
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
[root@bidw tmp]
# fdisk /dev/sdc
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xc1b09294.
Changes will remain
in
memory only,
until
you decide to write them.
After that, of course, the previous content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (
command
'c'
) and change display
units
to
sectors (
command
'u'
).
Command (m
for
help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system
id
u change display
/entry
units
v
verify the partition table
w write table to disk and
exit
x extra functionality (experts only)
Command (m
for
help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-243133, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-243133, default 243133):
Using default value 243133
Command (m
for
help): w
The partition table has been altered!
Calling ioctl() to re-
read
partition table.
WARNING: Re-reading the partition table failed with error 22: Invalid argument.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
|
3、格式化为ext4系统
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
[root@bidw tmp]
# mkfs.ext4 /dev/sdc1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS
type
: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
122060800 inodes, 488242944 blocks
24412147 blocks (5.00%) reserved
for
the super user
First data block=0
Maximum filesystem blocks=4294967296
14900 block
groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848
Writing inode tables:
done
Creating journal (32768 blocks):
done
Writing superblocks and filesystem accounting information:
done
This filesystem will be automatically checked every 37 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
|
然后查看磁盘情况
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
[root@bidw tmp]
# fdisk -l
Disk
/dev/sda
: 299.4 GB, 299439751168 bytes
255 heads, 63 sectors
/track
, 36404 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical
/physical
): 512 bytes / 512 bytes
I
/O
size (minimum
/optimal
): 512 bytes / 512 bytes
Disk identifier: 0x000ccf41
Device Boot Start End Blocks Id System
/dev/sda1
* 1 66 524288 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2
66 1371 10485760 82 Linux swap / Solaris
/dev/sda3
1371 18888 140704768 83 Linux
/dev/sda4
18888 36405 140705792 5 Extended
/dev/sda5
18888 36405 140704768 83 Linux
WARNING: GPT (GUID Partition Table) detected on
'/dev/sdb'
! The util
fdisk
doesn't support GPT. Use GNU Parted.
Disk
/dev/sdb
: 2999.0 GB, 2998960914432 bytes
255 heads, 63 sectors
/track
, 364602 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical
/physical
): 512 bytes / 512 bytes
I
/O
size (minimum
/optimal
): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdb1
1 267350 2147483647+ ee GPT
Disk
/dev/sdc
: 1999.8 GB, 1999844147200 bytes
81 heads, 63 sectors
/track
, 765421 cylinders
Units = cylinders of 5103 * 512 = 2612736 bytes
Sector size (logical
/physical
): 512 bytes / 512 bytes
I
/O
size (minimum
/optimal
): 512 bytes / 512 bytes
Disk identifier: 0x42d69282
Device Boot Start End Blocks Id System
/dev/sdc1
1 765634 1953513560 83 Linux
|
可以看到/dev/sdc1已经格式化完成
4、挂载
1
2
3
4
5
6
7
8
9
|
[root@bidw tmp]
# mount /dev/sdc1 /u01
[root@bidw tmp]
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3
133G 32G 95G 25% /
tmpfs 16G 9.9G 5.9G 63%
/dev/shm
/dev/sda1
504M 43M 436M 9%
/boot
/dev/sda5
2.7T 2.4T 204G 93%
/data
/dev/sdb1
2.7T 2.4T 204G 93%
/data
/dev/sdc1
1.8T 196M 1.7T 1%
/u01
|
可以看到/dev/sdc1已经挂载到/u01目录
5、把挂载信息放入fstab里
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
[root@bidw tmp]
# cat /etc/fstab
"/etc/fstab"
19L, 979C
#
# /etc/fstab
# Created by anaconda on Sat Dec 29 12:06:41 2012
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=bcc682b0-5a55-4df8-8f7f-2ebfca7e0bf9 / ext4 defaults 1 1
UUID=f75b95fb-78cf-4070-b629-a5b1983edc83
/boot
ext4 defaults 1 2
UUID=5743454b-f226-4c7c-8ad4-bf8db690572b
/data
xfs defaults 1 2
UUID=e9ea4e7a-d959-4c63-a562-dc059d58ac08 swap swap defaults 0 0
tmpfs
/dev/shm
tmpfs defaults,size=16G 0 0
devpts
/dev/pts
devpts gid=5,mode=620 0 0
sysfs
/sys
sysfs defaults 0 0
proc
/proc
proc defaults 0 0
/dev/sdb1
/data
ext3 defaults 0 0
|
然后对最新的配置生效一下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
[root@bidw tmp]
# mount -a
[root@bidw tmp]
# mount
/dev/sda3
on /
type
ext4 (rw)
proc on
/proc
type
proc (rw)
sysfs on
/sys
type
sysfs (rw)
devpts on
/dev/pts
type
devpts (rw,gid=5,mode=620)
tmpfs on
/dev/shm
type
tmpfs (rw,size=16G)
/dev/sda1
on
/boot
type
ext4 (rw)
/dev/sda5
on
/data
type
xfs (rw)
/dev/sdb1
on
/data
type
ext3 (rw)
none on
/proc/sys/fs/binfmt_misc
type
binfmt_misc (rw)
none on
/sys/kernel/config
type
configfs (rw)
sunrpc on
/var/lib/nfs/rpc_pipefs
type
rpc_pipefs (rw)
/dev/sdc1
on
/u01
type
ext4 (rw)
|
6、测试一下新分区对象
1
2
3
4
5
6
7
8
9
10
11
|
[root@bidw tmp]
# cd /u01
[root@bidw u01]
# ll
total 16
drwx------ 2 root root 16384 Jul 21 09:49 lost+found
[root@bidw u01]
# touch test
[root@bidw u01]
# ll
total 16
drwx------ 2 root root 16384 Jul 21 09:49 lost+found
-rw-r--r-- 1 root root 0 Jul 21 10:03
test
[root@bidw u01]
# rm test
rm
: remove regular empty
file
`
test
'? y
|
三、parted分区(2T容量以上硬盘使用)
1、查看分区情况
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
root@ip-10-10-27-116:
/home
02:36:30
# fdisk -l
Disk
/dev/sda
: 999.7 GB, 999653638144 bytes
255 heads, 63 sectors
/track
, 121534 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical
/physical
): 512 bytes / 512 bytes
I
/O
size (minimum
/optimal
): 512 bytes / 512 bytes
Disk identifier: 0x00045789
Device Boot Start End Blocks Id System
/dev/sda1
* 1 131 1048576 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2
131 4309 33554432 82 Linux swap / Solaris
/dev/sda3
4309 121535 941620224 83 Linux
Disk
/dev/sdb
: 2999.0 GB, 2998960914432 bytes
255 heads, 63 sectors
/track
, 364602 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical
/physical
): 512 bytes / 512 bytes
I
/O
size (minimum
/optimal
): 512 bytes / 512 bytes
Disk identifier: 0x00000000
|
可以看到/dev/sdb是需要分区的,磁盘容量为3t,fdisk没办法分区,只能使用parted进行gpt分区了
下面是当前已经在用的磁盘情况
1
2
3
4
5
6
|
root@ip-10-10-27-116:
/home
02:38:04
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3
884G 2.0G 838G 1% /
tmpfs 32G 0 32G 0%
/dev/shm
/dev/sda1
1008M 56M 902M 6%
/boot
|
2、使用parted进行分区
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
root@ip-10-10-27-116:
/home
02:38:06
# parted /dev/sdb
GNU Parted 2.1
Using
/dev/sdb
Welcome to GNU Parted! Type
'help'
to view a list of commands.
(parted) p
Error:
/dev/sdb
: unrecognised disk label
(parted) mklabel gpt
(parted) mkpart primary 0% 100%
(parted) print
Model: DELL PERC H710P (scsi)
Disk
/dev/sdb
: 2999GB
Sector size (logical
/physical
): 512B
/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 1049kB 2999GB 2999GB primary
(parted) quit
Information: You may need to update
/etc/fstab
.
|
1
2
3
4
5
6
7
8
9
10
11
|
介绍一下各个命令的意思
p
是打印磁盘信息,查看分区的情况,找到起始和结束位置。
mklabel gpt
是进行gpt类型分区
mkpart primary 0% 100%
是primary指分区类型为主分区,0是分区开始位置,100%是分区结束位置。相同的命令为:mkpart primary 0-1 或者是:mkpart primary 0 XXXXXX结束的空间
print
打印当前分区,查看分区设置是否正确
quit
退出
|
在看看当前已用硬盘情况,可用看到/dev/sdb还是没有挂载
1
2
3
4
5
6
7
|
root@ip-10-10-27-116:
/home
02:44:05
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3
884G 2.0G 838G 1% /
tmpfs 32G 0 32G 0%
/dev/shm
/dev/sda1
1008M 56M 902M 6%
/boot
root@ip-10-10-27-116:
/home
|
看看磁盘分区情况
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
02:44:07
# fdisk -l
Disk
/dev/sda
: 999.7 GB, 999653638144 bytes
255 heads, 63 sectors
/track
, 121534 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical
/physical
): 512 bytes / 512 bytes
I
/O
size (minimum
/optimal
): 512 bytes / 512 bytes
Disk identifier: 0x00045789
Device Boot Start End Blocks Id System
/dev/sda1
* 1 131 1048576 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2
131 4309 33554432 82 Linux swap / Solaris
/dev/sda3
4309 121535 941620224 83 Linux
WARNING: GPT (GUID Partition Table) detected on
'/dev/sdb'
! The util
fdisk
doesn't support GPT. Use GNU Parted.
Disk
/dev/sdb
: 2999.0 GB, 2998960914432 bytes
255 heads, 63 sectors
/track
, 364602 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical
/physical
): 512 bytes / 512 bytes
I
/O
size (minimum
/optimal
): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdb1
1 267350 2147483647+ ee GPT
|
可用看到/dev/sdb1已经进行了gpt类型分区
3、格式化为ext4系统
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
02:44:12
# mkfs.ext4 /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS
type
: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
183042048 inodes, 732167680 blocks
36608384 blocks (5.00%) reserved
for
the super user
First data block=0
Maximum filesystem blocks=4294967296
22344 block
groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848, 512000000, 550731776, 644972544
Writing inode tables:
done
Creating journal (32768 blocks):
done
Writing superblocks and filesystem accounting information:
done
This filesystem will be automatically checked every 30 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
root@ip-10-10-27-116:
/home
02:47:23
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3
884G 2.0G 838G 1% /
tmpfs 32G 0 32G 0%
/dev/shm
/dev/sda1
1008M 56M 902M 6%
/boot
|
4、挂载
创建挂载目录data
1
2
3
4
5
6
7
8
9
10
11
12
|
root@ip-10-10-27-116:
/home
02:49:38
# mkdir /data
然后挂载
/dev/sdb1
到
/data
目录
root@ip-10-10-27-116:
/home
02:50:36
# mount /dev/sdb1 /data
root@ip-10-10-27-116:
/home
02:50:41
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3
884G 2.0G 838G 1% /
tmpfs 32G 0 32G 0%
/dev/shm
/dev/sda1
1008M 56M 902M 6%
/boot
/dev/sdb1
2.7T 201M 2.6T 1%
/data
|
5、加入fstab
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
root@ip-10-10-27-116:
/home
02:51:39
# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Wed Aug 27 13:39:16 2014
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=1bc74b58-1fbe-4f65-9790-d02abc23d461 / ext4 defaults 1 1
UUID=ebbbaa89-e509-4fef-8763-be6eed9408c7
/boot
ext4 defaults 1 2
UUID=98417724-a1c5-4f9a-9750-85beda11e4e1 swap swap defaults 0 0
tmpfs
/dev/shm
tmpfs defaults 0 0
devpts
/dev/pts
devpts gid=5,mode=620 0 0
sysfs
/sys
sysfs defaults 0 0
proc
/proc
proc defaults 0 0
/dev/sdb1
/data
ext4 defaults 0 0
|
生效一下
1
2
3
4
5
6
7
8
|
02:51:43
# mount -a
root@ip-10-10-27-116:
/home
02:51:45
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3
884G 2.0G 838G 1% /
tmpfs 32G 0 32G 0%
/dev/shm
/dev/sda1
1008M 56M 902M 6%
/boot
/dev/sdb1
2.7T 201M 2.6T 1%
/data
|
6、测试
1
2
3
4
5
6
7
8
9
10
|
11:04:13
# cd /data
root@ip-10-10-27-116:
/data
11:06:44
# echo "this is test">test
root@ip-10-10-27-116:
/data
11:06:52
# cat test
this is
test
root@ip-10-10-27-116:
/data
11:06:54
# rm test
rm
: remove regular
file
`
test
'? y
root@ip-10-10-27-116:
/data
|
其实本文主要介绍的就是如何对不同容量的硬盘使用不同方法进行分区,并对每一步骤都有解释,希望对各位有帮助。
本文转自 reinxu 51CTO博客,原文链接:http://blog.51cto.com/dl528888/1547325,如需转载请自行联系原作者