应对磁盘管理挑战:Linux磁盘分区挂载命令实践指南

前言

在今天的技术世界中,Linux已成为广泛使用的操作系统之一,而对于运维人员和开发人员来说,磁盘分区挂载是一个至关重要的任务。正确地管理和配置磁盘分区挂载可以极大地提升系统的性能和可靠性,同时也能确保数据的安全性。

通过阅读本文,您将学习到一些关键的Linux命令,如fdisk、mkfs、mount和umount等,这些命令是管理和配置磁盘分区挂载必不可少的工具。我们将提供简洁明了的步骤和实用示例,帮助您快速理解和掌握这些命令的用法。

无论您是初学者还是有一定Linux经验的用户,本文都将为您提供实用的技巧和指导,帮助您更好地理解和应用磁盘分区挂载命令。让我们一起深入研究,探索磁盘分区挂载的奥秘吧!

磁盘管理常用命令

fdisk

fdisk是Linux系统中常用的硬盘管理工具,主要用于创建和维护分区表。它兼容多种分区表类型,如DOS、BSD或SUN等。通过fdisk命令,用户可以对硬盘进行各种分区操作,以满足不同的存储需求。分区是将一个硬盘驱动器分成若干个逻辑驱动器,每个分区都可以被独立地格式化和使用。使用fdisk进行分区后,还需要使用其他命令(如mkfs)对分区进行格式化,才能挂载并正常使用。

查看磁盘现有分区

fdisk -l

使用fdisk /dev/sdb命令来指定你想要分区的磁盘,其中sdb是磁盘的设备名

fdisk /dev/sdb

执行fdisk /dev/sdb命令,会运行一个交互式的命令行界面:

根据提示输入m,可以查询到fdisk相关的操作选项

操作选项参数解释:

  • a:切换引导标志
  • b:编辑 BSD 磁盘标签
  • c:切换 DOS 兼容性标志
  • d:删除一个分区
  • g:创建新的空 GPT 分区表
  • G:创建一个 IRIX(SGI)分区表
  • l:列出已知的分区类型
  • m:显示此菜单
  • n:添加一个新分区
  • o:创建新的空 DOS 分区表
  • p:打印分区表
  • q:不保存更改退出
  • s:创建新的空 Sun 磁盘标签
  • t:更改分区的系统 ID
  • u:更改显示/输入单位
  • v:验证分区表
  • w:将表写入磁盘并退出
  • x:额外功能(仅供专家使用)

用的频率比较高的是d(删除一个分区)、n(添加一个新分区)、q(不保存更改退出)、w(将表写入磁盘并退出)

关于使用fdisk进行磁盘分区、挂载的任务的更详细内容可以参考这两篇文章:

《精通Linux磁盘分区的精髓:从理论到实战一网打尽-CSDN博客》

《精通Linux分区挂载的精髓:从理论到实战一网打尽-CSDN博客》

lsblk

lsblk命令是Linux系统中用于列出所有可用块设备信息的实用工具。该命令能够显示块设备(如硬盘、闪存盘、CD-ROM等)的详细信息,并展示它们之间的依赖关系,但不包括RAM盘的信息。

lsblk命令的主要特点是它提供了一个简洁而全面的设备视图,使用户能够轻松地查看和管理磁盘空间。通过lsblk命令,用户可以获取设备的名称、大小、文件系统类型、挂载点等关键信息。这些信息对于系统管理员和开发者来说非常有用,可以帮助他们更好地了解和管理系统的存储结构。

语法:

lsblk [OPTIONS] [DEVICE]

常见选项参数:

  • -a:显示所有的设备(包括空设备)。
  • -b:以字节为单位显示设备大小。
  • -d:仅显示磁盘设备而不包括分区。
  • -f:显示文件系统类型。
  • -m:输出权限信息。
  • -P:以key=value形式显示输出,便于解析。
  • -p:打印完整设备路径
  • -t:在输出结果中包含设备类型。

使用示例:

列出所有块设备的基本信息:

lsblk

显示所有块设备的详细信息,包括文件系统类型:

lsblk -f

以字节显示磁盘大小:

