重生之我要当云原生大师(十一)访问Linux文件系统

news/2025/2/9 7:41:22 标签: 云原生

目录

一、解释下文件系统、块设备、挂载点、逻辑卷。

二、简述文件系统、块设备、挂载点、逻辑卷之间的关系?

三、如何检查文件系统?

四、挂载和卸载文件系统的流程?

五、find命令都可以根据什么查找文件。


一、解释下文件系统、块设备、挂载点、逻辑卷。

1. 文件系统(File System)

在 RHEL 中,文件系统是操作系统用于管理文件和目录的机制。RHEL 支持多种文件系统,常见的有:

  • ext4:默认的文件系统,稳定且高效。
  • XFS:适用于大文件和高性能场景,RHEL 7 及以上版本的默认文件系统。
  • Btrfs:支持快照、压缩等高级功能,但尚未成为默认选择。

文件系统负责:

  • 文件和目录的存储与管理。
  • 权限控制(如用户、组、其他用户的读写执行权限)。
  • 元数据管理(如文件大小、创建时间等)。

示例
在 RHEL 中,可以使用以下命令查看文件系统类型:

lsblk -f


2. 块设备(Block Device)

块设备是 RHEL 中用于存储数据的基本单元,通常以固定大小的块(如 4KB)进行读写。常见的块设备包括:

  • 物理硬盘(如 /dev/sda)。
  • 分区(如 /dev/sda1)。
  • 逻辑卷(如 /dev/mapper/vg0-lv0)。

块设备通过设备文件访问,RHEL 中的设备文件通常位于 /dev 目录下

示例
查看系统中的块设备:

lsblk


3. 挂载点(Mount Point)

挂载点是 RHEL 中将文件系统连接到目录树的目录。通过挂载,文件系统的内容可以在挂载点目录下访问。RHEL 中的挂载点通常位于 /mnt 或 /media 目录下,但可以挂载到任何目录

示例
将 /dev/sda1 分区挂载到 /mnt/data:

sudo mount /dev/sda1 /mnt/data

查看已挂载的文件系统:

df -h


4. 逻辑卷(Logical Volume, LV)

逻辑卷是 RHEL 中逻辑卷管理(LVM)的一部分,用于动态管理存储空间。LVM 将物理存储设备(如硬盘或分区)抽象为逻辑卷,提供更灵活的存储管理方式。

