磁盘管理与文件系统
硬盘结构
硬盘的物理结构
- 盘头:硬盘有多个盘片,每盘片两面
- 磁头:每面一个磁头
硬盘的数据结构
- 扇区:盘片被分为多个扇形区域,每个扇区存放512字节的数据,是硬盘的最小存储单位
- 磁道:同一盘片不同半径的同心圆,是由磁头在盘片表面划出的圆形轨迹
- 柱面:不同盘片相同半径构成的圆柱面,由同一半径圆的多个磁道组成‘
硬盘存储容量=磁头数x磁道(柱面)数x每道扇区数x每扇区字节数(512字节)
可以用柱面/磁头/扇区来唯一定位磁盘上每一个区域
磁盘的接口种类
IDE: 并口数据线连接主板与硬盘,抗干扰性太差,且排线占用空间较大,不利电脑内部散热,已逐渐被 SATA 所取代
SATA:抗干扰性强,支持热插拔等功能,速度快,纠错能力强
SCSI:小型机系统接口,SCSI硬盘广为工作站级个人电脑以及服务器所使用,资料传输时CPU占用率较低,转速快,支持热插拔等
SAS:是新一代的SCSI技术,和SATA硬盘相同,都是采取序列式技术以获得更高的传输速度,可达到 6Gb/s
磁盘分区表示
Linux中将硬盘、分区等设备均表示为文件
/dev/sdb5
sd 表示SCSI设备 hd 表示IDE设备
磁盘的顺序号,以字母a、b、c…表示
分区的顺序号,以数字1、2、3…表示
主分区从1-4,第一个逻辑分区始终从5开始
主引导记录(MBR)磁盘分区
- MBR时主引导记录,位于第一块硬盘(/dev/sda)的第一个物理扇区处
- MBR中含硬盘的主引导程序和硬盘分区表,MBR总共512字节
- 前446字节时主引导记录,分区表保存在MBR扇区中的第477~510字节中
- 分区表有4个分区记录区,每个分区记录区占16字节
主启动记录(MBR)磁盘分区支持最大卷为2.2TB,每个磁盘最多有4个主分区或3个主分区、1个扩展分区和在扩展分区里面分多给逻辑分区
文件系统类型
XFS 文件系统
存放文件和目录数据的分区
- 高性能的日志型文件系统,擅长处理大文件,可支持上百万TB的存储空间
- CentOS7系统中默认使用的文件系统
SWAP 交换文件系统
- 为Linux系统建立交换分区
- 一般设置为物理内存的1.5~2倍
Linux 支持的其他文件系统类型
EXT4/3、FAT32、NTFS、LVM[逻辑卷|可伸缩的]
fdisk 检测并确认新硬盘
查看或管理磁盘分区
fdisk | [选项] | 磁盘设备 |
---|
交互模式中的常用命令
- -m:获取帮助菜单
- -p 查看分区情况
- -n新建分区
- -d删除分区
- -t 变更分区的类型
- -w保存操作退出
- -q不保存操作退出
Device(设备):分区的设备文件名称
Boot:是否是引导分区,若是,则有"*"标识
Start:该分区在硬盘中的起始位置(柱面数)
End:该分区在硬盘中结束位置(柱面数)
Blocks:分区的大小,以 Blcoks (块) 为单位,默认的块大小为1024字节
Id:分区对应的系统 ID 号,例如,83表示Linux中的XFS分区或EXT4分区、8e表示LVM逻辑卷
System:分区类型
mkfs 创建文件系统
Make Filesystem 创建文件系统 (格式化)
mkfs | [选项] | 文件系统类型 | 分区设备 |
---|
或者
mkfs.xfs | 文件系统类型 | 分区设备 |
---|
常用选项
-h 显示分区的容量单位
-i 显示分区的inode号码数量
-T 显示文件系统的类型
举例:mkfs -t xfs /dev/sdb
格式化后还需要挂载点
开始挂载
mkdir /data
mount /dev/sdb1/data
mkswap 创建交换文件系统
mkswap | 分区设备 |
---|
swapon /dev/sdb1 #启用新增加交换分区
swapon -s #查看交换分区
swapoff /dev/sdb1 #关闭指定的交换分区
free -m #查看总的swap状态信息
mount 挂载文件系统
挂载文件系统、ISO镜像到指定文件夹
mount | [-t类型] | 存储设备 | 挂载点目录 |
---|
mount -o loop ISO镜像文件 挂载点目录
常用选项
-t 用于指定文件类型
-o 挂载参数列表,以英文逗号分割
-a 将/etc/fstab里面的挂载项自动挂载一遍
unmount 卸载已挂载的文件系统
umount | 存储设备位置 |
---|
或
umount | 挂载点目录 |
---|
常用选项
-if 强制卸载
卸载前提:挂载的设备或者目录没有被使用中如显示 目标忙 则需要先退出当前挂载点目录
没挂载时存放在根目录的文件系统中
挂载后存放在文件系统中而不是目录中
(只是挂载才能在目录里看到里面的文件而已)
查看设备的UUID和文件系统类型
blkid | [设备] |
---|
设置文件系统的自动挂载
Linux 操作系统在每次开机时,会自动读取/etc/fstab文件的内容,自动挂载所指定的文件系统
vim /etc/fstab
/dev/sdb1 /opt xfs defaults 0 0
/dev/sr0 /mnt iso9660 defaults 0 0
- 第1字段:分区名或设备卷标名
- 第2字段:文件系统的挂载点目录的位置
- 第3字段:文件系统类型,如 xfs、swap 等
- 第4字段:挂载参数,即mount命令"-o"选项后可使用的参数
- 第5字段:表示文件系统是否需要 dump 备份
- 第6字段:该数字决定在系统启动时进行磁盘检查的顺序
0表示不进行检查、1表示优先检查、2表示其次检查 根分区应设置为1,其他分区设置为2
★磁盘挂载实验
创建分区步骤
n
--> p 主分区、e 扩展分区、l逻辑分区
--> 设置分区:1 (范围1-4,如按 Enter 键接受默认值)
--> 设置分区大小:+20G (指定大小为 20GB,如按 Enter 键接受默认值表示所有空间)
--w 保存
给新的硬盘分区
fdisk /dev/sdb
设置分区格式
给分区设置xfs格式
n p Enterx2 w
查看分区情况
fdisk -l
将分区格式化
mkfs.xfs -f /dev/sdb1
我该如何选择文件系统类型?
df -hT 可以查看当前的文件系统类型
挂载分区
mkdir /data1
mount -t xfs /dev/sdb1 /data1/
★实现开机自动挂载分区
vim /etc/fstab
★实现将所有普通用户宿主目录存储在新挂载的磁盘上
vi /etc/default/useradd
将/home改为/data1
★实现新分区挂载到/home目录
mkdir user.bak
mv /home/cat /user.bak
mount dev/sdb1 /home
mv /user.bak/cat /home
★排错:如果新挂载的硬盘不显示
变更硬盘的分区设置以后,建议最好将系统重启一次,或者执行"partprobe"命令使操作系统检测新的分区表情况,以防格式化分区时损坏硬盘中已有的数据
- 重启
- 使用指令:partprobe /dev/sdb1
★使用parted挂载3T硬盘的方法
一、查看新增硬盘名称
fdisk -l
二、进入parted分区模式
parted /dev/sdb
三、格式化分区
mkfs.xfs /dev/sdb1
四、挂载分区
mkdir /data
mount /dev/sdb1 /data