一、设备文件
磁盘设备的设备文件命名: /dev/DEV_FILE
SCSI, SATA, SAS, IDE,USB: /dev/sd
虚拟磁盘: /dev/vd 、/dev/xvd
不同磁盘标识: /dev/sda, /dev/sdb, ...
同一设备上的不同分区: /dev/sda1, /dev/sda5
硬盘存储术语: head(磁头) track(磁道) cylinder(柱面) sector(扇区)512bytes
二、管理储存
如何使用分区:
- 设备识别
- 设备分区
- 创建文件系统
- 标记文件系统
- 在
/etc/fstab
文件中创建条目 - 挂载新的文件系统
为什么分区:
- 优化I/O性能
- 实现磁盘空间配额限制
- 提高修复速度
- 隔离系统和程序
- 安装多个OS
- 采用不同文件系统
分区方式:
1. MBR:Master Boot Record,1982年,使用32位表示扇区数,分区不超过2T
2. 0磁道0扇区:512bytes
446bytes: boot loader
64bytes:分区表,其中每16bytes标识一个分区
2bytes: 55AA
# MBR分区中一块硬盘最多有4个主分区,也可以3主分区+1扩展(N个逻辑分区)
3.MBR硬盘分区结构图
4.硬盘主引导记录MBR由4个部分组成
GPT分区:
GPT分区结构分为4个区域:
GPT头
分区表
GPT分区
备份区域
分区结构:
系统引导方式
BIOS+MBR与UEFI+GPT
BIOS :
UEFI
开机----->UEFI初始化----->引导操作系统----->进去系统
管理分区:
1.列出块设备 lsblk
2.管理MBR分区 fdisk
3.管理GPT分区 gdisk
4.高级分区操作 parted
5.刷新分区表 partprobe
parted命令
parted的操作都是实时生效的,小心使用
格式:parted [选项]... [设备 [命令 [参数]...]...]
列出分区信息: parted -l
分区: parted /dev/sdb mkpart primary 1 200
分区工具fdisk和gdis
子命令:
-p 分区列表
-t 更改分区类型
-n 创建新分区
-d 删除分区
-v 校验分区
-u 转换单位
-w 保存并退出
-q 不保存退出
查看内核是否已经识别新的分区 :cat /proc/partations
新增分区用:
partx -a /dev/DEVICE
kpartx -a /dev/DEVICE -f: force
删除分区用:partx -d --nr M-N /dev/DEVICE
文件系统:/lib/modules/`uname -r`/kernel/fs
Linux常用文件系统类型:
1. ext2:Extended file system 适用于那些分区容量不是太大,更新也不频繁的情况,例如 /boot 分区
2. ext3:是 ext2 的改进版本,其支持日志功能,能够帮助系统从非正常关机导致的异常中恢复
3. ext4:是 ext 文件系统的最新版。提供了很多新的特性,包括纳秒级时间戳、创建和使用巨型文件16TB)、最大1EB的文件系统,以及速度的提升
4. xfs:SGI,支持最大8EB的文件系统
5. swap
6. iso9660 光盘
7. btrfs(Oracle)
8. reiserfs
Windows:FAT32, exFAT,NTFS
Unix: FFS(fast), UFS(unix), JFS2
网络文件系统:NFS, CIFS
集群文件系统:GFS2, OCFS2(oracle)
分布式文件系统: fastdfs,ceph, moosefs, mogilefs, glusterfs, Lustre
RAW:未经处理或者未经格式化产生的文件系统
文件系统的组成部分:
内核中的模块:ext4, xfs, vfat
Linux的虚拟文件系统:VFS
用户空间的管理工具:mkfs.ext4, mkfs.xfs,mkfs.vfat
创建文件系统:
mkfs命令:
(1) mkfs.FS_TYPE /dev/DEVICE
ext4
xfs
btrfs
vfat
(2) mkfs -t FS_TYPE /dev/DEVICE
-L 'LABEL' 设定卷标
mke2fs:ext系列文件系统专用管理工具
.选项:
-t {ext2|ext3|ext4} 指定文件系统类型
-b {1024|2048|4096} 指定块大小
-L ‘LABEL’ 设置卷标
-j 相当于 -t ext3 mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3
-i # 为数据空间中每多少个字节创建一个inode;不应该小于block大小
-N # 指定分区中创建多少个inode
-I 一个inode记录占用的磁盘空间大小,128—4096
-m # 默认5%,为管理人员预留空间占总空间的百分比
-O FEATURE[,...] 启用指定特性
-O ^FEATURE 关闭指定特性
blkid可以查看跨设备属性信息:blkid [OPTION]... [DEVICE]
选项:-U UUID 根据指定的UUID来查找对应的设备
-L LABEL 根据指定的LABEL来查找对应的设备
e2label:管理ext系列文件系统的LABEL ----->e2label DEVICE [LABEL]
findfs :查找分区 findfs [options] LABEL=<label>
findfs [options] UUID=<uuid>
tune2fs:重新设定ext系列文件系统可调整参数的值
-l 查看指定文件系统超级块信息;super block
-L 'LABEL’ 修改卷标
-m # 修预留给管理员的空间百分比
-j 将ext2升级为ext3
-O 文件系统属性启用或禁用,
–O ^has_journal
-o 调整文件系统的默认挂载选项,
–o ^acl
-U UUID 修改UUID号
dumpe2fs将磁盘块分组管理
dumpe2fs
-h:查看超级块信息,不显示分组信息
超级块和inode table
文件系统检测和修复
- 常发生于死机或者非正常关机之后
- 挂载为文件系统标记为“no clean”
- 注意:一定不要在挂载状态下修复
fsck文件系统检查 注意:一定不要在挂载状态下执行下面命令修复
-a 自动修复
-r 交互式修复错误
e2fsck:ext系列文件专用的检测修复工具
-y 自动回答为yes
-f 强制修复
-p 自动进行安全的修复文件系统问题
xfs_repair:xfs文件系统专用检测修复工具
-f 修复文件,和设备
-n 只检查
-d 允许修复只读的挂载设备,在单用户下修复 / 时使用,然后立即reboot
挂载mount
mount [-fnrsvw] [-t vfstype] [-o options] device mountpoint
通过查看/etc/mtab
文件显示当前已挂载的所有设备
mount [-fnrsvw] [-t vfstype] [-o options] device dir
选项:
-t vsftype 指定要挂载的设备上的文件系统类型
-r readonly,只读挂载
-w read and write, 读写挂载
-n 不更新/etc/mtab,mount不可见
-a 自动挂载所有支持自动挂载的设备(定义在了/etc/fstab文件 中,且挂载选项中有auto功能)
-L 'LABEL' 以卷标指定挂载设备
-U UUID 以UUID指定要挂载的设备
-B --bind 绑定目录到另一个目录上
查看挂载情况
findmnt {MOUNT_POINT|/dev/DEVICE}
查看正在访问指定文件系统的进程
lsof MOUNT_POINT
fuser -v MOUNT_POINT
终止所有正在访问指定文件系统的进程
fuser -km MOUNT_POINT
卸载
umount {/dev/DEVICE|MOUNT_POINT}