一、磁盘分区
1. 磁盘分区概述
Linux 操作系统只有一个根目录,根目录下又分几个区分别分给某一子目录使用,Linux 操作系统中的每个分区都是整个文件系统的一部分,硬盘中的每个分区都会挂载到文件系统的某一目录中。
Linux 硬盘分为 IDE 硬盘和 SCSI 硬盘,IDE 硬盘的驱动标识符为 “hdx~”:
“hd” 表示分区所在设备的类型
“x” 表示盘号,a 基本盘、b 基本从属盘、c 辅助主盘、d 辅助从属盘
“~” 表示分区,前四个分区为主分区或者扩展分区,分别用数字 1 到 4 表示,从 5 开始变为逻辑分区
例如标识符 hda1 就代表 IDE 硬盘上的第一个主分区或者拓展分区;
SCSI 硬盘的驱动标识符为 “sdx~”,除了使用“sd”表示设备类型外,其余则与 IDE 硬盘相同,目前主流硬盘为 SCSI 硬盘。
我们可以使用指令 lsblk 或者 lsblk -f 来查看所有硬盘分区及设备挂载情况,如下一块 SCSI 基本盘下又有 1、2 两个主分区或者拓展分区:
使用 lsblk -f 指令的区别在于该命令比 lsblk 所查看的信息更为详细;
2. 磁盘分区实例
创建一个新的磁盘并分区、挂载再到删除需要有以下几步:
(1)添加硬盘
我们先在 Linux 系统中添加一块硬盘,进入“菜单”,选择“设置”,在设备列表中添加硬盘,随后点击“下一步”并设置磁盘大小后重启系统即可。
添加新硬盘后点击确定;
重启系统后查看硬盘分区情况,如下已有新的 SCSI 硬盘 sdb,大小为 1G,但此时还没有分区;
(2)创建分区
分区命令为 fdisk 磁盘,需要知道,新添加的硬盘是在 Linux 操作系统的设备文件夹也就是 /dev 目录下的, 所以我们使用指令 fdisk /dev/sdb 对硬盘 sdb 进行分区,随后按照提示进行如下操作:
注意:在进行分区操作的最后一步必须输入 w 写入磁盘并退出,否则之前的操作均不会生效。
此时我们再查看硬盘及分区情况,新的硬盘 sdb 已有新分区 sdb1;
(3)分区格式化
格式化分区 指令为 mkfs -t ext4 分区,其中 ext4 代表分区类型;接下来我们对分区 sdb1 进行格式化:
此外如果想要知道一个分区有没有被格式化,可以使用指令 lsblk -f 查看分区的详细信息,未经格式化的分区是没有唯一标识符(UUID)属性的。
(4)将新创建的分区挂载到目录
根据分区原理可知,每一个分区都与文件系统有着紧密的联系,所以分区只有挂载到某一目录当中才可以使用。挂载指令为 mount 分区 挂载点;
我们创建一个新目录 newdisk 用于挂载(建议且切换到根目录或者其他目录创建,因为小马在主目录创建时挂载不成功);
此时再次查看分区,新分区 sdb1 已有挂载点 newdisk;
至此,新的分区创建成功且已挂载至目录,今后在目录中创建的文件其实就是保存到了该分区中。
提示:使用 mount 指令进行挂载操作后,重启系统则挂载关系会消失。为了避免挂载的重复操作,可以进行永久挂载。
(5)删除(卸载)挂载关系
删除分区与目录的挂载关系使用指令 umount 分区 或者 umount 挂载点 均可,如下挂载关系已删除;
3. 查询磁盘情况
在目录下创建文件时,文件会保存到与该目录具有挂载关系的磁盘分区中,磁盘存储空间则会越来越小,为了保证磁盘的正常使用,我们必须时刻知道系统磁盘的使用情况。
查询磁盘情况使用指令 df -h,如下;当已用量超过 80% 时就应该采取相关措施比如清理空间、添加磁盘或者分区等等;
除了查询系统磁盘情况,也可以使用指令 du -h /目录 查询指定目录所对应的磁盘的使用情况。未写目录而直接使用指令 du -h 时默认为当前所在目录;
4. 磁盘情况其他指令
ls -l 目录 | grep "^-" | wc -l //统计某目录下文件的个数
ls -l 目录 | grep "^d" | wc -l //统计某目录下目录的个数
ls -lR 目录 | grep "^-" | wc -l //统计某目录下文件的个数包括其子文件
ls -lR 目录 | grep "^d" | wc -l //统计某目录下目录的个数包括其子目录
tree 目录 //以树状结构显示目录结构,前提是已经安装了 tree(安装命令:yum install tree)