磁盘管理与文件系统【fdisk、mkfs、mount】

245 阅读10分钟

本章重点:会在Linux中使用硬盘

在Linux中使用硬盘分三步

  1. 分区 :方便管理,加快磁盘读写速度
  2. 格式化 (安装文件系统软件帮你翻译)
  3. 挂载

一、 磁盘基础

1.硬盘的分类

机械硬盘:靠磁头转动找数据 慢 便宜

固态硬盘:靠芯片去找数据 快 贵

2.硬盘的物理结构

盘片:硬盘有多个盘片,每盘片有2面(正反两面)

磁头:每面一个磁头,并不是只有一个磁头,磁头也不会碰到盘面,磁头等于盘片数量

硬盘物理结构.png

3.磁盘的硬件架构

扇区:盘片被分为多个扇形区域,每个扇区存放512字节\color{red}{512字节}的数据(扇区越多容量越大) 是磁盘存放数据的最小单位

磁道:同一盘片不同半径的同心圆 ( 使用命令badblocks /dev/sda 查看硬盘坏道 )

柱面:不同盘片相同半径构成的圆(柱面和磁道数量相同)

磁道.png

4.磁盘的接口类型

磁盘的接口类型决定了数据的传输快慢

SATA:6Gbps,SATA数据端口与电源(长的电源,数据线短的)端口是分开的,即需要两条线,一条数据线,一条电源线

SAS:6Gbps,SAS是一整条线,数据端口与电源端口是一体化的,SAS中是包含供电线的,而SATA中不包含供电线。SATA标准其实是SAS标准的一个子集,二者可兼容,SATA硬盘可以插入SAS主板上,反之不行。

二、MBR与磁盘分区

windows 当中是可以不分区的

linux 当中一定要分区 才可以使用硬盘

1.为什么要分区

优点:①加快磁盘的读写性能 ②便于管理 ③使用不同的文件系统

缺点:①必须是连续的空间,不灵活;②无法扩容

2.分区方式

mbr 只支持2t以下 4分区

gpt 可以支持2t以上 128分区

3.MBR与磁盘分区

3.1 主引导记录(Master Boot Record)

  • MBR位于硬盘第一个物理扇区处
  • MBR中包含硬盘的主引导程序\color{red}{主引导程序}(作用:引导硬件找到操作系统)和硬盘分区表\color{red}{硬盘分区表}(作用:明确分区的范围)
  • 分区表有4个分区记录区,每个分区记录区占16字节。
  • 第一个扇区总共512字节,主引导程序446字节,分区表64字节,结束位2字节。

3.2 磁盘分区的表示

磁盘分区表示.png

3.3 磁盘分区结构

  • 硬盘中的主分区数目只有4个
  • 主分区和扩展分区的序号限制在1 ~4
  • 扩展分区再分为逻辑分区
  • 逻辑分区的序号将始终从5开始

逻辑分区.png

3.4 分区类型

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

  • 主分区 :可以直接使用
  • 扩展分区(有了扩展分区可以超过4个):不可以直接使用,不是真正的分区,它存放了逻辑分区的分区表
  • 逻辑分区:可以直接使用,逻辑分区的空间必须从扩展分区中得到

对于一个硬盘来说,主分区至少有 1 个,最多有 4 个;扩展分区可以没有,最多只能有 1 个,且主分区+扩展分区总共不能超过 4 个;逻辑分区可以有若干个。

三、文件系统

文件系统:用来管理(增删改查恢复)文件的程序,是需要安装在磁盘上的

1. 常用文件系统

1.1 XFS文件系统

CenOS 7系统中默认使用的文件系统

存放文件和目录数据的分区

高性能的日志型文件系统

根据所记录的日志在很短的时间内迅速恢复磁盘文件内容

1.2 swap 交换文件系统

为Linux系统建立交换分区

当内存不足时,将硬盘的空间转化为内存使用

swap分区

分区

格式化

挂载-------->开启

```swap命令
开启swap分区    swapon   -a  [设备名]
关闭swap分区    swapoff  -a  [设备名]

1.3 FAT16、FAT32

缺点是安全性差,且最大只能支持32GB分区,单个文件也只能支持最大4GB。

1.4 NTFS(xfs)

Windows默认的文件系统

NTFS文件系统所具备3个功能:错误预警功能、磁盘自我修复功能和日志功能,单个文件64GB

1.5 EXT4

Extended file system 4, 第四代扩展文件系统

CenOS 6系统中默认使用的文件系统

1.6 JFS

主要是为满足服务器的高吞吐量和可靠性需求而设计、开发的。单个文件最大限制16TB,该文件系统最大支持1PB的容量。收费!

2.文件系统的修复

```修复命令
fsck  /dev/sdb1  -y

e2fsck:    ext系列文件专用的检测修复工具
xfs_repair:xfs文件系统专用检测修复工具

四、 分区工具介绍

  • 分完区,不保存不生效有反悔的可能

fdisk : 2t及以下分区 推荐

gdisk : 全支持 2t以上再用

  • 分完区立马生效

parted : 全支持 ,不推荐 即时生效,小心使用

1. fdisk

fdisk 作用:分区;查看磁盘分区情况

命令效果
fdisk  -l查看磁盘分区信息
fdisk  -l  /dev/sdb查看sdb磁盘分区的信息
fdisk  设备名(必须是一整块的磁盘)对设备进行分区
fdisk.png
  • 交互指令

