linux磁盘相关知识及命令

一、概念

1、机械硬盘物理结构

image.png

磁头-摆动->读取盘片上的数据

数据存储在盘面

盘面:

  • 磁道
  • 扇区-sector,硬盘最小的存储单位,512Bytes 0.5kb
  • 柱面-分区的界限

磁盘性能指标IPOS:input/output per second :

  • 磁盘性能指标, 即每秒的输入输出量(或读写次数),是衡量磁盘性能的主要指标之一。
  • 指单位时间内系统能处理的I/O请求数量,一般以每秒处理的I/O请求数量为单位。

2、block

  • 操作系统无法对数目众多的扇区进行寻址,因此操作系统将相邻的扇区组合在一起,形成了块block,(8个扇区,80.5 kb 4kb大小)*

  • 在linux文件系统重多个连续的扇区,被称之为block,块的概念,也是在系统中被认为是最小的存储单位

  • 操作系统规定,一个block只能存放一个文件的内容,因此文件占用的空间大小,只能是block的整数倍

3、存储单位

  • bit->Byte->KB->MB->GB->TB

  • 1 Byte = 8 bit

  • 后面都是1024级别

4、分区表

MBR分区表

  • master boot record,主分区引导记录
  • MBR分区硬盘容量受限制,最大2T

GPT分区

  • 现在大多的硬盘分区表,都是GPT分区了
  • 优点:
  • GPT分区表硬盘容量没有限制
  • 分区个数,没有限制
  • 自带磁盘保护机制

5、常见的文件系统

  • fat16、fat32,最早的windows文件系统,缺点是单个文件不能超过2GB

  • NTFS,支持文件加密,采用日志形式的文件系统,详细记录磁盘读写的操作,支持数据恢复,能够提高磁盘数据的安全性,突破单个文件4GB大小的限制

  • exFAT文件系统,新式的文件系统,单个文件支持16GB的大小。能够在windows、linux、macOS中同时识别

6、磁盘分区

硬盘设备,插到linux主机上,会被识别为硬盘设备文件:/dev/ad[a-z]

分区:

/dev/sda,第一块硬盘名
    主分区    /dev/sda1 
    扩展分区  /dev/sda2
        逻辑分区  /dev/sda3
                 /dev/sda4
                 /dev/sda5
/dev/sdb, 第二块硬盘名

7、inode是什么?

概念:

  • 操作系统中专门用于管理和存储文件的信息软件,被称之为文件系统。
  • 文件是以文件数据+元信息组成的,文件的inode号+文件数据内容,代表单个文件
  • 文件系统又将文件元信息(元信息,存储文件的创建信息,修改信息,文件大小,等等)存储在了一个称之为inode区域的地方,中文叫做 索引节点
  • inode大小的关系:
    • 硬盘在格式化的时候,系统自动的分为了2部分,一个部分是元数据区域,存放文件的inode信息;一个是文件数据内容区域
    • 每个inode的大小,都是在格式化分区的时候,决定好了,默认是128字节或是256字节

查看文件的inode号:

ls -li filename.txt

通过ls -li 查看到的数据,唯独文件名不属于inode储存的元信息

inode元数据区域,保存的是:

  • 文件大小
  • 属主信息
  • 用户组信息
  • 文件权限数字
  • 文件的修改时间
  • 还存储了一个文件的实体指针,指向block的位置

读取文件步骤:

1、打开文件

2、找到文件的inode号

3、通过inode号,找到文件数据在磁盘上的位置,也就是block的位置

8、文件系统

vfs文件系统

virtualenv File System 虚拟文件系统

linux系统的文件系统格式有

  • ext2

  • ext3

  • ext4

不同的系统,使用的文件系统也各不相同

windows 98: FAT、FAT16、FAT32

windows 2000: NTFS文件系统

Linux的文件系统:

  • ext2
  • ext3 centos5
  • ext4 centos6
  • xfs centos7

网络共享文件系统

  • nfs ,network file system
  • smb,server message block 服务消息块

