Linux磁盘管理_文件系统

系列文章目录

` 提示:仅用于个人学习,进行查漏补缺使用。
1.Linux介绍、目录结构、文件基本属性、Shell
2.Linux常用命令
3.Linux文件管理
4.Linux 命令安装(rpm、install)
5.Linux账号管理
6.Linux文件/目录权限管理


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

本章大概内容有:

        磁盘基础、磁盘分区结构、MBR与磁盘分区标识、fdish命令、创建文件系统与挂载、卸载文件系统、创建交换文件系统、文件系统类型等

提示:以下是本篇文章正文内容,下面案例可供参考

一.磁盘基础

1.物理结构

  1. 盘片(Platters): 磁盘通常由多个平滑的金属盘片组成,这些盘片围绕一个中心轴高速旋转。每个盘片的一面被涂上一层磁性材料。
  2. 磁头(Heads): 磁头安装在一个磁头臂上,它可以在盘片的磁道上移动,以便在磁性介质上写入或读取数据。现代磁盘使用密封磁头,磁头臂在盘片上方非常小的距离内移动,以减少磨损。
  3. 电机(Motor): 马达驱动盘片旋转,同时磁头在磁头臂的引导下移动。
  4. 控制电路(Controller): 控制电路负责管理磁头的移动和数据的传输。

2.工作原理

  1. 寻道(Seek): 当系统需要访问磁盘上的数据时,控制电路发送信号给马达,使磁头移动到包含所需数据的磁道。
  2. 定位(Rotational Latency): 盘片旋转使磁头移动到正确的磁道后,还需要等待数据所在的扇区旋转到磁头下方。
  3. 读写(Read/Write): 当磁头在正确的位置时,它可以通过改变或检测磁性介质的磁化状态来读取或写入数据。
  4. 同步(Synchronization): 为了提高数据传输的效率,磁头在移动到下一个扇区之前会等待一个预定的时间,确保读取或写入操作完成。
  5. 缓存(Cache): 大多数硬盘都有一个小的内存缓存,用于临时存储最近访问的数据。这样,当系统再次请求相同的数据时,可以直接从缓存中获取,而不是从磁盘上读取。

3.磁盘接口类型:

  1. IDE(Integrated Drive Electronics)
  • 也称为ATA(Advanced Technology Attachment),IDE是一种并行接口,速度较慢,已经被SATA取代。
  1. ATA
  • ATA接口是IDE的扩展,提供了更高的传输速度。包括ATA/100、ATA/133等标准。
  1. SATA(Serial ATA)
  • SATA是一种串行接口,提供了更高的数据传输速度(最高可达6Gbps),同时减少了电缆的复杂性和长度。SATA接口是当前最常见的硬盘接口类型。
  1. SAS(Serial Attached SCSI)
  • SAS是一种高速串行接口,用于连接存储设备,如硬盘驱动器和磁带驱动器。它提供了高带宽和多任务处理能力,适用于企业级应用。
  1. SCSI(Small Computer System Interface)
  • SCSI是一种并行接口,用于连接多种存储设备。它提供高速数据传输和多任务处理能力,但比SAS和SATA更复杂,已经被SAS取代。
  1. M.2
  • M.2是一种新的接口标准,主要用于固态硬盘(SSD)的安装。它提供了更高的数据传输速度和更好的热管理,适用于超极本和小型化设备。
  1. NVMe(Non-Volatile Memory Express)
  • NVMe是一个用于连接NVMe SSD的接口标准,它是一种基于PCI Express的接口,提供了远高于SATA的传输速度,适用于高性能计算和存储解决方案。
  1. PCIe(Peripheral Component Interconnect Express)
  • PCIe是一种高速串行总线标准,也被用于连接NVMe SSD,提供了极高的数据传输速度。

**_PS: _**随着技术的进步,新的接口标准不断出现,以提供更快的数据传输速度和更好的兼容性。例如,SATA Express(SATAe)和NVMe over PCIe等接口都是基于现有技术的新标准,旨在提高SSD的性能和可靠性。

二.磁盘分区结构

  • 磁盘分区类型
    • 主分区(Primary Partitions):可以创建最多四个主分区。每个主分区都可以被格式化并安装文件系统。
    • **扩展分区(Extended Partitions):**如果需要超过四个主分区,可以创建一个扩展分区。扩展分区本身不存放数据,而是用来创建更多的逻辑分区。
    • **逻辑分区(Logical Partitions):**在扩展分区内部可以创建多个逻辑分区。逻辑分区就像主分区一样,可以被格式化并安装文件系统。
  • 磁盘分区布局
    • MBR(Master Boot Record):传统的分区方式,使用一个64字节的分区表来记录分区信息,最大支持2TB的磁盘大小。
    • **GPT(GUID Partition Table):**较新的分区方式,使用128字节的GUID分区表来记录分区信息,最大支持18EB的磁盘大小。GPT分区方式支持更多的主分区(最多128个)。
  • 分区命名
    • Linux系统中,磁盘分区以/dev/开头,后跟磁盘接口类型、磁盘编号和分区编号。
    • 例如,第一个SATA接口的第一个硬盘上的第一个主分区可能是/dev/sda1,第二个逻辑分区可能是/dev/sda2
  • 文件系统
    • 磁盘分区必须格式化为某种文件系统才能存储数据。
    • 常见的Linux文件系统包括ext2、ext3、ext4、XFS、ReiserFS、Swap等。每个文件系统都有其特点和最佳用途。
      • XFS【Xtremely Flexible Filesystem】,日志型文件系统,适用于大数据和需要高性能的场景
      • Swap 【交换空间】,一种特殊的磁盘空间,用于在物理内存不足时提供额外的虚拟内存
  • 挂载点
    • 文件系统通常需要挂载到某个目录才能被系统访问。
    • 例如,根文件系统通常挂载到/目录,家目录文件系统可能挂载到/home目录。
  • 磁盘分区工具
    • 常用的磁盘分区工具包括fdiskparted和图形界面的GParted

三.MBR与磁盘分区表示

1.概述
  • MBR(Master Boot Record,主引导记录)是磁盘上的一个特殊扇区,它包含了启动加载程序、分区表和硬盘签名。分区表位于MBR的末尾,它定义了硬盘上的分区布局。分区表共占64字节,每个分区在分区表中占用16字节,因此MBR最多可以定义四个主分区,或者三个主分区和一个扩展分区。扩展分区可以用来创建更多的逻辑分区。
2.MBR分区表结构
  • MBR分区表定义了分区从哪个柱面开始,到哪个柱面结束。它使用柱面、头和扇区的组合来表示分区的位置。每个分区的起始和结束位置各占4字节。

3.磁盘分区的Linux表示

  1. IDE硬盘:
    • 第一块IDE硬盘:/dev/hda
    • 第一块IDE硬盘的第一个主分区:/dev/hda1
    • 第一块IDE硬盘的第二个主分区:/dev/hda2
    • 第一块IDE硬盘的扩展分区:/dev/hda3
    • 第一块IDE硬盘的第一个逻辑分区(在扩展分区内):/dev/hda5
  2. SATA硬盘:
    • 第一块SATA硬盘:/dev/sda
    • 第一块SATA硬盘的第一个主分区:/dev/sda1
    • 第一块SATA硬盘的第二个主分区:/dev/sda2
    • 第一块SATA硬盘的扩展分区:/dev/sda3
    • 第一块SATA硬盘的第一个逻辑分区(在扩展分区内):/dev/sda5
  3. SCSI硬盘:
    • 第一块SCSI硬盘:/dev/sdb
    • 第一块SCSI硬盘的第一个主分区:/dev/sdb1
    • 以此类推。
  4. 其他接口:
    • 对于USB硬盘或其他接口的硬盘,表示方法通常与SATA硬盘相似,例如/dev/sdc/dev/sdd等。

5.分区命名规则

  • /dev/: 表示设备文件所在的目录。
  • hdsd: 表示硬盘类型,其中hd代表IDE硬盘,sd代表SATA、SCSI等硬盘。
  • 字母:表示硬盘的物理位置,从a开始,然后是bc等。
  • 数字:表示分区号,从1开始,分区号通常与分区在硬盘上的物理位置无关。
    • 例如,第一块SATA硬盘的第一个主分区表示为/dev/sda1,第四个主分区表示为/dev/sda4

6.扩展分区与逻辑分区
在MBR分区表中,扩展分区和逻辑分区的表示与主分区相同,但是它们是在扩展分区内创建的子分区。例如,如果/dev/sda3是扩展分区,那么在其内部创建的第一个逻辑分区可能是/dev/sda5
了解MBR分区表和Linux中的磁盘分区表示对于管理磁盘和文件系统至关重要。随着技术的发展,分区表示方法也在不断演变,例如_使用UUID或路径_来标识分区,这些方法提供了更稳定的设备标识。

四.检测并确认新硬盘——fdisk命令

  • 概述
    • fdisk是Linux系统中的一个磁盘分区工具,用于创建、删除、查看和管理磁盘分区。
    • fdisk可以对MBR(Master Boot Record)分区和GPT(GUID Partition Table)分区的硬盘进行操作。
  • 基本用法
fdisk /dev/sdb										##对/dev目录下的sdb设备进行分区
  • 选项:
    • p:打印分区表。
    • n:添加一个新的分区。
    • d:删除一个分区。
    • t:更改分区类型(只适用于MBR分区)。
    • w:写入分区表并退出fdisk
    • q:退出fdisk而不写入任何更改。
    • l:列出所有合法的分区类型。
    • m:显示fdisk的帮助菜单。



五.创建文件系统与挂载、卸载文件系统

  • 需求: 1.添加一块盘 2.划分分区-以主分区为主 3.使用xfs文件系统格式化和定义设备文件 4.创建/abc目录,将新建分区挂载到/abc上

以下是完成这些步骤的详细指导:

步骤 1: 添加一块硬盘

     1. 首先,确保系统识别了新添加的硬盘。【添加后一定要按确定】

image.png
通在终端中输入lsblkfdisk -l命令来查看所有已识别的磁盘。

lsblk

fdisk -l

步骤 2: 划分分区

使用fdisk工具来对硬盘进行分区,例如:

fdisk /dev/sdb

在fdisk命令行界面中,创建主分区:

n # 添加新分区
p # 选择主分区
1 # 第一个主分区

按照提示完成分区的创建,并保存和退出。
image.png
**PS:**这里分区大小可设置如:+20G(指定大小为20GB,如按Enter键表示默认所有空间)

步骤 3: 格式化文件系统

使用mkfs命令来格式化分区。以下是一个使用XFS文件系统的例子:

mkfs.xfs -f /dev/sdb1

确保替换/dev/sdb1为您刚刚创建的主分区的设备文件名。

步骤 4: 挂载分区

创建挂载点:

mkdir /abc

将分区挂载到/abc目录:

mount /dev/sdb1 /abc

通过运行df -h命令来确认分区是否已成功挂载。

df -h

步骤 5: 设置开机自动/永久挂载

在系统启动时自动挂载分区,可以编辑/etc/fstab文件。找到已经挂载的分区,并添加以下行:

/dev/sdb1 /abc xfs defaults 0 0

确保替换/dev/sdb1为您的主分区设备文件名,并替换/abcf创建的挂载点目录名。
现在,硬盘已经添加、分区、格式化并挂载到指定的目录上了。

六.创建交换文件系统

1.概述

  • 在Linux操作系统中,交换空间(swap space)是一种特殊类型的文件系统,用于虚拟内存的管理。
  • 当系统的物理内存(RAM)不足时,Linux内核可以使用交换空间来扩展可用内存。
  • 交换空间通常在硬盘上创建,虽然也可以在网络硬盘或其他可用的存储设备上创建,但通常**不推荐**这样做,因为速度较慢。

2.基本步骤

  1. 确定交换空间的大小

    • 交换空间的大小可以根据需要分配,但是建议的大小至少应该是系统物理内存的两倍。
    • 例如,如果系统有2GB的物理内存,建议至少创建4GB的交换空间。
  2. 创建交换分区 使用fdisk等工具在硬盘上创建一个交换分区。

fdisk /dev/sdb
  - 在`fdisk`交互界面中,使用`n`添加一个新的分区,然后选择`p`作为分区类型,表示交换分区。
  - 设置交换分区的起始和结束位置,然后用`w`保存退出。 
  1. 激活交换分区:
    创建交换分区的文件系统格式,并使用mkswap命令激活它:
mkswap /dev/sdb1

其中/dev/sdb1是刚创建的交换分区的设备文件。
4. **编辑/etc/fstab文件: **
为了在系统启动时自动挂载交换分区,需要编辑/etc/fstab文件,添加如下行:

/dev/sdb1 swap swap defaults 0 0

这行表示在启动时自动挂载/dev/sdb1作为交换空间。
**5. 重启系统: **
重启系统以使交换空间的设置生效。 (_PS:_init 6 或reboot重启 init2 关闭)
**6. 检查交换空间: **
重启后,可以使用swapon -s命令检查系统当前的交换空间设置,确认它已经被激活。

3.提炼补充:

创建swap之前,目标分区应通过fdisk工具将分区类型ID 号设为82

  • fdisk /dev/sdb

–>t
–>82
mkswap /dev/sdb5
swapon /dev/sdb5 #启用新增加的交换分区
swapoff /dev/sdb5 #停用指定的交换分区
swapon -s #查看每个分区的swap状态信息
free -m #查看总的swap状态信息

  • 首先,swap交换分区的设置需要先建立一个分区,然后使用fdisk /dev/sdb 进入后对已有的分区进行 修改类型-》通过修改ID的方式进行设置,例如swap-ID 82,修改完成后,w保存退出。
  • 通常来说,下一步需要进行文件系统格式化和创建,但因为当前类型是SWAP类型,所以需要创建的类型,不是文件系统,而是SWAP类型

七.文件系统类型

  • XFS文件系统
    • 存放文件和目录数据的分区
    • 高性能的日志型文件系统,特别擅长于处理大文件,可支持上百万TB的存储空间
    • CentOS 7系统中默认使用的文件系统
  • SWAP,交换文件系统
    • 为Linux系统建立交换分区
    • 一般设置为物理内存的1.5~2倍
  • Linux支持的其他文件系统类型
    • EXT4、FAT32、NTFS、LVM

八.补充

1.df【disk free】命令

  • 概述
    • Linux和Unix系统中用来显示文件系统的磁盘空间使用情况的工具。
    • 通常情况下,它并不显示所有磁盘的空间使用情况,而是**重点**关注挂载的文件系统。
  • 基本语法
df [选项] [目录或文件系统]
  • 选项
    • -ah:以人类可读的格式(例如KB、MB、GB)显示文件系统大小,并显示所有的文件系统。
    • -h:与-ah相似,但是不包括隐藏的文件系统,例如/proc/sys
    • -i:显示inode使用情况,而不是磁盘空间。
    • -k:以KB为单位显示大小。
    • -m:以MB为单位显示大小。
    • -t:显示文件系统的类型。
    • -x:排除某些文件系统类型。
    • -H:与-h选项类似,但是使用1024字节为1KB(适用于TB、GB等更大的单位)。
    • -T:显示文件系统的类型。
    • -L:只列出与指定模式匹配的文件系统。
    • -l:只显示本地文件系统。
    • -P:以POSIX的格式输出,每行显示一个文件系统。
    • -X:排除某些文件系统类型。
    • -i:显示inode的使用情况。
    • -N:显示NFS文件系统统计信息。
    • -S:显示SSFS文件系统统计信息(例如,网络附加存储)。
    • -F:指定文件系统类型,以获取特定类型的文件系统信息。
    • -B:以指定的大小为单位显示块和大小信息。
  • 示例:
# 显示所有文件系统的磁盘空间使用情况,并以人类可读的格式显示
df -ah

# 显示所有本地文件系统的磁盘空间使用情况,并以MB为单位显示大小
df -lhm

# 显示除隐藏文件系统之外的所有文件系统的磁盘空间使用情况
df -h

2. free -m 命令

作用:
     - 显示内存和swap交换空间使用情况的工具
     - 查询内存与swap交换分区的使用率命令
free -m命令的输出通常包含以下列:
     - `total`:总的物理内存大小。
     - `used`:已使用的物理内存大小。
     - `free`:未使用的物理内存大小。
     - `shared`:多个进程共享的内存大小。
     - `buffers`:内核缓冲区大小。
     - `cached`:用于缓存文件的内存大小。
     - `available`:可用内存大小(实际可用给进程的内存)。
     - `Swap`:交换空间的大小。
     - `used`:已使用的交换空间大小。
     - `free`:未使用的交换空间大小。
使用场景:
     - 进行故障排除
     - 检查是否有足够的可用内存。
     - 确定是否存在内存泄漏或过度使用缓存。
     - 监控内存使用情况,以便进行性能调优。
     - 帮助用户和管理员监控系统的内存使用情况,以及进行内存相关的问题诊断和调优

3.iostat命令

  - 一个监控工具,用于报告系统的CPU使用情况和磁盘I/O统计信息。
  - 帮助系统管理员和用户了解系统的I/O子系统性能,诊断I/O瓶颈并优化系统性能。
  • 15
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值