IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux磁盘及文件的管理 -> 正文阅读

[系统运维]Linux磁盘及文件的管理


前言

最近在工作中总能遇到同事吐槽电脑磁盘空间不足的情况,对于系统管理员来说,合理分配管理自己的磁盘文件系统是一项必备的技能。所以在此我总结了相关的资料以备不时之需。

一、磁盘结构及分区表示

1.磁盘基础

硬盘(Hard Disk Drive ,简称HDD)是计算机常用的存储设备之一

1.1 硬盘的结构

  • 物理结构
    ①盘片:硬盘有多个盘片,每个盘片2面
    ②磁头:每面一个磁头
  • 数据结构
    ①扇区:磁盘上的每个磁道被分为若干个弧段,这些弧段便是硬盘的扇区。硬盘的第一个扇区,叫做引导扇区。
    ②磁道:当磁盘旋转时,磁头若保持在一个位置上,则每个磁头都会在磁盘表面划出一个圆形轨迹,这些圆形轨迹就叫做磁道。
    ③柱面:在有多个盘片构成的盘组中,由不同盘片的面,但处于同一半径圆的多个磁道组成的一个圆柱面。
    如下图所示:
    mark
  • 存储容量
    磁盘存储容量=磁头数X磁道(柱面)数X每道扇区数X每扇区字节数

1.2 硬盘的接口

硬盘按数据接口不同,大致分为 ATA(IDE)和 SATA 以及 SCSI 和 SAS

名称说明
ATA并口数据线连接主板与硬盘,抗干扰性太差,且排线占用空间较大,不利电脑内部散热,已逐渐被 SATA 所取代
SATA抗干扰性强,支持热插拔等功能,速度快,纠错能力强
SCSI小型机系统接口,SCSI硬盘广为工作站级个人电脑以及服务器所使用,资料传输时CPU占用率较低,转速快,支持热插拔等
SAS是新一代的scSI技术,和sATA硬盘相同,都是采取序列式技术以获得更高的传输速度,可达到 6Gb/s

2.磁盘分区表示

2.1 MBR

  • MBR是主引导记录(MBR:Master Boot Record),位于硬盘的第一个物理扇区处,MBR中包含硬盘的主引导程序和硬盘分区表,分区表有4个分区记录区,每个分区记录区占16字节。
  • 主启动记录(MBR)磁盘分区支持最大卷为2.2TB,每个磁盘最多有4个主分区,或3个主分区、1个扩展分区和在扩展分区里面分多个逻辑分区。
  • Linux中将硬盘、分区等设备均表示为文件
/dev/hda5    
#dev 是硬件设备文件所在目录
#hd 表示IDE设备,sd 表示SCSI设备
#a 表示硬盘的顺序号,以字母a,b,c...表示
#5 表示分区的顺序号,以数字1.2.3...表示

2.2 磁盘分区结构

常见的硬盘可以划分为主分区、扩展分区和逻辑分区,通常情况下主分区只有四个,而扩展分区可以看成是一个特殊的主分区类型,在扩展分区中可以建立逻辑分区。主分区一般用来安装操作系统,扩展分区则多用来存储文件数据。

  • 主分区和扩展分区的序号限制在1~4
  • 逻辑分区的序号始终从5开始

2.3 文件系统类型

文件系统类型决定了向分区中存放、读取文件数据的方式和效率,在对分区进行格式化时需要选择使用的文件系统类型。最常用的文件系统主要包括以下几种格式:

  • EXT4:第4代扩展文件系统,用于存放文件和目录数据的分区,是 Linux系统中默认使用的文件系统。是典型的日志型文件系统,其特点是保存有磁盘存取记录的日志数据,便于恢复,在存取性能和稳定性方面更加出色。

  • SWAP:交换文件系统,用于为Linux系统建立交换分区。交换分区的作用相当于虚拟内存,能够在一定程度上缓解物理内存不足的问题。一般建议将交换分区的大小设置为物理内存的 1.5~2倍。例如,对于拥有
    512MB物理内存的主机,其交换分区的大小建议设置为1024NB。如果服务器的物理内存足够大(如 8GB以上),也可以不设置交换分区。交换分区不用于直接存储用户的文件和目录等数据。

  • XFS:是一种高性能的日志文件系统,特别擅长于处理大文件,可支持上百万T字节的存储空间。由于XFS文件系统开启日志功能,所以即便发生宕机也不怕数据遭到破坏,这种文件系统可以根据日志记录在短时间内进行数据恢复。

  • Linux系统还广泛支持其他各种类型的文件系统:
    如JFS、FAT16、FAT32、NTFS 等。

  • Centos 6默认使用EXT4而Centos 7默认使用XFS

