【linux学习指南】磁盘分区挂载到目录,形成文件系统挂载点

请添加图片描述

文章目录

  • 📝前言
  • 🌠 查看系统分区
    • 🌉制作一个大的磁盘块,就当做一个分区
    • 🌉格式化写入文件系统
    • 🌉将分区挂载到指定的目录
    • 🌉在分区重创建文件
    • 🌉卸载分区
    • 🌉分区挂载到目录才能使用
  • 🚩总结


📝前言

在这里插入图片描述
Linux ext2文件系统,上图为磁盘文件系统图(内核内存映像肯定有所不同),磁盘是典型的块设备,硬盘分区被
划分为一个个的block。一个block的大小是由格式化的时候确定的,并且不可以更改。例如mke2fs的-b选项可以设
定block大小为1024、2048或4096字节。而上图中启动块(Boot Block)的大小是确定的

  • Block Group:ext2文件系统会根据分区的大小划分为数个Block Group。而每个Block Group都有着相同的结构组成。政府管理各区的例子
  • 超级块(Super Block):存放文件系统本身的结构信息。记录的信息主要有:bolck 和 inode的总量,未使用的block和inode的数量,一个block和inode的大小,最近一次挂载的时间,最近一次写入数据的时间,最近一次检验磁盘的时间等其他文件系统的相关信息。Super Block的信息被破坏,可以说整个文件系统结构就被破坏了
  • GDT,Group Descriptor Table:块组描述符,描述块组属性信息,有兴趣的同学可以在了解一下
  • 块位图(Block Bitmap):Block Bitmap中记录着Data Block中哪个数据块已经被占用,哪个数据块没有被占用
  • inode位图(inode Bitmap):每个bit表示一个inode是否空闲可用。
  • i节点表:存放文件属性 如 文件大小,所有者,最近修改时间等
  • 数据区:存放文件内容
    在这里插入图片描述

🌠 查看系统分区

[wks@hcss-ecs-ab43 file_patition_lesson]$ ls /dev/vda*
/dev/vda  /dev/vda1
[wks@hcss-ecs-ab43 file_patition_lesson]$ 

这是一种常见的磁盘分区布局。通常情况下:

  • /dev/vda 代表整块磁盘设备
  • /dev/vda1/dev/vda2 等代表这个磁盘设备上划分的不同分区

我这里只有一个/dev/vda1分区,以下查看文件系统的磁盘使用情况:

[wks@hcss-ecs-ab43 file_patition_lesson]$ df -h
df:/tmp/.mount_nvimxPjzYC’: Transport endpoint is not connected
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        909M     0  909M   0% /dev
tmpfs           919M   12K  919M   1% /dev/shm
tmpfs           919M   98M  822M  11% /run
tmpfs           919M     0  919M   0% /sys/fs/cgroup
/dev/vda1        40G  8.0G   30G  22% /
tmpfs           184M     0  184M   0% /run/user/1003
tmpfs           184M     0  184M   0% /run/user/0
[wks@hcss-ecs-ab43 file_patition_lesson]$ 
  1. df -h命令:

    • df是"disk free"的缩写,用于查看文件系统的磁盘使用情况。
    • -h是"human-readable"的缩写,表示以更容易理解的格式(如KB、MB、GB)显示磁盘大小。
  2. 输出结果各个字段的含义:

    • Filesystem: 表示文件系统所在的磁盘分区或设备。
    • Size: 文件系统的总容量。
    • Used: 已使用的容量。
    • Avail: 可用的剩余容量。
    • Use%: 已使用容量的百分比。
    • Mounted on: 文件系统挂载的目录
  3. /dev/vda1 40G 8.0G 30G 22% /这一行:

    • /dev/vda1 表示这是一个名为 vda1 的磁盘分区。
    • 这个分区的总容量为 40GB,已使用 8GB,剩余可用空间 30GB,使用率为 22%。
    • 这个分区被挂载到根目录 / 下。

🌉制作一个大的磁盘块,就当做一个分区