lsblk -b

显示指定设备(如/dev/sda)的信息:

lsblk /dev/sda

显示所有设备的基本信息,以及权限、文件系统类型、设备类型信息

lsblk -amft

从上面的输出信息中可以看出什么呢?:

  • sda 是你的第一块硬盘,总容量为20G。这个硬盘被分成两个分区:sda1 和 sda2。sda1用来存储 /boot 目录的内容,这是Linux系统启动所需要的文件,容量为1G。 sda2是一个LVM(逻辑卷管理)成员,容量为19G。 LVM2_member 表示这部分使用了LVM2(第二版逻辑卷管理器)。
  • 在 sda2 上又有两个逻辑卷: centos-root 和 centos-swap。centos-root 是 xfs 文件系统,挂载在 /,也就是根目录,容量为17G,保存整个系统的大部分文件。centos-swap是交换分区,容量为2G,用于在物理内存用尽时作为虚拟内存使用。
  • sdb 是你的第二块硬盘,总容量为5G。这个硬盘分成三个分区:sdb1、sdb5 和 sdb6。 sdb1 容量很小,只有1K, sdb5 和 sdb6 分别使用 ext4 文件系统, sdb5 挂载在 /opt/fanfu-1,容量为512M;sdb6 目前未挂载,容量509M。
  • sr0 是一个光盘设备,容量为4.4G,文件系统为 iso9660,用来读取CD/DVD光盘。

mkfs

用于在硬盘或者其他存储设备上创建文件系统,它的语法是:

mkfs [options] [-t type fs-options] device [size]

这里的 device 是指你要创建文件系统的设备名,比如 /dev/sdb6, size 用于指定设备的大小。其中,-t type 选项可以用来指定你要创建的文件系统类型,比如 ext2,ext3,ext4,xfs 等等。

举个例子,下面这个命令可以在 /dev/sdb6 这个设备上创建一个 ext4 类型的文件系统

mkfs -t ext4 /dev/sdb6 
#或者下面的写法也行 
mkfs.ext4 /dev/sdb6

需要注意的是,运行 mkfs 命令会删除目标设备上的所有数据,所以在运行 mkfs 命令之前,应该确认你已经备份了设备上的所有重要数据。

如果你希望从ext4变更为xfs,则可能需要带上-f -d参数,-f:强制创建文件系统,如果文件系统已经存在则覆盖。-d指定了 XFS 文件系统的数据区域,下面示例中-d name=/dev/sdb6 指定了要创建文件系统的设备为 /dev/sdb6。

mkfs.xfs -f /dev/sdb6 
#或者 mkfs -t 
xfs -f -d name=/dev/sdb6

当然,在已经创建过的文件系统上,再创建其他文件系统,以覆盖掉旧的,可能有会出现下面的问题:

当然,遇到问题很正常,不要慌,认真一下提示即可。按照提示需要增加-f参数即可,-f表示强制创建文件系统,如果文件系统已经存在则覆盖:

mkfs -t xfs -f /dev/sdb6

如果这时又想换回ext4,执行mkfs -t ext4 -f /dev/sdb6时,可能会遇到下面的问题:

没关系,根据提示信息,-T可以指定使用的文件系统,改一下原来的命令:去掉-f参数,-t变成-T

mkfs -T ext4 /dev/sdb6

mount

用于将文件系统挂载到指定的目录,使得文件系统中的文件可以被访问。

mount [选项] <源设备> <目标路径>
  • 选项:用于指定挂载时的各种参数和选项。
  • 源设备:指定要挂载的文件系统的设备或文件。
  • 目标路径:指定要将文件系统挂载到的目标路径。

可选参数包括但不限于以下几个常见选项:

  • -t :指定要挂载的文件系统的类型。
  • -o :指定挂载时的额外选项,以逗号分隔。
  • -n:以非递归方式挂载。
  • -L :根据卷标挂载设备。
  • -U :根据设备的 UUID 挂载。
  • -r:以只读方式挂载。
  • -w:以可写方式挂载。
  • -a:挂载 /etc/fstab 文件中列出的所有文件系统。
  • -F :指定挂载时使用的配置文件。