LVM 的主要组件:

  • 物理卷(Physical Volume, PV):实际的存储设备(如 /dev/sda1)。
  • 卷组(Volume Group, VG):由一个或多个物理卷组成。
  • 逻辑卷(Logical Volume, LV):从卷组中划分的逻辑存储单元。(后续会详细讲到

优点

  • 动态调整大小(无需重新分区)。
  • 支持快照、镜像等高级功能。
  • 灵活的存储管理。

示例
创建逻辑卷:

  1. 创建物理卷:

sudo pvcreate /dev/sdb1

  1. 创建卷组:

sudo vgcreate vg0 /dev/sdb1

  1. 创建逻辑卷:

sudo lvcreate -n lv0 -L 10G vg0

  1. 格式化并挂载逻辑卷:

sudo mkfs.xfs /dev/vg0/lv0

sudo mount /dev/vg0/lv0 /mnt/data

查看逻辑卷信息:

sudo lvs

二、简述文件系统、块设备、挂载点、逻辑卷之间的关系?
  1. 块设备 是存储数据的物理或虚拟设备(如硬盘、分区或逻辑卷)
  2. 逻辑卷 是从 卷组 中划分的逻辑存储单元,逻辑卷本身也是一种块设备。
  3. 文件系统 创建在 块设备逻辑卷 上,用于管理文件和目录。
  4. 挂载点 是将 文件系统 连接到目录树的目录,用户通过挂载点访问文件系统中的数据。

示例流程

  1. 创建块设备
    • 物理硬盘 /dev/sdb 被分区为 /dev/sdb1。
  2. 创建逻辑卷
    • 将 /dev/sdb1 初始化为物理卷(PV)。
    • 创建卷组 vg0,并将 /dev/sdb1 加入卷组。
    • 从卷组 vg0 中创建逻辑卷 lv0(/dev/vg0/lv0)。
  3. 创建文件系统
    • 在逻辑卷 /dev/vg0/lv0 上创建 XFS 文件系统:

sudo mkfs.xfs /dev/vg0/lv0

  1. 挂载文件系统
    • 将文件系统挂载到 /mnt/data:

sudo mount /dev/vg0/lv0 /mnt/data

  1. 访问数据
    • 用户可以通过 /mnt/data 访问文件系统中的数据。

关系图

块设备(如 /dev/sdb1)

    |

    v

逻辑卷(如 /dev/vg0/lv0)

    |

    v

文件系统(如 XFS)

    |

    v

挂载点(如 /mnt/data)


总结

  • 块设备 提供存储空间。
  • 逻辑卷 在块设备的基础上提供灵活的存储管理。
  • 文件系统 在块设备或逻辑卷上创建,用于管理文件和目录。
  • 挂载点 将文件系统连接到目录树,使用户可以访问数据

三、如何检查文件系统?

  使用df du等命令。

四、挂载和卸载文件系统的流程?

 1. 识别块设备

首先,需要识别系统中可用的块设备(如硬盘、分区或逻辑卷)。

使用 lsblk 查看块设备:

lsblk

输出示例:

  • 这里 sdb 是一个未分区的硬盘,sda3 是一个未挂载的分区。

2. 分区(如果需要)

如果块设备未分区(如 sdb),可以使用 fdisk 或 parted 进行分区。

使用 fdisk 分区:

  1. 启动 fdisk:

sudo fdisk /dev/sdb

  1. 创建新分区:
    • 输入 n 创建新分区。
    • 选择分区类型(主分区 p 或扩展分区 e)。
    • 设置分区大小。
  2. 保存分区表:
    • 输入 w 保存并退出。
  3. 刷新分区表:

sudo partprobe /dev/sdb

  1. 查看分区:

lsblk


3. 格式化文件系统

在分区或逻辑卷上创建文件系统(如 ext4、XFS)。

格式化 ext4 文件系统:

sudo mkfs.ext4 /dev/sdb1

格式化 XFS 文件系统:

sudo mkfs.xfs /dev/sdb1


4. 创建挂载点

挂载点是一个目录,用于访问文件系统的内容。

创建挂载点:

sudo mkdir /mnt/data


5. 挂载文件系统

将文件系统挂载到挂载点。

挂载文件系统:

sudo mount /dev/sdb1 /mnt/data

验证挂载:

使用 df -h 或 lsblk 查看挂载状态:

df -h

或:

lsblk


6. 配置自动挂载(/etc/fstab)

为了在系统启动时自动挂载文件系统,需要编辑 /etc/fstab 文件。

获取文件系统的 UUID:

sudo blkid /dev/sdb1

输出示例:

/dev/sdb1: UUID="1234-5678-90AB-CDEF" TYPE="ext4"

编辑 /etc/fstab:

在 /etc/fstab 中添加一行:

UUID=1234-5678-90AB-CDEF /mnt/data ext4 defaults 0 2

  • 第一列:设备标识(如 UUID 或设备路径)。
  • 第二列:挂载点。
  • 第三列:文件系统类型。
  • 第四列:挂载选项(如 defaults)。
  • 第五列:是否备份(0 表示不备份)。
  • 第六列:是否检查文件系统(0 表示不检查,1 表示根文件系统,2 表示其他文件系统)。

测试 /etc/fstab 配置:

sudo mount -a

重启系统验证:

重启系统后,文件系统会自动挂载。


7. 卸载文件系统

如果需要卸载文件系统,可以使用以下步骤。

卸载文件系统:

sudo umount /mnt/data

验证卸载:

df -h


总结

完整的挂载操作流程如下:

  1. 识别块设备:使用 lsblk 查看块设备。
  2. 分区:使用 fdisk 或 parted 对块设备分区(如果需要)。
  3. 格式化文件系统:使用 mkfs 创建文件系统。
  4. 创建挂载点:创建目录作为挂载点。
  5. 挂载文件系统:使用 mount 挂载文件系统。
  6. 配置自动挂载:编辑 /etc/fstab 实现开机自动挂载。
  7. 卸载文件系统:使用 umount 卸载文件系统。
五、find命令都可以根据什么查找文件。

文件名、文件类型、文件大小、文件权限、文件所有者、文件修改时间、文件内容

同时可以组和条件查找(与、或、非)


http://www.niftyadmin.cn/n/5845776.html

相关文章

国产编辑器EverEdit - 编辑辅助功能介绍

1 编辑辅助功能 1.1 各编辑辅助选项说明 1.1.1 行号 打开该选项时,在编辑器主窗口左侧显示行号,如下图所示: 1.1.2 文档地图 打开该选项时,在编辑器主窗口右侧靠近垂直滚动条的地方显示代码的缩略图,如下图所示&…

IDEA安装离线插件(目前提供了MavenHelper安装包)

目录 1、离线安装方式2、Maven Helper 1、离线安装方式 首先访问 IDEA插件网站 下载离线插件安装包,操作如下: 然后打开IDEA的Settings配置,点击Plugins,点击右侧设置按钮(齿轮),选择Install P…

Ollama 本地部署 体验 deepseek

下载安装ollama,选择模型 进行部署 # 管理员命令行 执行 ollama run deepseek-r1:70b浏览器访问http://ip:11434/ 返回 Ollama is runninghttp://ip:11434/v1/models 返回当前部署的模型数据 下载安装CherryStudio,本地对话UI 客户端 在设置中 修改API地址&#x…

Java基础知识总结(四十八)--TCP传输、TCP客户端、TCP服务端

TCP传输:两个端点的建立连接后会有一个传输数据的通道,这通道称为流,而且是建立在网络基础上的流,称之为socket流。该流中既有读取,也有写入。 tcp的两个端点:一个是客户端,一个是服务端。 客户…

iPhone 在华销量大幅下挫

iPhone在乔布斯时代缔造的神话在中国正逐渐走向没落,挤牙膏式的升级方式类似于诺基亚的N70系列,毫无新意的创新能力,求稳着陆的经营理念,工艺和美学不再独领风骚,甚至拍照领域和AI增强计算,折叠屏等技术领域…

AIOS: 一个大模型驱动的Multi-Agent操作系统设计与Code分析

AIOS: 一个大模型驱动的Multi-Agent操作系统设计与Code分析 随着人工智能技术的快速发展,传统操作系统逐渐暴露出难以适应AI时代多样化需求的局限性。特别是在支持多个智能体协同工作方面存在显著不足。为此,我们提出了一种名为AIOS(Artifici…

##__VA_ARGS__有什么作用

##__VA_ARGS__ 是 C/C 中宏定义(Macro)的一种特殊用法,主要用于可变参数宏(Variadic Macros)的场景,解决当可变参数为空时可能导致的语法错误问题。以下是详细解释: 核心作用 消除空参数时的多余…

C语言:深入了解指针4(超级详细)

看之前必须得掌握有一定指针的知识,不然会看不懂,如果有不懂的可以看我博客 指针1,指针2,指针3 这三个讲了指针全部的基础知识超级详细,这篇只要是讲一些指针练习题也是非常详细 1. sizeof和strlen的对⽐ 1. 基本定义…