dd 命令是 Linux 和 Unix 系统中非常强大和重要的命令之一。它主要用于以下几个方面:
数据转换和复制:

  • 可以从一个文件或设备读取数据,并将其写入到另一个文件或设备中。
  • 支持各种数据块大小和转换选项,可以实现如镜像备份、磁盘克隆等功能。

dd 命令的语法格式如下:

dd [选项]... [if=文件] [of=文件] [bs=bytes] [count=blocks] [seek=blocks]

其中最常用的几个选项包括:

  • if=: 指定输入文件
  • of=: 指定输出文件
  • bs=: 指定读写的块大小
  • count=: 指定读写的块数
  • conv=: 指定数据转换选项

首先创建目录。制作一个大的磁盘区就当做一个分区。这里使用dd命令。

[wks@hcss-ecs-ab43 file_patition_lesson]$ mkdir disk.iso
[wks@hcss-ecs-ab43 file_patition_lesson]$ dd if=/dev/zero of=./disk.iso bs=1M count=5
5+0 records in
5+0 records out
5242880 bytes (5.2 MB) copied, 0.00503848 s, 1.0 GB/s
[wks@hcss-ecs-ab43 file_patition_lesson]$ 

这段命令输出是在 Linux 系统上使用 dd 命令创建一个 5MB 大小的磁盘镜像文件 disk.iso
dd if=/dev/zero of=./disk.iso bs=1M count=5

  • if=/dev/zero: 指定从 /dev/zero 设备读取输入数据。这个设备会产生无限量的 0 值字节。
  • of=./disk.iso: 指定将输出写入到当前目录下的 disk.iso 文件。
  • bs=1M: 指定每次读写的块大小为 1MB。
  • count=5: 指定读写 5 个块,也就是 5MB 的数据。

🌉格式化写入文件系统

mkfs.ext4 命令用于在磁盘分区或文件上创建 ext4 文件系统。

这个命令的作用如下:

  1. 格式化 disk.iso 文件,将其转换为一个可挂载的 ext4 文件系统。
  2. 在文件系统中写入必要的元数据,如超级块、inode 表、块描述符等。
  3. 初始化文件系统的目录结构,如根目录 / 等。

运行这个命令后,disk.iso 文件就变成了一个可用的 ext4 格式的磁盘镜像文件。你可以将其挂载到系统上,就像挂载一个物理磁盘分区一样使用它。

需要注意的是,在运行 mkfs.ext4 之前,请确保 disk.iso 文件已经创建完成,否则可能会出现错误。另外,如果需要使用其他文件系统类型,可以将 ext4 替换为 ext3xfsbtrfs 等其他文件系统类型。

[wks@hcss-ecs-ab43 file_patition_lesson]$ mkfs.ext4 disk.iso  #格式化写入文件系统
mke2fs 1.42.9 (28-Dec-2013)
disk.iso is not a block special device.
Proceed anyway? (y,n) y//这里y确认

创建空目录

[wks@hcss-ecs-ab43 file_patition_lesson]$ sudo mkdir /mnt/mydisk
[sudo] password for wks: 
[wks@hcss-ecs-ab43 file_patition_lesson]$ ll
total 1152
-rw-rw-r-- 1 wks wks 5242880 Nov  8 20:49 disk.iso

查看可以使用的分区

[wks@hcss-ecs-ab43 file_patition_lesson]$ df -h
df: ‘/tmp/.mount_nvimxPjzYC’: Transport endpoint is not connected
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        909M     0  909M   0% /dev
tmpfs           919M   12K  919M   1% /dev/shm
tmpfs           919M   98M  822M  11% /run
tmpfs           919M     0  919M   0% /sys/fs/cgroup
/dev/vda1        40G  8.0G   30G  22% /
tmpfs           184M     0  184M   0% /run/user/1003
tmpfs           184M     0  184M   0% /run/user/0
[wks@hcss-ecs-ab43 file_patition_lesson]$ 

🌉将分区挂载到指定的目录

disk.iso 文件挂载到 /mnt/mydisk/ 目录下