挂载一个 xfs 文件系统到指定的路径/opt/fanfu-2上:

mount -t xfs /dev/sdb6 /opt/fanfu-2

umount

用于卸载已挂载的文件系统。当不再需要访问某个文件系统时,可以使用此命令将其卸载。

umount 命令的语法如下:

umount [选项] <挂载点>
  • 选项:用于指定卸载时的各种参数和选项。
  • 挂载点:指定要卸载的挂载点路径。

以下是一些常见选项:

  • -f:强制卸载,即使设备忙碌也会强制卸载。
  • -l:延迟卸载,等待设备不再忙碌时再卸载。
  • -r:只读卸载,将文件系统以只读方式卸载。
  • -n:提前检查,但不实际执行卸载操作。
  • -v:显示详细的卸载信息。

卸载/dev/sdb6上的文件系统:

umount /dev/sdb6

blkid

这个命令用于快速查询每个分区的全局唯一标识符(UUID)和文件系统类型。这对于挂载和格式化操作非常有用。

blkid 命令的语法如下:

blkid [选项] [块设备...]

常见的选项包括:

  • -c :指定用于保存缓存信息的文件。
  • -p:打印信息时使用 key=value 的格式。
  • -s :指定要显示的属性。
  • -o :指定输出的格式。
  • -i:显示设备的完整信息。

显示所有块设备的信息:

blkid

显示指定块设备(例如 /dev/sdb6)的信息:

blkid /dev/sdb6

显示指定块设备的 UUID:

blkid -s UUID /dev/sdb6

df

df 命令用于显示磁盘空间的使用情况。它会列出文件系统的挂载点和可用空间、已用空间、文件系统类型等信息。

df 命令的语法如下:

df [选项] [文件或目录...]

常见的选项包括:

  • -a:显示所有文件系统,包括空文件系统。
  • -h:以人类可读的方式显示磁盘空间,例如使用 "K"、"M"、"G" 表示单位。
  • -i:显示 inode 的使用情况而不是磁盘空间的使用情况。
  • -T:显示文件系统的类型。
  • -x :排除指定的文件系统类型。
  • -t :仅显示指定的文件系统类型。

以下是一些示例使用方法:

显示所有文件系统的磁盘空间使用情况:

df

以人类可读的方式显示指定文件或目录所在文件系统的磁盘空间使用情况,如果不指定具体的目录,则显示全部:

df -h

df -h /opt/fanfu-1

显示指定文件系统类型(例如 ext4)的磁盘空间使用情况:

df -t ext4

du

du 命令用于计算目录或文件的磁盘使用情况,即显示目录或文件及其子目录或子文件的磁盘空间占用量。

du 命令的语法如下:

du [选项] [目录或文件...]

常见的选项包括:

  • -h:以人类可读的方式显示磁盘空间,例如使用 "K"、"M"、"G" 表示单位。
  • -s:仅显示指定目录或文件的总磁盘空间占用量,而不显示每个子目录或子文件的详细占用量。
  • -c:在显示每个子目录或子文件的详细占用量后,显示总计磁盘空间占用量。
  • -a:显示所有文件和目录的磁盘空间占用量,包括隐藏文件和目录。
  • -L:跟踪符号链接所指向的文件或目录的磁盘空间占用量。
  • -x:不跨越文件系统边界,即只显示指定目录或文件所在文件系统的磁盘空间占用量。

以下是一些示例使用方法:

显示指定目录(例如 /opt/fanfu-1)的磁盘空间占用量:

du /opt/fanfu-1

以人类可读的方式显示指定目录(例如 /opt/fanfu-1)的磁盘空间占用量:

du -h /opt/fanfu-1

以人类可读的方式只显示指定目录(例如 /opt/fanfu-1)的总磁盘空间占用量:

du -sh /opt/fanfu-1

显示指定目录(例如 /opt/fanfu-1)及其子目录的详细磁盘空间占用量,并显示总计:

du -h -c /opt/fanfu-1

写在最后