n 新建分区

w 保存

d 删除分区

p 打印分区情况

2. gdisk

用法同fdisk

五、 格式化

格式化的目的就是在磁盘上安装文件系统

1. 创建文件系统——mkfs命令

Make Filesystem,创建文件系统(格式化)。

两种命令格式\color{red}{两种命令格式}

mkfs  -t 指定分区类型  分区设备
mkfs.分区类型  分区设备            

常用分区类型有xfs 、 ext4

两种命令格式中,分区设备位置都要用绝对路径

mkfs.png

2. 创建交换文件系统——mkswap命令

命令格式\color{red}{命令格式}

 mkswap 分区设备       //创建交换文件系统,分区设备位置要使用绝对路径
 
 swapon 分区设备       //启用交换分区
 swapoff 分区设备      //停用交换分区
 swapon -s             //显示所有启用状态的交换分区

六、 挂载

外来的设备(移动硬盘 光驱 u盘 新加硬盘)如果想在Linux中使用,一定要挂载! 在Linux内部找一个空文件夹,和设备做上关联

访问文件夹=访问硬件设备的空间

1. 手动挂载 (临时挂载)

使用mount命令挂载是一次性的, 关机后挂载关系就会取消,下次开机启动时仍然需要重新挂载。

命令格式\color{red}{命令格式} :mount [ 选项 ] 存储设备 挂载点目录

mount  /dev/sdb1  /mnt
mount  /dev/sdb5  /mnt
选项效果
-tfstype 指定要挂载的设备上的文件系统类型,如:ext4,xfs
-ooptions:(挂载文件系统的选项),多个选项使用逗号分隔
         ro/rw    只读 / 读写
 remount    重新挂载

1.1 挂载规则:

  • 不能挂文件,只能挂文件夹
  • 通常挂载点一般是已存在的空的目录(挂载目录需事先存在,不能挂载不存在的目录。 最好挂载空目录,不然挂载点下原有文件可能丢失或被隐藏。)
  • 一个挂载点同一时间可以挂载多个设备,但只能看到最后一个设备的数据,其它设备上的数据将被隐藏
  • 挂载点目录不可被其他进程使用到

1.2 解挂载

命令格式\color{red}{命令格式} : umount 存储设备位置 / 挂载点目录

无法解挂载问题

①你在挂载目录 ——>切出来

②别人在挂载目录

fuser -v /mnt/ 可以看到谁在用

fuser -km /mnt/ 把用户都剔除,慎用!!

解挂载一般是为了重新挂载,可以使用remount命令进行操作

1.3 重新挂载

mount  -o  ro  /dev/sdb1  /mnt/            只读
mount  -o  rw,remount  /dev/sdb1  /mnt/    重新挂载为可读可写

2. 自动挂载 (永久挂载)

临时挂载reboot(重启)后就没了,所以使用mount命令手动挂载文件设备后,必须把挂载信息写入 vim /etc/fstab (/etc/fstab存放挂载文件)否则下次开机启动时仍然需要重新挂载。

挂载信息写入 /etc/fstab 后一定要用 mount -a 测试一下,刷新fstab里有的挂载项,不报错即可

UUID.png

在/etc/fstab 文件中,每一行记录对应一个分区或设备的挂载配置信息,从左到右包括六个字段(使用空格或者制表符分隔)。以 “/dev/mapper/centos-root / xfs defaults 0 0” 为例,各部分含义如下所述:

字段1:设备名或设备卷标名、或设备的UUID ( 建议使用UUID进行永久挂载!在vim编辑器内可使用 :r!blkid /dev/sdb1命令读入)。

字段2:文件系统的挂载点目录的位置。

字段3:文件系统类型,如 XFS、swap 等。

字段4:挂载参数,即 mount 命令”-o“选项后可使用的参数。例如,default、rw、ro、noexec 分别表示为默认参数、可读可写、只读、禁用执行程序。

字段5:表示文件系统是否需要 dump 备份(dump是一个备份工具)。一般设为1时表示需要,设为0时将被dump忽略。

字段6:该数字决定在系统启动时进行磁盘检查的顺序。0表示不进行检查, 1表示优先检查,2表示其次检查。根分区可设为1,其他分区设置为2。一般不进行检查,会影响系统性能。

  • 修改/etc/fstab 文件时,每一个字段都必须填写正确,如果有错误,下次开机时会有“Control-D"报错,导致无法正常启动。

注意:如果uuid写错了,可以直接等待进入系统后,出现ctrl+D 报错,输入root密码,然后修改/etc/fstab

七、磁盘常用命令

磁盘命令效果
fdisk分区;查看磁盘分区情况
gdisk分区
partprobe分完区后,系统未识别可以使用该命令刷新分区表
lsblk显示块设备(磁盘),可用来查看系统中的磁盘和分区情况,显示比较详细
  
mount可以显示所有的挂载的情况,也可以临时挂载
blkid查看设备的唯一标志符  UUID
df( disk free )查看挂载情况,磁盘剩余量
df  -T查看分区类型
df  -h显示单位 g m k

八、Linux中使用硬盘三步走实操

  1. 在虚拟机中添加硬盘
1虚拟机添加硬盘.png
  1. xshell中重启,更新磁盘情况
2reboot.png
  1. 分区
3分区.png 4分区.png
  1. 格式化
5格式化.png
  1. 挂载
6挂载.png
  1. 永久挂载
7永久挂载.png 8永久挂载.png