二、管理磁盘及分区

在Linux服务器中,当现有硬盘的分区规划不能满足要求,例如,根分区的剩余空间过少,无法继续安装新的系统程序时,就需要对磁盘中的分区进行重新规划和调整,有时候还需要添加新的硬盘设备来扩展存储空间。

1.检测并确认新硬盘——fdisk

  • 想要实现上面所说的操作需要用到 fdisk 磁盘及分区管理工具,fdisk 是大多数Linux系统中自带的基本工具之一,具有查看和管理磁盘分区的作用。
    fdisk 命令格式如下:
fdisk -l  [磁盘设备]  
或
fdisk     [磁盘设备]

案例
用fdisk 命令查看当前我的磁盘信息:

[root@localhost ~]#fdisk -l

磁盘 /dev/sda:64.4 GB, 64424509440 字节,125829120 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理)512 字节 / 512 字节
I/O 大小(最小/最佳)512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x00090272

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048     9414655     4194304   82  Linux swap / Solaris
/dev/sda3         9414656   125829119    58207232   83  Linux

磁盘 /dev/sdb:85.9 GB, 85899345920 字节,167772160 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理)512 字节 / 512 字节
I/O 大小(最小/最佳)512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x4b3de2b9

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    41945087    20971520   83  Linux

上面输出信息中包含了各硬盘的整体情况和分区情况,其中“/dev/sda”为原有的硬盘设备,而“/dev/sdb”为新增的硬盘,对于已有的分区,将通过列表的方式输出以下的信息:

  • Decice:分区的设备文件名称
  • Boot:是否引导分区。是,则有“ * ”标识
  • Start:该分区在硬盘中的起始位置(柱面数)
  • End:该分区在硬盘中的结束位置(柱面数)
  • Blocks:分区的大小,以Blocks(块)为单位,默认的块大小为1024字节
  • Id:分区对应的系统ID号。83表示Linux 中的EXT4分区、8e 表示LVM逻辑卷
  • System:分区类型

2.规划硬盘中的分区

在硬盘中创建、删除、更改分区等操作同样通过 fdisk 命令进行

  • 执行如下命令即可进入交互式的分区管理界面中:
[root@localhost ~]#fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助)
  • 输入特定的分区操作指令可以完成各项分区管理任务,例如,输入“m” 指令后,可以查看各种操作指令的帮助信息:
命令(输入 m 获取帮助):m
命令操作
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   g   create a new empty GPT partition table
   G   create an IRIX (SGI) partition table
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)
  • 交互模式中的常用指令如下
Command (m for help) : m     #输入m指令
格式说明
-a设置可引导标记
-b修改bsd的磁盘标签
-C设置DoS操作系统兼容标记
-d删除一个分区
-l显示已知的分区类型,其中82为Linuxswap分区,83为Linux分区
-p显示磁盘当前的分区表
-w把设置写入硬盘分区表,然后退出
-q退出fdisk程序,不保存任何修改
-t更改分区类型
-u切换所显示的分区大小的单位
-m列出所有命令(显示帮助菜单)
-n创建一个新的分区
-o创建一个新的空白的Dos分区表

三、管理文件系统

在Linux系统中,使用fdisk工具在硬盘中建立分区以后,还需要对分区进行格式化并挂载到系统中指定的目录,然后才能用于存储文件、目录等数据。

1.创建文件系统

创建文件系统的过程也即格式化分区的过程,在Linux系统中使用 mkfs 命令格式可以格式化 XFS 、EXT4 、FAT等不同类型的分区,而使用mkswap命令可以格式化Swap交换分区。

1.1mkfs 命令

  • 命令的基本格式如下:
mkfs  -t  文件系统类型  分区设备

例如,把分区/dev/sdb1格式化为EXT4文件系统:

