如何使用fdisk和parted分区工具来进行硬盘分区,下面我来说一下在Linux系统中这两种硬盘分区工具的使用方法:
----------fdisk分区工具----------
在我的另一篇文章里已经说过了在Linux系统中硬盘分区的概念了(http://blog.chinaunix.net/u3/112561/showart_2230401.html),所以在这里我就不多说了,有不懂的可以看看那篇
一、.下面来介绍fdisk分区工具的命令格式:
fdisk是传统的Linux硬盘分区工具,也是Linux系统中最常用的一种硬盘分区工具之一,它的命令格式如下:
其中常用命令选项的说明如下:
-b sectorsize: 定义磁盘扇区的大小,有效值包括512、1024和2048,这个选项只对老版本的Linux操作系统有效。
-C cyls: 定义磁盘的柱面数,一般情况不需要对它进行定义,使用默认的就好。
-H heads: 定义分区表所使用的磁盘的碰头数,一般为255或16。
-S sects: 定义每条磁道的扇区数,一般为63。
-l :这是最常用到的一个命令选项,它是显示指定磁盘设备的分区表信息,例如查看/dev/sdb1这个磁盘设备的分区表信息就是:fdisk -l /dev/sdb1
-u :在显示分区表时,以扇区代替柱面作为显示的单位
-s partition: 在标准输出中以block为单位显示分区的大小。
-v :显示fdisk的版本信息。
device:就是磁盘的设备名称,IDE类型的磁盘设备名为[dev/hd[a-h]];而SCSI或SATA类型的磁盘设备名为[dev/sd[a-p]]。
假如我要查看我电脑上的第一块磁盘的分区表信息(呵呵,我就一块硬盘)可以使用如下命令:fdisk -l /dev/sda(我的硬盘是SATA类型的)显示信息如图:
然后我们可以看一下它们各自对应磁盘设备文件:
使用命令:ll /dev/sda* 来查看如图:
朋友们可以自己尝试一下别的命令的作用,由于时间问题我在这里就不一一说了~!下面我们来看看如何使用fdisk工具来对硬盘分区吧。
二、fdisk交互模式:
当我们使用了命令“fdisk+设备名”后,就可以进入fdisk程序的交互模式了,在交互模式中可以通过输入fdisk程序所提供的指令来完成相应的操作,其结果如图:
进入到这种模式时候,我们就可以通过输入fdisk的指令来执行相应的磁盘分区管理操作了,输入m可以获取fdisk的指令帮助信息:如图:
下面我们来看看各个指令的使用说明:
a :设置可引导标记
b :修改bsd的磁盘标签
c :设置DOS操作系统兼容标记
d :删除一个分区
l :显示已知的分区类型,其中82为Linux swap分区,83为Linux分区
m :显示帮助信息
n :增加一个新的分区
o :创建一个新的空白的DOS分区表
p :显示磁盘当前的分区表
q :退出fdisk程序,不保存任何修改
s :创建一个新的空白的Sun磁盘标签
t :改变一个分区的系统号码(比如把Linux Swap分区改为Linux分区)
u :改变显示记录单位
v :对磁盘分区表进行验证
w :保存修改结果并退出fdisk程序
x :特殊功能,不建议初学者使用
知道了上面这些命令的意义,可以说就会对一块硬盘进行分区了。下面我来举个例子来说明一下:
首先我拿虚拟机添加一块硬盘,大小为170G,然后对其进行分区:
1.首先输入“fdisk -l“命令来查看一下添加上硬盘没有,然后输入命令“fdisk /dev/sdb"来进入fdisk程序交互模式,如下图:
2.输入指令“n"来新建一个分区,这个时候系统会让你输入是新建主分区还是扩展分区,我选择主分区(p),然后输入分区号(因为我这是新的硬盘,还没有分过区,所以输入1代表第一个主分区),然后又是起始柱面,直接选择默认即可。最后输入你这块分区的大小,我这里是分的差不多50G吧!这样一个分区就分好了,然后你可以输入p指令来查看一下,如下图:
3.这次我再建立一个扩展分区,首先输入指令n来新建一个分区,然后输入e来选择扩展分区,再输入分区号(2),然后下面的都选择默认就OK了!建立好后使用指令 p来查看一下,如图:
4.下面我再在扩展分区里面建立两个逻辑分区,首先输入指令n,然后选择分区类型为l(逻辑分区)起始柱面选择默认,然后输入此逻辑分区的大小,我就分40G了。最后输入指令p来查看一下是否建立成功,如图:
5.同样的步骤建立另一个逻辑分区,这里就不多说了。下面来看一下如何修改一个分区的类型。
6.输入指令t来修改分区的类型(只需要输入分区类型对应的ID号即可),然后输入要修改的分区号,我这里是修改的sdb5(也就是说输入5就OK了)。最后输入分区的类型的ID号,如果不知道分区的类型对应的ID号,你可以输入“l"指令来查看分区类型所对应的ID号。如图:
7.查到分区类型的ID号后,你就可以输入对应的ID号来修改分区类型了,我这里把Linux分区改为Linux swap类型,从上图可知Linux swap类型所对应的ID为82,输入82后回车就完成 了修改,可以使用指令p来查看一下,如图:
8.上面这些就是整个使用fdisk分区工具对硬盘进行分区的过程,哦,别忘记最后一步了,你得输入指令w来对你所做的操作进行保存,保存后你可以使用fdisk -l /dev/sdb来查看是否分区成功。如图:
9.上面我们对硬盘进行了分区,硬盘分完区之后是不能直接使用的,得格式化后才能使用,下面我们就对硬盘进行格式化。输入“mkfs.ext3"来把硬盘格式化成ext3类型的文件系统。具体mkfs命令的使用方法,可以自己使用man mkfs命令来查看,这里就不详细说明了。如图:
10.输入mkfs.ext3 /dev/sdb1命令来对硬盘格式化,一个一个分区都要格式化完成才可以,有一个特殊的分区就是swap,可以使用命令mkswap /dev/sdb5来对swap类型的分区进行格式化。如下图:
11.格式化完文件系统后,你需要对磁盘进行挂载后才能够正常使用,挂载命令为mount,使用格式如下:
mount [-t 文件系统类型 ] 存储设备 挂载点(通常文件系统类型通常可以省略,系统会自动识别)
12.在挂载之前你需要新建一个挂载点,就是你想要把这块磁盘挂载到哪,然后你就把挂载点建立在哪就OK了。例如,上面例子中,我要对/dev/sdb1分区挂载,那么我先给它新建一个挂载点:mkdir /media/sdb1,然后执行:mount /dev/sdb1 /media/sdb1挂载点的名字可以随便起,挂载后你就可以往磁盘里写东西了,如图:
13.为了方便起见,我们还可以修改相关的配置文件,使得系统对某一个分区进行自动挂载,具体就是修改/etc/fstab配置文件来实现,我以上面例子把/dev/sdb1分区配置成每次系统启动时自动挂载到/media/sdb1下面,可以如下修改配置文件,如图:
14.按照上面所做当系统每次启动时,就会自动把/dev/sdb1分区挂载到/media/sdb1里,而不用我们每次进行手动挂载。
15.如果我们不想使用某一分区时,需要对它进行卸载,可以使用“umount + 设备挂载点”命令来进行卸载。如上例:umount /media/sdb1命令来进行卸载。
注意:有时候会遇到无法卸载的情况,遇到这种情况的原因是因为有其他用户或进程正在访问该文件系统导致的,在Linux系统中,是不允许对正在被访问的文件系统进行卸载操作的,只有当该文件系统上所有访问的用户或进程完成操作并退出后,这个文件系统才能被正常卸载。我们有两种方法来处理这种情况,一是用命令“lsof +挂载点”来查看到底是哪些进程正在访问该文件系统,查找出来后,使用kill命令将进程杀死来进行卸载。二是使用命令“fuser -k +挂载点”。加-k选项是使用命令fuser找出正在访问该文件系统的进程,加上-k选项就是找出来并杀死。通过以上两种方法就可以对一些无法卸载的文件系统进行卸载了。
----------parted分区工具----------
parted是RHEL5下自带的另外一种分区软件,相对于fdisk,它的使用更加方便,同时它还提供了动态调整分区大小的功能。下面我来如何通过parted创建、删除磁盘分区、查看分区表、更改分区大小、创建文件系统以及如何使用parted交互模式。
一、parted简介:
parted是另一款在linux下常用的分区软件,它支持的分区类型范围非常广,包括ext2、ext3、linux-swap、FAT、FAT32、reiserfs、HFS、jsf、ntfs、ufs和xfs等。它的命令格式如下:
parted [options] [device [command [options...]...]]
其中的命令选项说明如下:
-h :显示帮助信息。
-i :交互模式。
-s :脚本模式。
-v :显示parted的版本信息。
device :磁盘设备名称,如/dev/sda.
command :parted指令,如果没有设置指令,则parted将会进入交互模式。
二、parted交互模式:
与fdisk类似,parted可以使用命令“parted+设备名”进入交互模式。进入交互模式后,可以通过parted的各种指令来对磁盘分区进行管理,跟fdisk非常相似。我还以我电脑上的那块硬盘为例,如图是进入parted交互模式后又输入“help“命令帮助的界面:
-_-!汗,这里少了一张图,可能没复制上吧。。。你只要终端下输入“parted /dev/某个设备”就可以进入parted交互模式。
parted的各种操作指令和详细说明如下:
check NUMBER 检查文件系统
cp [FROM-DEVICE]FROM-NUMBER TO-NUMBER 复制文件系统到另外一个分区
help[COMMAND] 显示全部帮助信息或者指定命令的帮助信息
mklabel,mktable LABEL-TYPE 在分区表中创建一个新的磁盘标签
mkfs NUMBER FS-TYPE 在分区上创建一个指定类型的文件系统
mkpart PART-TYPE[FS-TYPE]START END 创建一个分区
mkparts PART-TYPE[FS-TYPE]START END 创建一个分区,并在分区上创建指定的文件系统
move NUMBER START END 移动分区
name NUMBER NAME 以指定的名字命名分区号
print [free|NUMBER|all] 显示分区表、指定的分区或者所有设备
quit 退出parted程序
rescue START END 修复丢失的分区
resize NUMBER START END 更改分区的大小
rm NUMBER 删除分区
select DEVICE 选择需要更改的设备
set NUMBER FLAG STATE 更改分区的标记
toggle [NUMBER[FLAG]] 设置或取消分区的标记
unit UNIT 设置默认单位
version 显示parted的版本信息
三、分区管理
1.查看分区
在parted交互模式下输入print指令来查看分区(相当于fdisk的p指令),如图:
2.创建分区
在parted交互模式下输入mkpart指令来创建磁盘分区,假如要创建一个开始位置为50G、结束位置为100G、文件系统类型为ext3的逻辑分区,可以使用如下指令来创建:
mkpart logical ext3 50G 100G 如图:
当然也可以只输入mkpart指令而不带任何参数,parted会一步步提示用户输入相关信息并最终完成分区创建,如图:
3.创建文件系统
创建分区后,可以使用mkfs指令在分区上创建文件系统(也就是格式化),parted目前只支持ext2文件系统,还不支持ext3,如图:
4.更改分区大小
使用resize指令可以更改指定分区的大小。需要更改大小的分区上面必须是已经创建了文件系统,否则会提示:Error:Could not detect file system.下面我以dev/sdb6为例来缩小22G,因为我现在磁盘已经用完了,所以不能加了!就减少吧!如图:
5.删除分区
使用rm指令可以删除指定的磁盘分区,在进行删除操作前必须先把分区卸载,例如我要删除/dev/sdb6就是在parted交互模式下输入“rm“指令,然后输入要删除的分区号。如图: