Linux-磁盘管理与文件系统(磁盘相关知识、Linux磁盘分区、管理文件系统,格式化分区(MBR与GPT),挂载文件系统)

一、磁盘基础

硬盘(Hard Disk Drive简称HDD) 是计算机常用的存储设备之一,下面由几个方面来简单的介绍一下硬盘的信息。

1.1 硬盘的结构

1.1.1 数据结构

  • 扇区:磁盘上的每个磁道被等分为若干个弧段,这些弧段便是硬盘的扇区
    (Sector)。硬盘的第一个扇区,叫做引导扇区。
  • 磁道:当磁盘旋转时,磁头若保持在一个位置上,则每个磁头都会在磁盘表面划出一个圆形轨迹,这些圆形轨迹就叫做磁道(Track)。
  • 柱面:在有多个盘片构成的盘组中,由不同盘片的面,但处于同一半径圆的多个磁道组成的一个圆柱面(Cylinder)。
  • 硬盘的结构如图
    在这里插入图片描述

1.1.2 物理结构

  • 盘片:硬盘有多个盘片,每盘片 2 面。
  • 磁头:每面一个磁头。

1.1.3 存储容量

  • 硬盘存储容量=磁头数×磁道(柱面)数×每道扇区数×每扇区字节数。

可以用柱面/磁头/扇区来唯一定位磁盘上每一个区域,用 fdisk -l 查看分区信息。

1.2 硬盘的接口

硬盘按数据接口不同,大致分为 ATA(IDE)和 SATA 以及 SCSI 和 SAS,接口速度不是实际硬盘数据传输的速度。

  • ATA,全称 Advanced Technology Attachment,并口数据线连接主板与硬盘,抗干扰性太差,且排线占用空间较大,不利电脑内部散热,已逐渐被 SATA 所取代。
  • SATA,全称 Serial ATA,抗干扰性强,支持热插拔等功能,速度快,纠错能力强。
  • SCSI,全称是 Small Computer System Interface(小型机系统接口),SCSI硬盘广为工作站级个人电脑以及服务器所使用,资料传输时 CPU 占用率较低,转速快,支持热插拔等。
  • SAS(Serial Attached SCSI)是新一代的 SCSI 技术,和 SATA 硬盘相同,都是采取序列式技术以获得更高的传输速度,可达到 6Gb/s。

二、 管理磁盘及分区

2.1 磁盘分区表示

2.1.1 MBR

MBR 是主引导记录(Master Boot Record),位于硬盘第一个物理扇区处,MBR 中包含硬盘的主引导程序和硬盘分区表。分区表有 4 个分区记录区,每个分区记录区占 16 个字节.

2.2.2 磁盘分区的表示

常见的硬盘可以划分为主分区、扩展分区和逻辑分区,通常情况下主分区只有四个,而扩展分区可以看成是一个特殊的主分区类型,在扩展分区中可以建立逻辑分区。主分区一般用来安装操作系统,扩展分区则多用来存储文件数据。
Linux 系统中,将硬盘和分区分别表示为不同的文件

  • 硬盘:对于 IDE 接口的硬盘设备,表示为“hdX”形式的文件名;而对于 SCSI
    接口的硬盘设备,则表示为“sdX”形式的文件名。其中“X”可以为 a、b、c、d 等字母序号。
  • 分区:表示分区时,以硬盘设备的文件名作为基础,在后边添加该分区(无论主分区、扩展分区、逻辑分区)对应的数字序号即可。逻辑分区的序号将始终从 5 开始

2.3.3 Linux 中使用的文件系统类型

在 Linux 系统中,最常使用的文件系统有XFS(高性能的日志文件系统)、SWAP(交换文件系统)、EXT4(Linux 系统中默认使用的文件系统)、JFS、FAT16、FAT32、NTFS 等。

2.2 磁盘分区(MBR)

我们在 VMware 虚拟机环境中模拟磁盘分区,首先在VMware虚拟机中添加一块SCSI硬盘,大小为300G。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
接下来我们点击确定,并将虚拟机关机重启(重启后添加的硬盘生效)。
在这里插入图片描述
在这里插入图片描述
从这里的分区的容量start选项下我们可以看到,第一个分区是从2048开始,每一个分区的开始与上一个分区的结束都相差2048,这是因为分区表和引导程序占据了一定的大小,每一个逻辑分区都有自己的分区表,当然也就带着各自的引导程序。在这里插入图片描述
这时候我们还剩下180G的硬盘没有分配,我们同样进入分配,发现只能再创建一个新的主分区,并将所有的180G分配给这个分区,这就是因为我们只能有四个主分区。
在这里插入图片描述
这样我们就分区结束了,我们常用的指令就是p(列出硬盘中的分区情况)、
n(新建分区)、d(删除分区)、t(变更分区的类型)、m(获取帮助)、w(保存)、q(退出)。