[root@localhost ~]# mkfs -t ext4 /dev/sdb1
  • 一般来说,不建议在Linux系统中创建或使用windows中的文件系统类型,包括FAT16、FAT32等,一些特殊情况,如Windows系统不可用、U盘系统被病毒破坏等除外。

1.2 mkswap 命令

在Linux系统中,Swap 分区的作用类型于windows系统中的“虚拟内存”,可以在一定程度上缓解物理内存不足的情况。当当前Linux主机运行的服务较多,需要更多的交换空间支撑时,可以为其增加新的交换分区。

mkswap 的基本命令格式如下:

mkswap  分区设备

示例:

[root@localhost ~]#fdisk /dev/sdb                            #首先需要把ID号设置为82
命令(输入 m 获取帮助):t
分区号 (1,2,默认 2)2
Hex 代码(输入 L 列出所有代码)82
已将分区“Linux LVM”的类型更改为“Linux swap / Solaris”
命令(输入 m 获取帮助):w                                        #保存并退出

[root@localhost ~]#mkswap /dev/sdb2                         
正在设置交换空间版本 1,大小 = 20971516 KiB
无标签,UUID=26a53c44-7a81-4b0d-943d-913d1f904fd5
[root@localhost ~]#cat /proc/meminfo |grep SwapTotal        #开启之前可以先查看一下
SwapTotal:       4194300 kB
[root@localhost ~]#swapon /dev/sdb2                         #启用交换空间
[root@localhost ~]#cat /proc/meminfo |grep SwapTotal        #查看是否开启成功
SwapTotal:      25165816 kB
[root@localhost ~]#swapoff /dev/sdb2                        #关闭交换空间
[root@localhost ~]#cat /proc/meminfo |grep SwapTotal        #查看是否关闭成功
SwapTotal:       4194300 kB

2.挂载、卸载文件系统

在Linux系统中,对各种存储设备中的资源访问(如读取,保存文件等)都是通过目录结构进行的,虽然系统核心能够通过“设备文件”的方式操纵各种设备,但是对于用户来说,还需要增加一个“挂载”的过程,才能像正常访问目录一样访问存储设备中的资源。

2.1 挂载文件系统

mount命令基本格式如下:

mount   [-t文件系统类型]  [存储设备挂载点]
  • 其中,文件系统类型通常可以省略,由系统自动识别,存储设备对应分区的设备文件名或网络资源路径,挂载点即用户指定用于挂载的目录,例如,以下操作用于将光盘设备挂载在 /media/cdrom 目录:
[root@localhost ~]#mount /dev/cdrom /media/cdrom
  • 使用不带选项或者参数的mount命令时,将显示出当前系统中已挂载的各个分区的相关信息,最近挂载的文件系统将显示在最后边,如下所示:

在这里插入图片描述

  • 在工作中,会经常从互联网中下载一些软件或应用系统的ISO镜像文件,在无法刻录光盘的情况下,需要将其解压才能浏览使用其中的文件数据。如果使用 mount 挂载则无需揭开文件包即可浏览、使用ISO镜像文件中的数据。
    在挂载ISO镜像文件时,要注意的一点就是“.iso”镜像文件通常被视为一种特殊的“回环”文件系统,因此在挂载时需要添加“-o loop”选项。
    案例,执行以下操作可以将下载的CentOS系统的DVD光盘镜像文件“CentOS-7-x86_64-DVD-1611.iso”挂载到/media/mnt 目录下
[root@localhost ~]#mount -o loop CentOS-7-x86_64-DVD-1611.iso /media/mnt

2.2 卸载文件系统

需要卸载文件系统时,使用的命令是 umount,使用挂载点目录或对应设备的文件名作为卸载参数。

  • 卸载已挂载的文件系统——umount
    命令格式如下:
umount   [存储设备位置]
umount   [挂载点目录]
  • 由于同一个设备可以被挂载到多个目录下,所以一般建议通过挂载点的目录位置来进行卸载,例如,执行如下操作可以卸载掉挂载的光盘设备:
[root@localhost ~]#umount /dev/cdrom 

2.3 设置文件系统的自动挂载

