本章重点:会在Linux中使用硬盘
在Linux中使用硬盘分三步
- 分区 :方便管理,加快磁盘读写速度
- 格式化 (安装文件系统软件帮你翻译)
- 挂载
一、 磁盘基础
1.硬盘的分类
机械硬盘:靠磁头转动找数据 慢 便宜
固态硬盘:靠芯片去找数据 快 贵
2.硬盘的物理结构
盘片:硬盘有多个盘片,每盘片有2面(正反两面)
磁头:每面一个磁头,并不是只有一个磁头,磁头也不会碰到盘面,磁头等于盘片数量
3.磁盘的硬件架构
扇区:盘片被分为多个扇形区域,每个扇区存放的数据(扇区越多容量越大) 是磁盘存放数据的最小单位
磁道:同一盘片不同半径的同心圆 ( 使用命令badblocks /dev/sda 查看硬盘坏道 )
柱面:不同盘片相同半径构成的圆(柱面和磁道数量相同)
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中包含硬盘的(作用:引导硬件找到操作系统)和(作用:明确分区的范围)
- 分区表有4个分区记录区,每个分区记录区占16字节。
- 第一个扇区总共512字节,主引导程序446字节,分区表64字节,结束位2字节。
3.2 磁盘分区的表示
3.3 磁盘分区结构
- 硬盘中的主分区数目只有4个
- 主分区和扩展分区的序号限制在1 ~4
- 扩展分区再分为逻辑分区
- 逻辑分区的序号将始终从5开始
3.4 分区类型
常见的硬盘可以划分为、和。通常情况下主分区只有四个,而 扩展分区可以看成是一个特殊的主分区类型,在扩展分区中可以建立逻辑分区。主分区一般用来安装操作系统,扩展分区则多用来存储文件数据
- 主分区 :可以直接使用
- 扩展分区(有了扩展分区可以超过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 设备名(必须是一整块的磁盘) | 对设备进行分区 |
- 交互指令
n 新建分区
w 保存
d 删除分区
p 打印分区情况
2. gdisk
用法同fdisk
五、 格式化
格式化的目的就是在磁盘上安装文件系统
1. 创建文件系统——mkfs命令
Make Filesystem,创建文件系统(格式化)。
mkfs -t 指定分区类型 分区设备
mkfs.分区类型 分区设备
常用分区类型有xfs 、 ext4
两种命令格式中,分区设备位置都要用绝对路径
2. 创建交换文件系统——mkswap命令
mkswap 分区设备 //创建交换文件系统,分区设备位置要使用绝对路径
swapon 分区设备 //启用交换分区
swapoff 分区设备 //停用交换分区
swapon -s //显示所有启用状态的交换分区
六、 挂载
外来的设备(移动硬盘 光驱 u盘 新加硬盘)如果想在Linux中使用,一定要挂载! 在Linux内部找一个空文件夹,和设备做上关联
访问文件夹=访问硬件设备的空间
1. 手动挂载 (临时挂载)
使用mount命令挂载是一次性的, 关机后挂载关系就会取消,下次开机启动时仍然需要重新挂载。
:mount [ 选项 ] 存储设备 挂载点目录
mount /dev/sdb1 /mnt
mount /dev/sdb5 /mnt
| 选项 | 效果 |
|---|---|
| -t | fstype 指定要挂载的设备上的文件系统类型,如:ext4,xfs |
| -o | options:(挂载文件系统的选项),多个选项使用逗号分隔 |
| ro/rw 只读 / 读写 | |
| remount 重新挂载 |
1.1 挂载规则:
- 不能挂文件,只能挂文件夹
- 通常挂载点一般是已存在的空的目录(挂载目录需事先存在,不能挂载不存在的目录。 最好挂载空目录,不然挂载点下原有文件可能丢失或被隐藏。)
- 一个挂载点同一时间可以挂载多个设备,但只能看到最后一个设备的数据,其它设备上的数据将被隐藏
- 挂载点目录不可被其他进程使用到
1.2 解挂载
: 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里有的挂载项,不报错即可
在/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中使用硬盘三步走实操
- 在虚拟机中添加硬盘
- xshell中重启,更新磁盘情况
- 分区
- 格式化
- 挂载
- 永久挂载