[wks@hcss-ecs-ab43 file_patition_lesson]$ sudo mount -t ext4 ./disk.iso /mnt/mydisk/
[wks@hcss-ecs-ab43 file_patition_lesson]$ df -h
df:/tmp/.mount_nvimxPjzYC’: Transport endpoint is not connected
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        909M     0  909M   0% /dev
tmpfs           919M   12K  919M   1% /dev/shm
tmpfs           919M   98M  822M  11% /run
tmpfs           919M     0  919M   0% /sys/fs/cgroup
/dev/vda1        40G  8.0G   30G  22% /
tmpfs           184M     0  184M   0% /run/user/1003
tmpfs           184M     0  184M   0% /run/user/0
/dev/loop0      3.9M   53K  3.5M   2% /mnt/mydisk
[wks@hcss-ecs-ab43 file_patition_lesson]$ 
  1. sudo: 使用 root 权限执行此命令,因为挂载文件系统通常需要管理员权限。

  2. mount -t ext4: 指定要挂载的文件系统类型为 ext4。这需要与之前使用 mkfs.ext4 命令创建的文件系统类型一致。

  3. ./disk.iso: 要挂载的磁盘镜像文件的路径。在这里使用了相对路径,表示当前目录下的 disk.iso 文件。

  4. /mnt/mydisk/: 挂载点的目录。这是一个空目录,用于挂载 disk.iso 文件系统。如果该目录不存在,需要先创建它。

执行这个命令后,Linux 系统会将 disk.iso 文件作为一个 ext4 文件系统挂载到 /mnt/mydisk/ 目录下。此时,你就可以像访问普通文件系统一样访问和操作 disk.iso 中的文件和目录了。

接下来我们就可以进去这个分区,路径也就是分区的开头

[wks@hcss-ecs-ab43 file_patition_lesson]$ ll
total 1152
-rw-rw-r-- 1 wks wks 5242880 Nov  8 21:00 disk.iso
[wks@hcss-ecs-ab43 file_patition_lesson]$ cd /mnt/mydisk
[wks@hcss-ecs-ab43 mydisk]$ pwd
/mnt/mydisk

🌉在分区重创建文件

分区中创建文件

[wks@hcss-ecs-ab43 mydisk]$ sudo touch test.txt
[sudo] password for wks:
[wks@hcss-ecs-ab43 mydisk]$ ls -al
total 17
drwxr-xr-x  3 root root  1024 Nov  8 21:07 .
drwxr-xr-x. 4 root root  4096 Nov  8 20:56 ..
drwx------  2 root root 12288 Nov  8 20:49 lost+found
-rw-r--r--  1 root root     0 Nov  8 21:07 test.txt
[wks@hcss-ecs-ab43 mydisk]$ 

🌉卸载分区

当使用umount 卸载分区,会提示系统繁忙,这是因为,你还在这个分区内,只要退出这个分区,就可以进行删除。

[wks@hcss-ecs-ab43 mydisk]$ sudo umount /mnt/mydisk
umount: /mnt/mydisk: target is busy.(In some cases useful info about processes that usethe device is found by lsof(8) or fuser(1))
[wks@hcss-ecs-ab43 mydisk]$ df -h
df:/tmp/.mount_nvimxPjzYC’: Transport endpoint is not connected
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        909M     0  909M   0% /dev
tmpfs           919M   12K  919M   1% /dev/shm
tmpfs           919M   98M  822M  11% /run
tmpfs           919M     0  919M   0% /sys/fs/cgroup
/dev/vda1        40G  8.0G   30G  22% /
tmpfs           184M     0  184M   0% /run/user/1003
tmpfs           184M     0  184M   0% /run/user/0
/dev/loop0      3.9M   53K  3.5M   2% /mnt/mydisk
[wks@hcss-ecs-ab43 mydisk]$

切换到别的目录,或者分区,就可以卸载分区,但是回到根目录,想再进行卸载根目录分区,无法做到,因为你切换不到别的分区了
卸载成功:
在这里插入图片描述

🌉分区挂载到目录才能使用

**问题:
你怎么确认你在哪一个分区里面?? ?
多个分区->一个分区包含/->若干个普通目录->/a /b /c /d->
分区无法直接使用,分区必须经过“挂载”到目录上,分区才可以被用通过路径的方式进行访问!
**