系统中的/etc/fstab文件可以视为mount命令的配置文件,其中存储了文件系统的静态挂载数据,Linux系统在每次开机时,会自动读取这个文件的内容,自动挂载所指定的文件系统
默认的fstab文件中包括了根分区,/boot分区、交换分区及proc、tmpfs等伪文件系统的挂载配置

  • 执行如下命令可以查看其中的配置文件:
[root@localhost ~]#cat /etc/fstab 

UUID=e92a9632-e630-4f3b-8e13-b777bbd4c167 /                       xfs     defaults        0 0
UUID=7ad71f91-b022-484a-8a4a-a05b63a67d32 /boot                   xfs     defaults        0 0
UUID=34623334-0206-4e5b-be69-d2d85bdfcce4 swap                    swap    defaults        0 0
/dev/sdb1                                 /home                   xfs     defaults        0 0

在“/etc/fstab”文件中,每一行记录对应一个分区或设备的挂载配置信息,从左到右包括六个字段,含义如下:

  • 第一个字段:设备名或分区
  • 第二个字段:文件系统的挂载点目录的位置
  • 第三个字段:文件系统类型
  • 第四个字段:文件系统挂载参数
  • 第五个字段:表示文件系统是否需要备份,一般1为需要,0为不需要。
  • 第六个字段:该数字用于决定在系统启动时进行磁盘检查的顺序。0表示不进行检查,1表示优先检查。

通过在“/etc/fastb”文件中添加相应的挂载配置,可以实现开机后自动挂载指定的分区,例如,执行以下操作将添加自动挂载分区/dev/sdb1 的配置记录:

[root@localhost ~]#vim /etc/fstab 

设置磁盘分区和自动挂载具体步骤请看案例操作

3.查看磁盘使用情况

3.1 mount 命令

不带选项及参数的mount 命令可以显示分区的挂载情况,若要了解系统中已挂载的文件系统磁盘使用情况,如剩余磁盘空间比例等,可以使用 df 命令。

  • 命令格式如下:
df [选项] [文件][设备]
  • 常用选项如下:
格式说明
-i显示inode信息而非块使用量
-h以容易理解的格式印出文件系统大小,例如136KB、2 4MB、21GB
-T显示文件系统类型
-l计算所有的文件大小,对硬链接文件则计算多次
-k以1024字节为单位列出磁盘空间使用情况

3.2 lsblk 命令

lsblk 命令能列出系统上所有的磁盘

命令格式如下:

lsblk [参数]
  • 常用选项和参数如下:
格式说明
-a显示所有设备
-b以bytes方式显示设备大小
-d仅列出磁盘本身,并不会列出该磁盘的分区数据
-e排除设备
-f同时列出该磁盘内的文件系统名称
-h显示帮助信息
-m显示权限信息
-i使用 ASCII 的线段输出,不要使用复杂的编码 (再某些环境下很有用)
-p列出该设备的完整文件名!而不是仅列出最后的名字而已。
-t列出该磁盘设备的详细数据,包括磁盘伫列机制、预读写的数据量大小等

例如,输入 lsblk 命令,会显示出我的所有磁盘信息:

[root@localhost ~]#lsblk
NAME                MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                   8:0    0   60G  0 disk 
├─sda1                8:1    0  500M  0 part /boot
├─sda2                8:2    0    4G  0 part [SWAP]
└─sda3                8:3    0 55.5G  0 part /
sdb                   8:16   0   60G  0 disk 
├─sdb1                8:17   0   20G  0 part 
│ └─vgname1-lvname1 253:0    0   30G  0 lvm  /opt
└─sdb2                8:18   0   20G  0 part 
sdc                   8:32   0   60G  0 disk 
├─sdc1                8:33   0   20G  0 part 
│ └─vgname1-lvname1 253:0    0   30G  0 lvm  /opt
├─sdc2                8:34   0   20G  0 part 
└─sdc3                8:35   0   20G  0 part 
sr0                  11:0    1  4.2G  0 rom  /run/media/root/CentOS 7 x86_64

总结

在工作中出于谨慎考虑,对于磁盘及文件的管理需要非常熟练,需要了解各项报错的原因以及如何去解决问题,以免造成无法估量的后果。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-11 12:50:23  更:2021-08-11 12:51:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 7:32:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码