磁盘管理和文件系统
一、磁盘基础
1、磁盘结构
磁盘又称作硬盘,它的结构分为物理结构和数据结构(逻辑结构)
物理结构:
- 盘片:硬盘有多个盘片,每盘片两面
- 磁头:每面一个磁头
数据结构:
- 扇区:盘片被分为多个扇形区域,每个扇区存放512字节的数据,硬盘的最小存储单位
- 磁道:同一盘片不同半径的同心圆,是由磁头再盘片表面划出的圆形轨迹
- 柱面:不同盘片相同半径构成的圆柱面,由同一半径圆的多个磁道组成
2、磁盘容量计算
硬盘存储容量=磁头数*磁道(柱面)数*每道扇区数*每扇区字节数(512字节)
3、磁盘区域定位及接口类型
区域定位:
我们可以用柱面/磁头/扇区来唯一定位磁盘上每一个区域
接口类型:
- IDE:并口数据线连接主板与硬盘,抗干扰性太羞,且排线占用空间较大,不利电脑内部散热,已逐渐被SATA所取代。
- SATA:抗干扰性强,支持热插拔等功能,速度快,纠错能力强。
- SCSI:小型机系统接口,SCSI硬盘广为工作站级个人电脑以及服务器所使用,资料传输时CPU占用率较低,转速快,支持热插拔等。
- SAS:是新一代的SCSI技术,和SATA硬盘相同,都是采取序列式技术以获得更高的传输速度,可达到6Gb/s。
4、MBR与磁盘分区表示
主引导记录(MBR:Master Boot Record):位于硬盘第一个物理扇区处,MBR中包含硬盘的主引导程序和硬盘分区表,分区表有4个分区记录区,每个分区记录区占16个字节。
在Linux中,一切皆文件,所以硬盘、分区等设备均表示为文件
5、磁盘分区结构
硬盘中的主分区数目只有4个,主分区和扩展分区的序号限制在1~4;扩展分区再划分就是逻辑分区,而逻辑分区的序号始终是从5开始。
二、文件系统类型
Linux支持的文件系统类型有:XFS、SWAP、EXT4、FAT32、NTFS、LVM
- XFS:CentOS 7系统默认使用的文件系统,它是存放文件和目录数据的分区,是高性能的日志型文件系统,特别擅长处理大文件,可支持上百万TB的存储空间
- EXT4:CentOS 6默认使用的文件系统
- SWAP:交换文件系统,作用是为Linux系统建立交换分区,可以理解为内存,一般设置为物理内存的1.5~2倍
其他的用的少,知道就行。
三、检查并确认新硬盘
1、fdisk命令
fdisk -l [磁盘设备]
此命令可以查看或管理磁盘分区
fdisk -l 查出来的每段含义:
-
Device(设备):分区的设备文件名称。
-
Boot:是否是引导分区。若是,则有" * ”标识。
-
Start:该分区在硬盘中的起始位置(柱面数)。
-
End:该分区在硬盘中的结束位置(柱面数) 。
-
Blocks:分区的大小,以 Blocks(块)为单位,默认的块大小为1024字节。
-
ID:分区对应的系统ID号。例如,83表示Linux中的XFS分区或EXT4分区、8e表示LVM逻辑卷。
-
System:分区类型
fdisk [磁盘文件]
此命令可以创建分区,使用此命令会进入交互模式
指令 | 功能 |
---|---|
m | 获取帮助菜单 |
n | 新建分区 |
p | 查看分区情况 |
d | 删除分区 |
t | 变更分区的类型 |
w | 保存分区操作并退出 |
q | 不保存分区操作并退出 |
然后我们查看一下:
2、添加硬盘
在虚拟机的设置里添加
选中硬盘
这样我们就添加了一个新硬盘,查看一下
这是,我们可以重启虚拟机或用以下命令在线刷新:
echo "- - -" > /sys/class/scsi_host/host0/scan
echo "- - -" > /sys/class/scsi_host/host1/scan
echo "- - -" > /sys/class/scsi_host/host2/scan
四、创建文件系统
1、mkfs命令
mkfs -t 文件系统类型 分区设备
2、mkswap命令
mkswap 分区设备
df -hT //查看文件系统类型
free -m //以M为单位查看
free -h //人性化查看
swapon 设备名 //打开swap
swapon -s //查看
swapoff 设备 //关闭swap
swapoff -a //关闭所有swap
五、挂载、卸载文件系统
挂载文件系统:
mount [-t 类型] 存储设备 挂载点目录
mount -o loop ISO镜像文件 挂载点目录
挂载文件系统、ISO镜像到指定文件
-t 可以不加,系统会自动识别文件类型
卸载文件系统:
umount 存储设备位置
或
umount 挂载点目录
六、总结和补充
1、Linux系统添加新硬盘:
1)插入新的硬盘 (2.5/3.5英寸的托盘插入服务器)
2)刷新识别(重启系统刷新或者执行命令在线刷新)
echo “- - -” > /sys/class/scsi_host/host0/scan
echo “- - -” > /sys/class/scsi_host/host1/scan
echo “- - -” > /sys/class/scsi_host/host2/scan
fdisk -l查看磁盘设备
3)fdisk 设备文件/dev/sdb
n:新建分区
p/e/1 :创建主分区/扩展分区、逻辑分区
1… : 设置分区号,主分区/扩展分区1-4,逻辑分区5~无穷大
起始扇区 : 一般直接回车,使用默认的值
终止扇区 : 一般设置大小,+xxG/M/K
t 设置分区类型ID,83是默认的Linux类型,82是swap,8e是 LVM,fd是 raid
p 查看分区状态
w/q 保存退出/不保存退出
4)格式化创建文件系统
- mkfs -t 类型xfs/ext4 分区文件/dev/sdb1
- mkfs.类型xfs/etx4
- mkswap 分区文件/dev/sdb1
5)挂载使用
- mount 分区文件 挂载目录
- swapon 分区文件
6)查看挂载情况 df -hT 或者swapon -s 或者free -m 或者mount
2、设置文件系统的自动挂载
Linux操作系统在每次开机时,会自动读取/etc/fstab文件的内容,自动挂载所指定的文件系统。
vim /etc/fstab
/dev/mapper/centos-swap swap swap defaults 0 0
字段 | 功能 |
---|---|
字段1 | 设备名或设备卷标名 |
字段2 | 文件系统的挂载点目录的位置 |
字段3 | 文件系统类型,如XFS、SWAP等 |
字段4 | 挂载参数,即mount命令"-o"选项后可使用的参数。例如,defaults(默认参数)、rw(可读写)、ro(只读)、noexec(禁用执行程序)。 |
字段5 | 表示文件系统是否需要dump备份(.dump是一个备份工具)。一般设为1时表示需要,设为0时将被dump忽略。 |
字段6 | 该数字决定在系统启动时进行磁盘检查的顺序。o表示不进行检查,1表示优先检查,2表示其次检查。根分区可设为1,其他分区设为2。 |
3、检查磁盘是否损坏
badblocks -sv /dev/sdb1
4、补充
fdisk用的是MBR,最高只能是2.2TB,大于2.2TB的磁盘或者卷要用以下两个命令
gdisk
parted
刷新磁盘
partprobe 指定设备
查看设备UUID号
blkid