当分区只有挂到目录上才能使用,那么任何一个分区,天然有了基本的路径

/dev/loop0      3.9M   53K  3.5M   2% /mnt/mydisk

当我们进去到一个分区挂载到一个目录上时,

cd mnt/XXX

此时,在分区里进行操作分区,创建目录之类的操作,因此一个文件的路径是
由分区+ 自己的操作路径,这就知道pwd是怎么获取到路径是这样来的

mkdir /mnt/XXX/whb/dircd /
cd mnt/XXX/whb/dir

怎么确认我们在哪个分区下呢?

/mnt/mydisk/XXXX/XXXX

当我们的路径从根目录进行解析时,首先解析到/mnt/mydisk/分区就清楚了。


🚩总结

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/8523.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

STM32CUBEIDE FreeRTOS操作教程(八):queues多队列

STM32CUBEIDE FreeRTOS操作教程(八):queues多队列 STM32CUBE开发环境集成了STM32 HAL库进行FreeRTOS配置和开发的组件,不需要用户自己进行FreeRTOS的移植。这里介绍最简化的用户操作类应用教程。以STM32F401RCT6开发板为例&#…

redis 原理篇 25 网络模型 信号驱动IO 及 异步IO

剩下这两种,用得少,快速过一下, 说啥队列太小,这个不是问题,搞个持久化, 说啥队列元素太频繁导致开销大,这个也没问题,搞成批量入队,减少频率,增大吞吐量&am…

某事业单位转型公益二类后岗位梳理项目纪实

某事业单位转型公益二类后岗位梳理项目纪实 ——公益一类事业单位转型二类后,如何优化岗位配置,梳理岗位职责 【客户行业】事业单位 【问题类型】岗位梳理 【客户背景】 某地公证机构于20世纪90年代经批准设立,是该市司法局直属国家公证…

DNS域名解析服务器--RHCE

1.DNS简介 DNS ( Domain Name System )是互联网上的一项服务,它作为将域名和 IP 地址相互映射的一个分布式 数据库,能够使人更方便的访问互联网 DNS 系统使用的是网络的查询,那么自然需要有监听的 port 。 DNS 使用的是…

Linux案例:DNS服务器配置

Linux案例:DNS服务器配置 实验一:正向解析 服务端配置: [rootserver ~]# setenforce 0 [rootserver ~]# nmcli c modify ens160 ipv4.method manual ipv4.addresses 192.168.70.131/24 ipv4.gateway 192.168.70.2 ipv4.dns 114.114.114.11…

京东创作平台旋转验证码识别

昨天京东创作平台验证码又更新了,变成了这种旋转验证码。经过我们一天的努力,终于完成了这款验证码的数据标记,模型训练。现在正确率达到了几乎100%。 识别代码 只需要获取图片链接,下载图片得到原图,使用下面代码就可…

Spring DispatcherServlet详解

文章目录 Spring DispatcherServlet详解一、引言二、DispatcherServlet的初始化与工作流程1、DispatcherServlet的初始化1.1、加载配置和建立WebApplicationContext1.2、初始化策略 2、DispatcherServlet的工作流程2.1、请求分发2.2、代码示例 三、总结 Spring DispatcherServl…

Ubuntu 安装CUDA, cuDNN, TensorRT(草稿)

文章目录 写在前面一、CUDA, cuDNN, TensorRT 三个库的版本的确定二、解决方法参考链接 写在前面 自己的测试环境: Ubuntu20.04, 本文安装的版本: cuda_11.1.0;cuDNN-8.2.1;TensorRT-8.2.4.2 一、CUDA, cuDNN, TensorRT 三个库…

[GDKOI2024 普及组] 读书(线段树)

luogu 传送门https://www.luogu.com.cn/problem/P10077 解题思路 我们可以贪心地思考:每次寻找最小值,然后去阅读这一章。 直到阅读的章数达到 。 这样,你就可以写出一个 的暴力,拿 40 分。 但是,如果你并不满足于…