如果你觉得这篇文章对你有所帮助,不妨点击点赞按钮,让更多的人看到这篇优质的技术分享。同时,别忘了将这篇文章收藏起来,以备日后查阅。这样,你就能随时回顾和复习文章中的重要知识点,确保你的技术水平始终保持在最在线的水平。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

初识Netty网络编程

Netty网络编程 对于高并发的Reactor线程模型&#xff0c;Netty是如何支持的&#xff1f; Netty线程模型是基于Reactor模型实现的&#xff0c;对Reeactor三种模式都有非常好的支持&#xff0c;并做了一定的改进&#xff0c;也非常的灵活&#xff0c;一般情况&#xff0c;在服务端…

【BUG 弹药库】二分模板的优化

文章目录 1. 为什么要优化二分算法&#xff1f;2. 如何去优化原来的二分模板&#xff1f;3. 案例分析 1. 为什么要优化二分算法&#xff1f; ① 平常学习的二分整数的算法模板边界的问题很容易出错&#xff0c;不知道什么时候用 l mid&#xff0c;r mid - 1&#xff1b;或者是…

内网渗透小结

域产生原因 简单来说就是为了安全和方便控制域内主机 一个具有一定规模的企业&#xff0c;每天都可能面临员工入职和离职&#xff0c;因此网络管理部门经常需要对域成员主机进行格式化消除磁盘的文件&#xff0c;然后重装系统及软件&#xff0c;以提供给新员工使用&#xff1…

python--剑指offer--中等--07. 重建二叉树

输入某二叉树的前序遍历和中序遍历的结果&#xff0c;请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 例如&#xff0c;给出 前序遍历 preorder [3,9,20,15,7] 中序遍历 inorder [9,3,15,20,7] 返回如下的二叉树&#xff1a; 3/ 9 20 / 15 7 …

Linux 下使用 socket 实现 TCP 客户端

目录 示例代码板级验证更多内容 套接字&#xff08;socket&#xff09;是 Linux 下的一种进程间通信机制&#xff08;socket IPC&#xff09;&#xff0c;它不仅支持同一主机的不同进程间通信&#xff0c;还支持跨网络的不同主机的进程间通信。 socket 允许通过标准的文件描述…

HarmonyOS-鸿蒙系统概述

你了解鸿蒙系统吗&#xff1f; 你看好鸿蒙系统吗&#xff1f; 今年秋季即将推出的HarmonyOS Next 星河版热度空前&#xff0c;一起来了解一下吧。本文将从HarmonyOS 的应用场景、发展历程、架构、开发语言、开发工具、生态建设六个角度聊一聊个人的理解。 1、应用场景 鸿蒙…

C# 打开文件对话框(OpenFileDialog)

OpenFileDialog&#xff1a;可以打开指定后缀名的文件&#xff0c;既能单个打开文件也能批量打开文件 /// <summary>/// 批量打开文档/// 引用&#xff1a;System.Window.Fomrs.OpenFileDialog/// </summary>public void OpenFile(){OpenFileDialog dialog new Op…

Linux中文件和目录管理(创建删除移动复制)

目录 1——一次建立一个或多个目录&#xff1a;mkdir ​2——创建一个空文件&#xff1a;touch 3——移动和重命名&#xff1a;mv 4——复制文件和目录&#xff1a;cp 5—— 删除目录和文件&#xff1a;rmdir和rm 在学习文件与目录的管理的一些命令之前&#xff0c;我们先…

QT5.14.2对象树之魅力 -- 让Qt编程如行云流水

对象编程是现代编程语言中不可或缺的核心理念。在C等编程语言中&#xff0c;对象的生命周期管理一直是开发者头疼的难题。手动管理对象创建和销毁&#xff0c;而一不小心就有可能导致内存泄漏等严重问题。而Qt以其独有的对象树模型&#xff0c;为我们解决了这一烦恼&#xff0c…

并查集(详解+例题)

1、作用 将两个集合合并 询问两个元素是否在一个集合中 2、基本原理 每个集合用一颗树表示。树根的编号就是整个集合的编号。每个节点存储它的父节点&#xff0c;p[x]表示x的父节点。 3、实现 问题1&#xff1a;如何判断树根&#xff1a;if(p[x]x); 问题2&#xff1a;如何求…

