当前位置: 首页 > news >正文

深入掌握Linux磁盘管理,从入门到精通的完整指南

在Linux系统中,磁盘管理是系统管理中非常重要的一个方面,尤其在服务器或大型生产环境中。理解磁盘的管理工具与常见操作,可以帮助管理员确保系统正常运行并最大化磁盘资源的利用效率。本文将为你介绍Linux磁盘管理的核心概念与常见命令,并提供一些实用操作指南。

磁盘设备表示

在Linux系统中,所有的硬盘设备通常会被挂载到/dev目录下,常见的设备文件表示方式如下:

  • SATA/SCSI/USB硬盘/dev/sdX,其中X为磁盘的标识符(如/dev/sda表示第一块磁盘,/dev/sdb表示第二块磁盘)。

  • 分区:硬盘的每个分区也有自己的标识符,如/dev/sda1表示第一块硬盘的第一个分区,/dev/sda2表示第二个分区。

查看磁盘信息

要了解系统中磁盘的基本信息,可以使用以下命令:

lsblk命令

列出块设备,显示设备名称、大小、挂载点等信息。

lsblk命令语法
lsblk [选项] [<设备> ...]
参数说明

lsblk命令使用示例

案例一:查看所有块设备及其挂载情况

lsblk

执行上述命令会输出如下图的结果:

案例一:以列表形式显示设备信息,并包含文件系统类型

lsblk -lfm

返回结果如下所示

df命令

该命令检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

df命令语法
df [参数] [目录或文件名]
参数说明
参数说明
-a列出所有的文件系统,包括系统特有的/proc等文件系统。
-k以KBytes为单位,返回各文件系统容量
-m以MBytes为单位,返回各文件系统容量。
-h以GBytes、MBytes、KBytes为单位,返回各文件系统容量。
-H以M=1000K取代M=1024K的进位方式显示各文件系统容量。
-T显示文件系统类型。
-i显示inode信息。
df命令使用示例
  • 示例一:显示磁盘使用情况。

执行如下命令,显示磁盘使用情况。

df -h

执行上述命令返回结果如下所示。

df -h

  • 示例二:以inode模式来显示磁盘使用情况。
df -i

执行上述命令返回结果如下所示:

df -i

du命令

查看磁盘使用空间。du与df命令不同点在于,du命令用于查看文件和目录磁盘的使用空间。

df命令语法
du [参数] [文件或目录名称]
参数说明
参数说明
-a列出所有的文件与目录容量。
-h以G、M、K为单位,返回容量。
-s列出总量。
-S列出不包括子目录下的总量。
-k以KBytes为单位,返回容量。
-m以MBytes为单位,返回容量。
du命令使用示例
  • 示例一:列出当前目录下的所有文件夹的容量。

执行如下命令,列出当前目录下的所有文件夹的容量。

du -h

返回结果如下所示

  • 示例二:列出当前目录下的所有文件夹和文件的容量。

执行如下命令,列出当前目录下的所有文件夹和文件的容量。

du -ah

返回结果如下所示

du -ah

fidsk命令

查看磁盘的分区表。通常用于查看磁盘分区的详细信息。

fdisk命令语法
fdisk [-l] 装置名称
参数说明
参数说明
-l输出后面装置名称的所有的分区内容。若仅有 fdisk -l时, 则系统将会把整个系统内能够搜寻到的装置的分区均列出来。
fdisk命令使用示例
  • 示例一:列出系统所有装置的分区信息。

执行如下命令,列出系统所有装置的分区信息。

fdisk  -l 

返回结果如下所示。

磁盘分区

磁盘分区是磁盘管理中非常基础的部分。可以通过以下步骤进行分区操作:

  • 使用fdisk工具分区
    1. 打开分区工具:
fdisk /dev/sda

进入后,可以使用以下命令:

  • p:查看当前磁盘的分区情况。

  • n:创建新分区。

  • d:删除分区。

  • w:写入更改并退出。

  • 使用parted工具分区

相较于fdiskparted可以更好地支持大于2TB的磁盘。

parted /dev/sda

文件系统创建

创建分区后,必须为其创建文件系统。常见的文件系统类型有ext4xfs等。以下命令展示如何为新分区创建文件系统:

  • 创建ext4文件系统
sudo mkfs.ext4 /dev/sda1
  • 创建xfs文件系统
sudo mkfs.xfs /dev/sda1

挂载与卸载

创建文件系统后,你需要将其挂载到系统中的某个目录才能使用。

  • 挂载磁盘

挂载时,选择一个空目录作为挂载点。例如将/dev/sda1挂载到/mnt/disk1目录下:

sudo mount /dev/sda1 /mnt/disk1
  • 自动挂载

编辑/etc/fstab文件,使磁盘在系统启动时自动挂载。示例条目:

/dev/sda1  /mnt/disk1  ext4  defaults  0  2
  • 卸载磁盘

卸载挂载的磁盘:

sudo umount /mnt/disk1

磁盘扩容与缩小

当磁盘使用空间不够时,可能需要调整分区大小。以下工具用于调整分区大小:

调整ext4文件系统大小

  • 扩展分区:
sudo resize2fs /dev/sda1
  • 缩小分区:
sudo resize2fs /dev/sda1 SIZE

调整LVM分区大小

LVM是一个灵活的磁盘管理工具。使用LVM可以更轻松地扩展或缩小磁盘卷。以下为基本操作:

  • 扩展逻辑卷:
sudo lvextend -L +10G /dev/mapper/vg0-lv0
sudo resize2fs /dev/mapper/vg0-lv0
  • 缩小逻辑卷:
sudo resize2fs /dev/mapper/vg0-lv0 SIZE
sudo lvreduce -L -10G /dev/mapper/vg0-lv0

磁盘故障排查

磁盘使用一段时间后,可能会出现一些错误或者坏块。你可以使用fsck工具来检测并修复文件系统。

使用fsck工具检测和修复磁盘

sudo fsck /dev/sda1

总结

Linux系统的磁盘管理包括磁盘的查看、分区、文件系统的创建与管理、磁盘挂载、LVM管理等。掌握这些常见的操作工具和命令,可以帮助你高效地管理磁盘资源,保障系统的稳定运行。

推荐阅读


  • 当你拥有一台云服务器,你最想做的事情是啥?

  • IP地址乱成一团?用Shell一键搞定!

  • Nginx日志分析:编写Shell脚本进行全面日志统计

  • 如何用find命令按文件大小快速查找并美化输出显示

  • 不再担心数据丢失:用rsync打造你的自动化备份解决方案

  • 从繁琐到简单:Python实现快速批量文件重命名攻略!


相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 安装node版本管理工具(nvm)、利用nvm安装node
  • html+css+js网页设计 故宫7个页面 ui还原度100%
  • 解决App推广痛点:一键获取下载数据的秘诀
  • Vue(七) TodoList案例1.0
  • 新的Ubuntu服务器如何启用root账号和配置静态ip以及开启ssh服务
  • spark.sql
  • 数仓基础(九):各大公司实时数仓实践
  • Spring Security与Apache Shiro:Java安全框架的比较
  • 电信500M宽带+AX210无线网卡测速
  • charles使用ssl证书抓包https请求失败解决方案
  • python-简单的dos攻击
  • Flutter之CRC校验
  • Unity编辑器开发 Immediate Mode GUI (IMGUI)
  • 多目标应用:基于多目标雾凇算法(MORIME)的移动机器人路径规划研究(提供MATLAB代码)
  • 电脑办公之基础操作(持续更新)
  • CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里...
  • gcc介绍及安装
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 时间复杂度与空间复杂度分析
  • 新书推荐|Windows黑客编程技术详解
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • ​学习笔记——动态路由——IS-IS中间系统到中间系统(报文/TLV)​
  • # centos7下FFmpeg环境部署记录
  • #微信小程序:微信小程序常见的配置传旨
  • (1)Jupyter Notebook 下载及安装
  • (2020)Java后端开发----(面试题和笔试题)
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (二)c52学习之旅-简单了解单片机
  • (二开)Flink 修改源码拓展 SQL 语法
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (每日一问)计算机网络:浏览器输入一个地址到跳出网页这个过程中发生了哪些事情?(废话少说版)
  • (一)python发送HTTP 请求的两种方式(get和post )
  • ***原理与防范
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .ai域名是什么后缀?
  • .axf 转化 .bin文件 的方法
  • .gitattributes 文件
  • .NET Core 成都线下面基会拉开序幕
  • .net 调用海康SDK以及常见的坑解释
  • .Net 基于MiniExcel的导入功能接口示例
  • @manytomany 保存后数据被删除_[Windows] 数据恢复软件RStudio v8.14.179675 便携特别版...
  • [17]JAVAEE-HTTP协议
  • [Android]Android开发入门之HelloWorld
  • [Angular] 笔记 20:NgContent
  • [bzoj1006]: [HNOI2008]神奇的国度(最大势算法)
  • [element-ui] el-dialog 中的内容没有预先加载,因此无法获得内部元素的ref 的解决方案
  • [Hive] INSERT OVERWRITE DIRECTORY要注意的问题
  • [HTML]Web前端开发技术7(HTML5、CSS3、JavaScript )CSS的定位机制——喵喵画网页
  • [HTTP]HTTP协议的状态码
  • [IE编程] WebBrowser控件的多页面浏览(Tabbed Browsing)开发接口