TCP/IP基础

TCP/IP的概念 TCP/IP是一个协议簇,包括多个协议 定义了计算机操作系统如何连入因特网,以及数据如何在他们之间传输的标准。 TCP/IP的分层结构 TCP/IP按照层次可以分成四层,应用层、传输层、网络层和数据链路层 应用层 包括虚拟终端协议…

数据迁移: 安全高效转移数据, 满足企业业务需求和技术改进

天津鸿萌科贸发展有限公司从事数据安全服务二十余年,致力于为各领域客户提供专业的数据存储、数据恢复、数据备份、数据迁移等解决方案与服务,并针对企业面临的数据安全风险,提供专业的相关数据安全培训。 鸿萌数据迁移业务为众多企业顺利高效…

可视化建模与UML《类图实验报告》

史铁生: 余华和莫言扛着我上火车, 推着走打雪仗, 还带我偷西瓜, 被人发现后他们拔腿就跑, 却忘了我还在西瓜地里。 一、实验目的: 1、熟悉类图的构件事物。 2、熟悉类之间的泛化、依赖、聚合和组合关系…

Zypher Network:全栈式 Web3 游戏引擎,服务器抽象叙事的引领者

近期,《黑神话:悟空》的爆火不仅让 AAA 游戏重回焦点,也引发了玩家与开发者的热议。Web2 游戏的持续成功导致部分 Web3 玩家们的倒戈,对比之下 Web3 游戏存在生命周期短且商业模式难以明确的问题,尤其在当前加密市场环…

C++11的简介

杀马特主页&#xff1a;羑悻的小杀马特.-CSDN博客 ------ ->欢迎阅读 欢迎阅读 欢迎阅读 欢迎阅读 <------- 目录 一列表初始化的变化&#xff1a; 二左右值即各自引用的概念&#xff1a; 2.1左右…

Java 上机实践3(分支与循环语句)

&#xff08;大家好&#xff0c;今天分享的是Java的相关知识&#xff0c;大家可以在评论区进行互动答疑哦~加油&#xff01;&#x1f495;&#xff09; 目录 实验一&#xff1a;回文数 一、实验目的 二、实验要求 三、程序代码 四、实验结果 实验二&#xff1a;猜数字…

[MRCTF2020]PYWebsite1

如果输入的密钥是对的那么我们就直接跳转到flag.php页面 那么我们直接访问&#x1f60e;&#xff0c;他不带我们去我们自己去. 那就用XFF呗. 知识点&#xff1a; 定义&#xff1a;X-Forwarded-For是一个HTTP请求头字段&#xff0c;用于识别通过HTTP代理或负载均衡方式连接到W…

实时离线融合计算的数据同步实践

实时批量融合计算时&#xff0c;一般需要批量将数据推送到hbase供实时使用。 本文将通过两个典型场景--累计场景与最新分区场景&#xff0c;讨论批量和实时衔接的设计方案&#xff0c;解决批量延迟可能导致的问题。 累计场景 在之前的文章中讲述了实时离线结合共同计算客户1…

怎么做自己公司的小程序

我是【码云数智】平台的黄导&#xff0c;今天分享&#xff1a;怎么做自己公司的小程序 企业小程序怎么制作&#xff0c;利用可视化小程序模板搭建&#xff0c;企业能够轻松跨越技术门槛&#xff0c;快速响应市场变化。 01、小程序制作流程 02、微信小程序开发多少钱 03、微…

外包干了5年,技术退步太明显了。。。。。

先说一下自己的情况&#xff0c;本科生生&#xff0c;19年通过校招进入杭州某软件公司&#xff0c;干了差不多五年的功能测试&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了五年的功能测试&#xff0c;已经…

Java | Leetcode Java题解之第530题二叉搜索树的最小绝对差

题目&#xff1a; 题解&#xff1a; class Solution {int pre;int ans;public int getMinimumDifference(TreeNode root) {ans Integer.MAX_VALUE;pre -1;dfs(root);return ans;}public void dfs(TreeNode root) {if (root null) {return;}dfs(root.left);if (pre -1) {pr…