WiFi7 MLO技术框架

在2019年7月份&#xff0c;关于WiFi7 MLO的开放式讨论已经基本完成了&#xff0c;关注点集中体现在band steering/balancing和multi band aggregation上面。 英特尔基于开放讨论的基础&#xff0c;提出了MLO的协议技术框架&#xff0c;尽量兼容已有的协议文本&#xff0c;并提…

大数据数据分析-scala、IDEA、jdk之间的搭配关系

Scala主要是一门面向对象编程语言和函数式编程语言。 一、大数据框架&#xff08;处理海量/流式数据&#xff09; - ---以HADOOP 2. x为系列的大数据生态系统处理框架 离线数据分析&#xff0c;分析的数据为N1天数据 -----MapReduce 并行计算框架&#xff0c;分而治之…

C语言基础数据结构——栈和队列

目录 1.栈 1.1栈的选型 1.2 实现代码 2.队列 2.1整体思路 2.2初始化和销毁 2.3出入队列 2.4取队列元素 2.5判断队列是否为空 2.6返回队列中元素个数 2.7 Test 1.栈 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。 进行数…

Docker入门二(应用部署、迁移与备份、DockerFile、docker私有仓库、Docker-Compose)

文章目录 一、应用部署1.MySQL部署2.Redis部署3.Nginx部署 二、迁移与备份1.容器做成镜像2.镜像备份和恢复(打包成压缩包&#xff09; 三、DockerFile0.镜像从哪里来&#xff1f;1.什么是DockerFile2.DockerFile 构建特征3.DockerFile命令描述4.构建一个带vim的centos镜像案例5…

Oracle Primavera Analytics 是什么,与P6的关系?

前言 Oracle Primavera P6 Analytics 是与P6有关的一个相对较新的模块&#xff0c;Primavera 用户社区在很大程度上尚未对其进行探索。 那么它到底有什么作用呢&#xff1f; 通过了解得知它旨在通过深入了解组织的项目组合绩效&#xff0c;帮助高级管理层对其项目组合做出更好…

【开源】SpringBoot框架开发就医保险管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 科室档案模块2.2 医生档案模块2.3 预约挂号模块2.4 我的挂号模块 三、系统展示四、核心代码4.1 用户查询全部医生4.2 新增医生4.3 查询科室4.4 新增号源4.5 预约号源 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVue…

MySQL | 表的约束

目录 1. 空属性 NULL 2. 默认值 DEFAULT 3. 列描述comment 4. zerofill 5. 主键 PRIMARY KEY 6. 自增长AUTO_INCREMENT 7. 唯一键UNIQUE 8. 外键 真正约束字段的是数据类型&#xff0c;但是数据类型约束很单一&#xff0c;需要有一些额外的约束&#xff0c;更好的保证数…

VS2019加QT5.14中Please assign a Qt installation in ‘Qt Project Settings‘.问题的解决

第一篇&#xff1a; 原文链接&#xff1a;https://blog.csdn.net/aoxuestudy/article/details/124312629 error:There’ no Qt version assigned to project mdi.vcxproj for configuration release/x64.Please assign a Qt installation in “Qt Project Settings”. 一、分…

AG32 MCU以太网应用实例demo

一. 前言 AGM32系列32位微控制器旨在为MCU用户提供新的自由度和丰富的兼容外设&#xff0c;以及兼容的引脚和功能。AG32F407系列产品具有卓越的品质&#xff0c;稳定性和卓越的价格价值。 AG32产品线支持其所有接口外设尽可能接近主流兼容性&#xff0c;并提供丰富的参考设计…

机器人路径规划:基于深度优先搜索(Depth-First-Search,DFS)算法的机器人路径规划(提供Python代码)

一、深度优先搜索算法介绍 深度优先搜索算法&#xff08;Depth-First-Search&#xff09;的基本思想是沿着树的深度遍历树的节点&#xff0c;尽可能深的搜索树的分支。当节点v的所有边都己被探寻过&#xff0c;搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已…