集群文件系统

  • gfs,google file system 是google公司为了存储海量的数据而开发的文件系统
  • ocfs,oracle cluster file system 是oracle 公司问了数据库研发平台,而定制的文件系统

分布式文件系统:

  • ceph 为了存储的可靠性和扩展性的分布式文件系统

交换文件系统:

  • swap

区别主要在于:是否是日志型文件系统

二、相关命令

1、fdisk

  • 列出分区表:
  • fdisk -l
    
    • image.png
  • fdisk -l |grep sd
    
  • 对磁盘进行分区

  • fdisk /dev/sdb
    m进入选项:
    n: 新建分区
    d: 删除分区
    p: 打印分区表
    q: 退出不保存
    w: 写入并且退出
    

2、df

机器挂载的文件系统的空间剩余量:

df -h

查看磁盘的分区表号:

cat /proc/partitions

3、parted

小于2TB的磁盘都可以用fdisk分区,但是大于2TB的磁盘,只能用parted命令分区,且转换磁盘为GPT格式

显示所有分区信息:

parted -l

分区:

parted /dev/sdc

进入parted
    mklabel gpt # 更改分区表类型为gpt,危险磁盘数据都将丢失
    p:打印分区表
    mkpart primary 0 500  # 创建主分区,name为primary,大小为500M
    mkpart logical 501 10000 # 创建逻辑分区
    p:打印分区表
    q:退出

4、ln 软硬链接

软链接:

  • 快捷方式的创建,可以快捷的指向另一个文件的特殊文件

  • 语法:

  • 创建软链接:

  • ln 命令
    -s ,创建符号链接,软链接,快捷方式
    
    ln -s 目标文件绝对路径 快捷方式绝对路径
    ln -s /opt/test.txt  /tmp/gugu
    
  • image.png
  • 可以看见gugu文件为ln链接文件

  • 也可以针对文件夹创建

  • 查看软链接:

  • readlink ln文件名      # 查看的是软连接指向的源文件的路径
    

硬链接:

软链接特点:

  • inode号,是不一样的,代表软链接文件,是两个单个的个体,

硬链接特点:

  • 一般情况下,文件名和inode号是一对一的
  • 目录文件夹不支持硬链接
  • 不得跨文件系统
  • 硬链接数据量的增加,会增加inode号码的计数
  • 删除源文件,对硬链接也是无影响的,但是影响软链接
  • 只有删除源文件,和所有的硬链接,文件的链接数就为0了,此时文件数据丢失

创建硬链接

  • 可以通过ls -l查看文件的硬链接数量

  • 语法:

  • ln 目标文件绝对路径 硬链接文件路径

  • 创建出来的硬链接,和源文件的inode号是一样的

5、mkfs

针对磁盘分区进行格式化文件系统

mkfs.ext4 /dev/sdc1  # 将sdc1分区格式化为ext4文件系统
mksfs.xfs /dev/sdc2

6、fsck

修复文件系统的命令

  • 默认读取/etc/fstab 开机挂载文件的

fsck命令,是否检查磁盘文件系统,修复错误

  • 禁止文件系统开机修复错误

  • 1.修改/etc/fstab文件,然后改成如下配置

  • 结尾的数字是0就不检查错误,1就检查错误
    /dev/mapper/centos-root /         xfs   defaults  0  0
    
  • 2.针对磁盘进行修复检查

  • fsck -t 文件系统类型 设备名
    

7、dumpe2fs、xfs_info

查看文件系统的属性

  • 对于centos7之前的文件系统
    • dumpe2fs命令,打印文件系统的块组信息,适用于ext2 ext3 ext4
  • 对于centos7之后的系统而言默认用的是xfs文件系统,使用xfs_info打印文件系统信息

8、tune2fs

设置linux是否开机自动检查文件系统正常与否

关闭文件系统自检:

tune2fs -c -1 /dev/sdc1

9、lsblk

列出所有的设备以及文件系统信息

lsblk -f #列出分区的文件系统类型
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容