本文共 4896 字,大约阅读时间需要 16 分钟。
在Linux服务器中,当现有硬盘的分区规划不能满足要求时,就需要对硬盘中的分区进行重新规划和调整,有时候还需要添加新的硬盘设备来扩展存储空间。
实现上述操作要用到fdisk磁盘及分区管理工具,fdisk是大多数Linux系统中自带的基本工具之一。下面通过为Linux主机新增一块硬盘并建立分区的过程,介绍fdisk工具的使用。
一、检测并确认新硬盘
挂接好新的硬盘设备并启动主机后,Linux系统会自动检测并加载该硬盘,无需额外安装驱动。执行“fdisk -l”命令可以进行查看,确认新增硬盘的设备名称。
“fdisk -l”命令的作用是列出当前系统中所有硬盘设备及其分区的信息。
【例1】:执行“fdisk -l”命令,确认系统新识别的硬盘设备(/dev/sdb)。
上述输出信息中包含了各硬盘的整体情况和分区情况,其中“/dev/sda”为原有的硬盘设备,而“/dev/sdb”为新增的硬盘,新的硬盘设备还未进行初始化,没有包含有效的分区信息。
对于已有的分区,将通过列表的方式输出以下信息。
Device:分区的设备文件名称。
Boot:是否是引导分区,是,则有“*”标识。
Start:该分区在硬盘中的起始位置(柱面数)。
End:该分区在硬盘中的结束位置(柱面数)。
Blocks:分区的大小,以Blocks(块)为单位,默认的块大小为1024字节。
Id:分区类型的ID标记号,对于ext3分区为83,LVM分区为8e。
System:分区类型。
识别到新的硬盘设备后,接下来就可以在该硬盘中建立新的分区了。在Linux系统中,分区和格式化的过程是相对独立的。
二、规划硬盘中的分区
在硬盘设备中创建、删除、更改分区等操作同样通过fdisk命令进行,只要使用硬盘的设备文件作为参数,即可进入到交互式的分区管理界面中,如下图。
在该操作界面中的提示符后,用户可以输入特定的分区操作指令,完成各项分区管理任务,例如输入“m”指令后,可以查看各种操作指令的帮助信息,如下图。
在分区过程中常用的一些交互操作指令有:
1、m:查看操作指令的帮助信息
2、p:列表查看分区信息
3、n:新建分区
4、d:删除分区
5、t:变更分区类型
6、w:保存分区设置并退出
7、q:放弃分区设置并退出
在以上操作中应注意的有:
【1】:选择分区号时,主分区和扩展分区的序号只能在1-4之间。分区起始位置一般由fdisk默认识别即可,结束位置或大小可以使用“+sizeM”或“+sizeK”的形式,如“+20 000M”表示将该分区的容量设置为20GB。
【2】:在执行删除分区时一定要慎重,应首先使用p指令查看分区的序号,确认无误后再进行删除。如果扩展分区被删除,则扩展分区之下的逻辑分区也将同时会被删除。因此建议从最后一个分区开始进行删除,以免fdisk识别的分区序号发生紊乱。
【3】:使用“t”更改分区类型时,只要依次指定分区序号及更改后分区类型的ID标记号即可。如果不知道分区类型对应的ID号,可以输入“l”指令列表查看各种分区类型所对应的标记号,
Linux系统中最常用的两种文件系统ext3、swap的ID号分别为83、82.
【4】:变更硬盘(特别是正在使用的硬盘)的分区设置以后,建议最好将系统进行重启,或者执行“partprobe”命令使操作系统获知新的分区表情况。在有些Linux操作系统中,若不进行这些操作,可能会导致格式化分区时对硬盘中已有数据的损坏,严重者甚至引起系统崩溃。
#partprobe /dev/sdb
三、格式化分区
mkfs命令:
用途:创建文件系统(格式化)
格式:mkfs -t 文件系统类型 分区设备
mkswap命令
用途:创建交换文件系统
格式:mkswap 分区设备
实际上mkfs命令是一个前端工具,可以自动加载不同的程序来创建各种类型的分区,而后端包括有多个与mkfs命令相关的工具程序,例如支持FAT16、FAT32分区格式的mkfs.vfat程序等。
【例2】:查看“/sbin”目录中与mkfs相关的工具程序。
【例3】:在“/dev/sdb1”分区中创建ext3文件系统。
#mkfs -t ext3 /dev/sdb1
等同于执行“mkfs.ext3 /dev/sdb1”
【例4】:创建并启用交换分区,并通过free命令观察交换空间的变化。
四、挂载、卸载文件系统
1、mount命令
用途:挂载文件系统、ISO镜像到指定文件夹
格式:mount [-t 类型] 存储设备 挂载点目录
mount -o loop ISO镜像文件 挂载点目录
2、umount命令
用途:卸载已挂载的文件系统
格式:umount 存储设备位置
umount 挂载点目录
3、查看已挂载分区的使用情况
df -hT
在Linux系统中,对各种存储设备中的资源访问都是通过目录结构进行的,虽然系统核心能够通过“设备文件”的方式操纵各种设备,但是对于用户来说,还需要增加一个“挂载”的过程,才能像正常访问目录一样访问存储设备中的资源。
当然,在安装Linux操作系统的过程中,自动建立或识别的分区通常会由系统自动完成挂载。然而对于后来新增加的硬盘分区、USB盘、光盘等设备,有时候还需要管理员手动进行挂载,实际上用户访问的是经过格式化后建立的文件系统。挂载一个分区时,必须为其制定一个目录作为挂靠点,用户通过这个目录访问设备中的文件、目录数据。
在Linux系统中,U盘设备被模拟成SCSI设备,因此与挂载普通SCSI硬盘中的分区并没有明显区别。若不确定所添加的U盘设备文件,可以先执行“fdisk -l”命令进行查看确认。
使用不带任何参数或选项的mount命令时,将显示出当前系统中已挂载的各个文件系统的相关信息。
proc、sysfs、tmpfs等文件系统是Linux运行所需要的临时文件系统,并没有实际的硬盘分区与其相对应,因此也称为“伪文件系统”。例如proc映射了内存及cpu寄存器中的部分数据。
【设置文件系统的自动挂载】:
/etc/fstab配置文件:包含了需要开机后自动挂载的文件系统记录。如下图:
系统中的“/etc/fstab”文件可以视为mount命令的配置文件,其中存储了文件系统的静态挂载数据。Linux系统每次开机时,会自动读取这个文件的内容,自动挂载所指定的文件系统。
在“/etc/fstab”文件中,每一行记录对应一个分区或设备的挂载配置信息,从左到右包括六个字段(使用空格或制表符分隔),各部分的含义如下所述:
第一字段:设备名或设备卷标名。
第二字段:文件系统的挂载点目录的位置。
第三字段:文件系统类型,如ext3、swap等。
第四字段:挂载参数,即mount命令“-o”选项后可使用的参数,如defaults、rw等。
第五字段:表示文件系统是否需要dump备份,一般设为1时表示需要,设为0时将被dump所忽略。
第六字段:该数字用于决定在系统启动时进行磁盘检查的顺序,0表示不进行检查,1表示优先检查,2表示其次检查。对于根分区应设为1,其他分区设为2.
【例5】:修改“/etc/fstab”文件,添加自动挂载“/dev/sdb1”分区的配置行。
#vi /etc/fstab
在文件末尾添加如下行内容:
/dev/sdb1 /mailbox ext3 default 0 0
一、LVM概述
LVM是Linux系统中对磁盘分区进行管理的一种逻辑机制,它是建立再硬盘和分区之上,文件系统之下的一个逻辑层,在建立文件系统时屏蔽了下层的磁盘分区布局,能够在保持现有数据不变的情况下动态调整磁盘容量,从而提高了磁盘管理的灵活性。
在安装RHEL5系统的过程中选择自动分区时,默认就会采用LVM分区方案,不需要再进行手动配置。如果有特殊需要,也可以使用安装向导提供的磁盘定制工具调整LVM分区。需要注意的是,“/boot”分区不能基于LVM创建,必须独立出来。
关于LVM的几个基本术语:
1、PV(Physical Volume,物理卷)
物理卷是LVM机制的基本存储设备,通常对应为一个普通分区或整个硬盘。创建物理卷时,会在分区或硬盘的头部创建一个保留区块,用于记录LVM的属性,并把存储空间分割成默认大小为4MB的基本单元PE,从而构成物理卷。
物理卷一般直接使用设备文件名称,如“/dev/sdb1”、“/dev/sdb2”等。
用于转换成物理卷的普通分区,建议先使用fdisk工具将分区类型的ID标记号改为“8e”。若是整块硬盘,可以将所有磁盘空间划分为一个主分区后再作相应调整。
2、VG(Volume Group,卷组)
由一个或多个物理卷组成一个整体,即成为卷组,在卷组中可以动态地添加或移除物理卷。许多个物理卷可以分别组成不同的卷组,卷组名称由用户自行定义。
3、LV(Logical Volume,逻辑卷)
逻辑卷是建立在卷组之上的,与物理卷没有直接关系。
对于逻辑卷来说,每一个卷组就是一个整体,从这个整体中“切出”一小块空间,作为用户创建文件系统的基础,这一小块空间就称为逻辑卷。使用mkfs等工具在逻辑卷上创建文件系统以后,即可挂载到Linux系统中的目录下使用。
通过上述对物理卷、卷组、逻辑卷的解释可以看出,建立LVM分区管理机制的过程就是:首先,将普通分区或整个硬盘创建为物理卷;接下来,将物理上比较分散的各物理卷的存储空间组成一个逻辑整体,即卷组;最后,基于卷组这个整体,分割出不同的数据存储空间,形成逻辑卷。而逻辑卷才是最终用户可以格式化并挂载使用的存储单位。
二、LVM的管理命令
功 能 | 物理卷管理 | 卷组管理 | 逻辑卷管理 |
Scan 扫描 | pvscan | vgscan | lvscan |
Create 建立 | pvcreate | vgcreate | lvcreate |
Display 显示 | pvdisplay | vgdisplay | lvdisplay |
Remove 删除 | pvremove | vgremove | lvremove |
Extend 扩展 | vgextend | lvextend | |
Reduce 减少 | vgreduce | lvreduce |
主要命令的语法
pvcreate 设备名
vgcreate 卷组名 物理卷名1 物理卷名2
lvcreate -L 大小 -n 逻辑卷名 卷组名
lvextend -L +大小 /dev/卷组名/逻辑卷名
三、LVM应用实例
案例的环境和需求描述如下:
公司准备在Internet中搭建邮件服务器,面向全国各地的员工即部分VIP客户提供电子邮箱空间。由于用户数量众多,邮件存储需要大量的空间,考虑到动态扩容的需要,计划增加两块SCSI硬盘并构建LVM逻辑卷(挂载到“/mail”目录下)专门用于存放邮件数据。
根据上述案例环境和需求,具体操作步骤如下:
1、关闭服务器,打开机箱,正确挂接2块SCSI新硬盘。
2、开启服务器主机,并执行“fdisk -l”命令进行检查,确认已识别新增的硬盘(sdb、sdc)。
3、在磁盘中进行分区,将每块硬盘的所有空间划分为一个独立的主分区,并将分区类型更改为“8e”。分好区后使用“fdisk -l”命令查看结果如下所示。
4、将“/dev/sdb1”和“/dev/sdc1”分区转换为物理卷。
5、将上述两个物理卷整合,创建名为“mail_store”的卷组。
6、在“mail_store”卷组中创建一个名为“mail”的逻辑卷,容量大小设置为3G。
7、使用mkfs命令在“mail”逻辑卷中创建ext3文件系统,并挂载到“/mail”目录下。
8、动态扩展“mail”逻辑卷的容量(增加500M),并更新系统识别的文件系统大小。