本文主要由以下三点为重为大家讲解
- 磁盘分区的基本操作
- 创建(即格式化)文件系统
- 挂载和卸载文件系统
管理磁盘及分区
在 Linux 服务器中,当现有的磁盘分区规划不能满足要求(例,根分区的剩余空间过少,无法继续安装新的系统程序)时,就需要对磁盘中的分区进行重新规划和调整,有时候还需要添加新的磁盘设备来扩展存储空间。
实现上述操作需要用到 fdisk 磁盘及分区管理工具,fdisk 是大多数 Linux 系统中自带的基本工具之一。本文将通过为 Linux 新增一块硬盘并建立分区的过程,介绍 fdiak 工具使用。增加硬盘设备时首先需要在机箱内进行硬盘接口的物理连接。若是在 VMware 虚拟机环境中,可以修改虚拟主机的设置,添加一块“Hard Disk”硬盘设备(如添加一块 80GB 的 SCSI硬盘)
1、检测并确认新硬盘
挂接好新的硬盘设备并启动主机后,Linux 系统会自动检测并加载该硬盘,无需额外安装驱动。执行“fdisk -l”命令可以查看、确认新增硬盘的设备名称和位置。“fdisk -l”命令的作用是列出当前系统中所有的硬盘设备及其分区的信(关机挂光盘)
上述输出信息中包含了各硬盘的整体情况和分区情况,其中“/dev/sda”为原有的硬盘设备,而“/dev/sdb”为新增的硬盘,新的硬盘设备还未进行初始化,没有包含有效的分区信息。对于已有的分区,将通过列表的方式输出以下信息。
➢ Device:分区的设备文件名称。
➢ Boot:是否是引导分区。是,则有“*”标识。
➢ Start:该分区在硬盘中的起始位置(柱面数)。
➢ End:该分区在硬盘中的结束位置(柱面数)。
➢ Blocks:分区的大小,以 Blocks(块)为单位,默认的块大小为 1024 字节。
➢ Id:分区对应的系统 ID 号。83 表示 Linux 中的 EXT4 分区,8e 表示 LVM 逻辑卷。
➢ System:分区类型。(识别到新的硬盘设备后,接下来就可以在该硬盘中建立新的分区了。在 Linux 系统中,分区和格式化的过程是相对的,关于格式化分区的操作将在下面讲解。)
2、规划硬盘中的分区
在硬盘设备中创建、删除、更改分区等操作同样通过 fdisk 命令进行,只要使用硬盘的设备文件作为参数。
例,执行“fdisk /dev/sdb”命令,即可进入到交互式的分区管理界面中。
在该操作界面中的“Command (m for help):”提示符后,输入特定的分区操作指定,可以完成各项分区管理任务。
- 输入“fdisk /dev/sdb"——即可进入到交互式的分区管理界面中
- 然后输入“m”——后可以查看各种操作指令的帮助信息
a toggle a bootable flag 切换可以开机
b edit bsd disklabel BSD 磁盘标签编辑
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) 额外的功能(专家)
- 输入“p”——列出硬盘中的分区情况
使用“p”指令可以列出详细的分区情况,信息显示的格式与执行“fdisk -l”命令相同。
硬盘中尚未建立分区时,输出的列表信息为空。
- 输入“n”——创建新的分区
使用“n”指定可以进行创建分区的操作,包括主分区和扩展分区。根据提示继续输入“p”选择创建主分区,输入“e”选择创建扩展分区。之后依次选择分区序号、起始位置、结束位置或分区大小即可完成新分区的创建。
选择分区号时,主分区和扩展分区的序号只能为 1~4。分区起始位置一般由 fdisk 默认识别即可,结束位置或大小可以使用“+sizeM”或“+sizeG”的形式。如“+1KB”表示将该分区的容量设置为 1KB。
primary ——主分区;extended——扩展分区;logical——逻辑分区)主分区和扩展分区1-4,逻辑分区从5开始。
- 输入”d“——删除分区
使用“d”指令可以删除指定的分区,根据提示继续输入需要删除的分区序号即可。在执行删除分区时一定要慎重,应首先使用 p 指令查看分区的序号,确认无误后再进行删除。
需要注意的是,若扩展分区被删除,则扩展分区之下的逻辑分区也将同时被删除。因此建议从最后一个分区开始进行删除,以免 fdisk 识别的分区序号发生紊乱。
例,删除上一步建立的逻辑分区/dev/sdb2。
Command (m for help): d //进入删除执行分区的操作
Partition number (1,2,4,5, default 5): 2 //选择需要删除的分区序号
- 输入”t“——变更分区类型
在 fdisk 分区工具中,新建的分区默认使用的文件系统类型为 EXT4,一般不需要更改。但是若新建的分区需要用作 Swap 交换分区或其他类型的文件系统时,则需要对分区类型进行变更以保持一致性,从而避免在管理分区时产生混淆。
使用“t”指令可以变更分区的 ID 号。操作时需要依次指定目标分区序号、新的系统 ID 号。不同类型的文件系统对应不同的 ID 号,以 16 进制数表示,在 fdisk 交互环境中可以输入“l”指令进行列表查看。最常用的 EXT4、Swap 文件系统的 ID 号分别为 83、82,而用于Windows 中的 NTFS 文件系统的 ID 号一般为 86。
执行下面的操作可以将逻辑分区“/dev/sdb5”的类型更改为 Swap,通过“p”指令可以确认分区/dev/sdb5 的系统 ID 已由默认的 83 变为 82。
- 输入”l"——可以查看不同类型的文件系统所对应的ID号
- 输入“w”和“q”——退出fdisk分区工具
完成对硬盘的分区操作后,可以执行“w”或“q”指令退出 fdisk 分区工具。其中“w”指令将保存分区操作,而“q”指令将不会保存对硬盘所做的分区操作。对已包含数据的硬盘进行分区时,一定要做好数据备份,保存之前要确保操作无误,以免发生数据损坏。若无法确定本次分区操作是否正确,建议使用“q”指令不保存退出。
变更硬盘(特别是正在使用的硬盘)的分区设置后,建议最好将系统重启一次,或者执行“partprobe”命令使操作系统检测新的分区表情况。在某些 Linux 操作系统中,若不进行这些操作,可能会导致格式化分区时对硬盘中已有数据的损坏,严重者甚至引起系统崩溃。
例,“partprobe”命令将重新探测“/dev/sdb”磁盘中的分区变化。
管理文件系统
在 Linux 系统中,使用 fdisk 工具在硬盘中建立分区以后,还需要对分区进行格式化并挂载到系统中的指定目录,然后才能用于存储文件、目录等数据。
1、创建文件系统
创建文件系统的过程也即格式化分区的过程,在 Linux 系统中使用 mkfs(Make Filesystem,创建文件系统)命令工具可以格式化 EXT4、FAT 等不同类型的分区,而使用 mkswap 命令可以格式化 Swap 交换分区。
1) mkfs命令的使用
实际上 mkfs 命令时一个前端工具,可以自动挂载不同的程序来创建各种类型的分区,而后端包括有多个与 mkfs 命令相关的工具程序,这些程序位于/sbin/目录中,如支持 EXT4 分区格式的 mkfs.ext4 程序等
mkfs命令的基本格式:
mkfs -t 文件系统类型 分区设备
mkfs.文件系统类型 分区设备
- 例:创建EXT4文件系统(即把分区格式话为EXT4文件系统)
输入“ mkfs -t ext4 /dev/sdb1 或者 mkfs.ext4 /dev/sdb1 "
- 创建FAT32文件系统类型(即把分区格式化为FAT32文件系统)
一般来说,不建议在 Linux 系统中创建或使用 Windows 中的文件系统类型,包括 FAT16、FAT32 等。
若要在 Linux 系统中创建 FAT32 文件系统,可结合“-t vfat”选项指定类型,并添加“-F 32”选项指定 FAT 的版本
例:将分区 /dev/sdb5 格式话为FAT32文件系统(先通过 fdisk 工具添加/dev/sdb5 分区,并将 ID 号设为 b)。
输入 ”mkfs -t vfat -F 32 /dev/sdb5 或者 mkfs.vfat -F 32 /dev/sdb5 "
- 查看已经创建好的分区类型
parted /dev/sdb //查看分区格式
print list //显示分区列表
2)mkswap命令的使用
在 Linux 系统中,Swap 分区的作用类似于 Windows 系统中的“虚拟内存”,可以在一定程度上缓解物理内存不足的情况。当当前 Linux 主机运行的服务较多,需要更多的交换空间支撑应用时,可以为其增加新的交换分区。使用 mkswap 命令工具可以在指定的分区上创建交换文件系统,目标分区应先通过 fdisk 工具将 ID 号设为 82
- 例:将分区 /dev/sdb6 设置成交换分区
- 输入”swapon“来启用新增加的交换分区,反之输入”swapoff“来停止
2、挂载、卸载文件系统
在 Linux 系统中,对系统各种存储设备中的资源访问(如读取、保存文件等)都是通过目录结构进行的,虽然系统核心能够通过“设备文件”的方式操纵各种设备,但是对于用户来说,还需要增加一个“挂载”的过程,才能像正常访问目录一样访问存储设备中的资源。
当然,在安装 Linux 操作系统的过程中,自动建立或识别的分区通常会由系统自动完成挂载,如“/”分区、“/boot”分区等。
然而对于后来新增加的硬盘分区、光盘等设备,有时候还需要管理员手动进行挂载,实际上用户访问的是经过格式化后建立的文件系统。
挂载一个分区时,必须为其制定一个目录作为挂靠点(或称为挂载点),用户通过这个目录访问设备中的文件、目录数据。
1)挂载文件系统
指令格式 :mount { -t 文件系统类型 } 储存设备 挂载目录
其中,文件系统类型通常可以省略(由系统自动识别),存储设备即对应分区的设备文件名(如/dev/sdb1、/dev/cdrom)或网络资源路径,挂载点即用户指定用于挂载的目录
- 例,将光盘设备挂载到/a; /b; /c;目录。(必须先格式化:创建文件系统)
- 输入 ” df“查看挂载情况
PS:光盘对应的设备文件通常使用“/dev/cdrom”,其实这是一个链接文件,链接到事件的光盘设备“/dev/sr0”,使用者两个名称都可以表示光盘设备。
由于光盘是只读的存储介质,因此在挂载时系统会出现“mounting read-only”的提示信息。
挂载 Linux 分区或 U 盘设备时的用法也一样,只需要指定正确的设备位置和挂载目录即可。
例,将建立的/dev/sdb1 分区挂载到新建的/mailbox 目录下。
在 Linux 系统中,U 盘设备被模拟成 SCSI 设备,因此与挂载普通 SCSI 硬盘中的分区并没有明显区别,U 盘一般使用 FAT16 或 FAT32 的文件系统。若不确定 U 盘设备文件的位置,可以先执行“fdisk -l”进行查看、确认。
- 使用 ”mount“ 指令时可以查看系统中所有挂的文件,最新挂载的都最下面
PS:proc、sysfs、tmpfs 等文件系统是 Linux 运行所需要的临时文件系统,并没有实际的硬盘分区与其相对应,因此也称为“伪文件系统”。例,proc 文件系统实际上映射了内存及 CPU 寄存器中的部分数据。
2)卸载文件系统
需要卸载文件系统时,使用的命令为 umount,使用挂载点目录或对应设备的文件名作为卸载参数。Linux 系统中,由于同一个设备可以被挂载到多个目录下,所以一般建议通过挂载点的目录位置来进行卸载。
例:卸载之前所挂载的linux分区
umount /dev/sdb1 //通过对应设备文件名作为卸载参数
umount /b //通过挂载点目录作为卸载参数
3)设置文件系统的自动挂载
系统中的/etc/fstab 文件可以视为 mount 命令的配置文件,其中存储了文件系统的静态挂载数据。Linux 系统在每次开机时,会自动读取这个文件的内容,自动挂载所指定的文件系统。默认的 fstab 文件中包括了根分区、/boot 分区、交换分区及 proc、tmpfs 等伪文件系统的挂载配置。
通过在“/etc/fstab”文件中添加相应的挂载配置,可以实现开机后自动挂载指定的分区。
例,添加自动挂载分区/dev/sdb1 的配置记录。
输入“vim /etc/fstab”
然后输入”mount -a “立刻执行刚才所配置的,或者重启下服务器
在“/etc/fstab”文件中,每一行记录对应一个分区或设备的挂载配置信息,从左到右包括六个字段(使用空格或制表符分隔),各部分的含义如下:
➢ 第 1 字段:设备名或设备卷标名。
➢ 第 2 字段:文件系统的挂载点目录的位置。
➢ 第 3 字段:文件系统类型,如 EXT4、Swap 等。
➢ 第 4 字段:挂载参数,即 mount 命令“-o”选项后可使用的参数。例,defaults、rw、ro、noexec 分别表示默认参数、可写、只读、禁用执行程序。
➢ 第 5 字段:表示文件系统是否需要 dump 备份(dump 是一个备份工具)。一般设为 1 时表示需要,设为 0 时将被 dump 所忽略。
➢ 第 6 字段:该数字用于决定在系统启动时进行磁盘检查的顺序。0 表示不进行检查,1表示优先检查,2 表示其次检查。对于根分区应设为 1,其他分区设为 2。
4)查看磁盘使用情况
不带选项及参数的 mount 命令可以显示分区的挂载情况,若要了解系统中已挂载各文件系统的磁盘使用情况(如剩余磁盘空间比例等),可以使用 df 命令。
df 命令使用文件或者设备作为命令参数,较常用的选项为“-h”、“-T”。其中,“-h”选项可以显示更易读的容量单位,而“-T”选项用于显示对用文件系统的类型。
例,执行“df -hT”可以查看当前系统中挂载的各文件系统的磁盘使用情况。