一、什么是磁盘分区工具
磁盘分区工具一种可以帮助你配置和管理分区的工具。它可以删除或者格式化分区,也可以重新设置分区大小以及移动你的分区。
二、为什么要使用磁盘分区工具
如果不对磁盘进行分区,所有的文件都保存在一个分区内,这样如果其中一个文件受到病毒感染,其他文件的安全性就会受到很大的威胁。分区后也便于文件的查找与管理,对磁盘进行合理的分区更有提高磁盘的有效利用率。
三、如何使用磁盘分区工具
Linux系统中的磁盘分区工具主要是fdisk。本文也将着重对其进行介绍
fdisk ---Partition table manipulator for Linux (对Linux系统进行磁盘分区的工具)
语法:
1
2
|
fdisk [-uc] [-b sectorsize] [-C cyls] [-H heads] [-S sects] device
fdisk -l [-u] [device...]
|
常用参数:
-l 列出指定设备的磁盘分区信息,默认显示 /proc/partitions的分区信息
管理分区
# fdisk DEVICE
fdisk 提供了一个交互式接口来管理分区,分别用于不同的管理功能,所有操作均在内存中完成;没有直接同步到磁盘:
1
2
3
4
5
6
7
8
9
10
|
p: 显示现有分区表;
n: 创建新分区
d: 删除现有分区
t: 修改分区文件系统类型
l: 显示fdisk所支持的文件系统代码
q: 不保存退出
m: 显示帮助信息
b: 设置卷标
v: 检验分区
|
查看/dev/sdb磁盘信息
1
2
3
4
5
6
7
|
[root@1inux ~]# fdisk -l /dev/sdb
Disk /dev/sdb: 85.9 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 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磁盘进行分区,
1
2
3
4
5
6
7
8
9
10
|
[root@1inux ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI
or
OSF disklabel
Building a
new
DOS disklabel with disk identifier 0x6a09b062.
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 ” 可以查看支持的选项:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
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)
|
输入“n” 然后回车新建分区
1
2
3
4
|
Command (m
for
help): n
Command action
e extended
p primary partition (1-4)
|
选择要创建的分区类型:e-创建扩展分区;p-创建主分区,在此我们选择创建主分区输入“p”
1
|
Partition number (1-4):
|
提示要输入要创建主分区的ID号,在1-4之间,在此我们输入1
1
2
|
Partition number (1-4): 1
First cylinder (1-10443,
default
1):
|
设置分区起始的柱面,直接回车就行:然后如下:
1
2
|
First cylinder (1-10443,
default
1): 1
Last cylinder, +cylinders
or
+size{K,M,G} (1-10443,
default
10443):
|
此处是设置分区结束柱面,也可指定要分区的大小,可支持k、M、G单位,在此我们设置一个大小为5G的分区,+5G ,然后回车
1
|
Last cylinder, +cylinders
or
+size{K,M,G} (1-10443,
default
10443): +5G
|
通过输入‘p’可以查看已经建立的分区,
1
2
3
4
5
6
7
8
9
|
Command (m
for
help): p
Disk /dev/sdb: 85.9 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 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: 0x6a09b062
Device Boot Start
End
Blocks Id System
/dev/sdb1 1 654 5253223+ 83 Linux
|
查看分区设置无误后可以通过键入“w” 来保存对磁盘的更改设置
1
2
3
4
5
|
Command (m
for
help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@1inux ~]#
|
到此 已经使用fdisk命令在/dev/sdb磁盘上创建了一个/dev/sdb1大小为5G的主分区,
然后我们通过内核查看系统是否已经识别了我们刚才创建的分区
1
2
3
4
5
6
7
8
9
10
11
12
|
[root@1inux ~]# cat /proc/partitions
major minor #blocks name
8 0 125829120 sda
8 1 122880 sda1
8 2 31426560 sda2
8 3 10485760 sda3
8 4 1 sda4
8 5 10485760 sda5
8 6 6291456 sda6
8 7 2097152 sda7
8 16 83886080 sdb
8 17 5253223 sdb1
//发现已经被识别
|
如果发现分区未被识别,我们可以通知内核强制重读分区
1
2
3
4
|
CentOS 5: partprobe /dev/DEVICE
CentOS 6: partx,kpartx
partx -a /dev/DEVICE
kpartx -af /dev/DEVICE
|
注意:如果执行一次命令,未能成功读取分区表,可重复执行2次或以上