2.3 磁盘分区(GPT)

2.3.1 GPT的特点

GPT分区模式使用GUID分区表,是源自EFI标准的一种较新的磁盘分区表结构的标准。与普遍使用的主引导记录(MBR)分区方案相比,GPT提供了更加灵活的磁盘分区机制。
GPT分区方法具有以下优点:

  1. 支持2TB以上的大硬盘。
  2. 每个磁盘的分区个数最多允许划分128个分区。
  3. 分区大小几乎没有限制,因为它用64位的整数表示扇区号。
  4. 分区表自带备份。在磁盘的首尾部分分别保存了一份相同的分区表。其中一份被破坏后,可以通过另一份恢复。
  5. 每个分区可以有一个名称。

2.3.2 GPT分区演示

同样的我们添加一块2T大小的硬盘,并重启电脑
在这里插入图片描述
我们使用parted命令进行分区
在这里插入图片描述
这里我们可以看到,就像MBR分区一样,分区表占了一部分容量,这里分给第一个分区的容量是从17.4kb开始的。
在这里插入图片描述
mkpart primary 1T 2T的意思是由于第一个分区分走了1T,所以这里是从1T往后的容量分给第二个分区。
在这里插入图片描述

三、 管理文件系统

3.1 创建文件系统

创建文件系统的过程即格式化分区的过程,在 Linux 操作系统中使用 mkfs(Make Filesystem,创建文件系统)命令工具可以将分区格式化成 XFS、EXT4、FAT 等不同类型的文件系统,而 Swap 交换分区是使用 mkswap 命令来进行格式化的。
swap分区也就是我们说的虚拟内存,在我们的物理内存无法满足应用需求的时候,从硬盘上拿一部分空间模拟内存使用,读写的速度比原始内存慢的多。我们在安装centos系统时,一般会自定义分区,swap分区的大小一般是实际内存大小的1.5~2倍。

3.1.1 mkfs命令

mkfs命令
mkfs -t 文件系统类型	分区设备
例子:
mkfs -t ext4 /dev/sdb1

3.2.2 mkswap命令

使用mkswap 命令工具可以在指定的分区上创建交换文件系统,目标分区应先通过 fdisk 工具将 ID 号设为 82。我们以创建/dev/sdb5 为交换分区为例。

mkswap命令
已有分区:
mkswap /dev/sdb5   
cat /proc/meminfo | grep "SwapTotal:"    //查看总交换空间的大小
新增分区:
swapon /dev/sdb5	//启用交换分区/dev/sdb5 
swapoff /dev/sdb5	//启用交换分区/dev/sdb5 

3.2 挂载、卸载文件系统

对于操作系统内核来说,所有的设备既是文件,对于用户来说我们就需要增加一个挂载的过程才能像正常访问目录一样访问存储设备中的资源。
在安装 Linux 操作系统的过程中,建立的分区通常会由操作系统自动完成挂载, 如“/”分区、“/boot”分区等。然而对于后来增加的硬盘分区、光盘等设备,需要管理员手动进行挂载,实际上用户访问的是经过格式化后建立的文件系统。挂载一个文件系统时, 必须为其指定一个目录作为挂靠点(或称为挂载点),用户通过这个目录访问设备中的文件、目录数据。

3.2.1 挂载文件系统

mount [ -t 文件系统类型  ]	存储设备 挂载点   //文件系统类型由
                                              系统默认识别
mount 存储设备 挂载点
例如:
mount /dev/cdrom /media/cdrom  //将光盘设备挂载到/media/cdrom目录
                                 这里的“/dev/cdrom”,其实这是一个
                                 链接文件,链接到实际的光盘设备
                                 “/dev/sr0”
mount    //显示当前系统中已挂载的各个分区(文件系统)的相关信息   
mount [ -o 挂载参数 ]	存储设备 挂载点  //用来描述设备或文件系统
                                         的挂载方式
mount -o loop CentOS-7-x86_64-DVD-1611.iso /media/mnt   //将下载
的CentoOS7系统的DVD光盘镜像文件“CentOS-7-x86_64-DVD-1611.iso”挂载到
/media/mnt 目录下。                          

3.2.2 2 卸载文件系统

需要卸载文件系统时使用的命令为 umount,使用挂载点目录或对应设备的文件名作为卸载参数。

卸载命令
umount /mailbox	     //通过挂载点目录卸载对应的分区
umount /dev/cdrom    //通过设备文件卸载光盘
要是卸载的目录有进程在运行,就会有卸载不了的情况出现,我们有两种方法
第一种
fusermount -uz /opt  //强制卸载
第二种:找到对应的进程,结束进程再卸载
fuser -m /dev/sdc5   //找到进程号
Kill -9 进程号   //结束进程
再使用umount卸载

猜你喜欢

转载自blog.csdn.net/kimowinter/article/details/106892569