一、磁盘概述
1.磁盘表示方法/dev/
hd接口类型为IDE的磁盘sd接口类型为SCSI的磁盘接口类型为SCSI的磁盘
第N块磁盘/dev/sd[a-z]
磁盘中的分区表示
主分区 /dev/sda1,/dev/sda2,/dev/sda3,/dev/sda4
扩展分区(逻辑分区表示) /dev/sda5,/dev/sda6
2.分区类型
MBR 特点:只能划分4个主分区,且磁盘容量小于2TB
GPT 特点:理论上无限个分区,支持磁盘容量大于2TB的分区划分
3.文件系统
文件系统是操作系统组织文件的管理方法
文件系统类型XFS(Linux 7之后的系统默认文件系统),EXT4|3|2(Linux 7 之前的系统默认文件系统),SWAP(交换分区,当物理内存不足时,临时充当内存使用,防止系统崩溃)
4.inode节点
(1)inode节点内容
● inode 编号
● 用来识别文件类型
● 文件的链接数目
● 属主的ID (UID)
● 属组 ID (GID)
● 文件的大小
● 文件所使用的磁盘块的实际数目
● 最近一次修改的时间
● 最近一次访问的时间
● 最近一次更改的时间
(2)Linux查找文件过程
系统找到这个文件名对应的inode号码
通过inode号码,获取inode信息
根据inode信息,找到文件数据所在的block,读出数据
(3)文件名与inode的区别
对于系统来说,文件名只是inode号码便于识别的别称或绰号。
文件名包含特殊字符,无法正常删除。这时,直接删除inode节点,就能起到删除作用
移动文件或重命名文件,只是改变文件名,不影响inode号码
打开一个文件以后,系统就以inode号码来识别这个文件,不再考虑文件名。因此,通常来说,系统无法从inode号码得知文件名
二、磁盘操作
1.查看与添加磁盘
查看磁盘:
fdisk -l
lsblk
添加磁盘:
linux添加磁盘后默认是不识别需重启或热扫描(for i in `ls /sys/class/scsi_host`;do echo "- - -" > $i/scan;done)再lsblk查看是否成功
2.分区
(1)fdisk
特点:不支持2TB以上的磁盘
1.交互式 fdisk /dev/sdb
进入后的操作命令
p 打印分区情况
n新建分区子命令p创建主分区e创建扩展分区子命令l创建逻辑分区
l 列出分区类型标识82 swap分区83linux基本分区8e LVM逻辑卷
t 修改分区类型标识
d 删除分区
w保存分区并退出
q不保存退出
2.非交互式
操作方式:
1先创建一个文件(vim part.txt)
2.里面输入步骤
3.fdisk /dev/sdb < part.txt
(2)parted
特点:支持2TB以上的磁盘
非交互式 parted -s 磁盘列表 mklabel 分区类型 mkpart 文件系统类型 起始位置 容量大小(可以使用百分比表示)
交互式
对/dev/sdb进行分区或管理操作
定义分区表格式(常用的有msdos和gpt分区表格式,msdos不支持2TB以上容量的磁盘,所以大于2TB的磁盘选gpt分区表格式)
创建第一个分区名称为p1(p1只是第一个分区的名称,用别的名称也可以,如part1)
定义分区格式(不支持ext4,想分ext4格式的分区,可以通过mkfs.ext4格式化成ext4格式)
定义分区的起始位置(单位支持K,M,G,T)百分比
定义分区的结束位置(单位支持K,M,G,T)百分比
查看当前分区情况 Number Start End Size File system Name 标志
3.格式化
构建操作系统对分区的文件组织方法
mkfs格式化分区
选项:
-t 指定文件系统类型
-f 强制格式化
4.挂载
作用:能够让使用者对块设备能够进行直接操作
(1)手动挂载
特点:一次性挂载,重启失效
mount 查看系统挂载情况
语法:mount [选项] 设备源 挂载点(目录)
选项:
-a, --all 挂载所有/etc/fstab文件中书写的挂载条目,一般用来测试自动挂载是否有错误
-o, --options
是否可读写 rw ro
重新挂载remount
磁盘配额 usrquota,用户配额
grpquota,组配额
noquota,不支持配额
(2)自动挂载
特点:重启生效,必须保证书写正确,否则系统启动异常
5.卸载
umount
语法:umount 设备源 | 挂载点
选项:-a, --all 卸载所有非占用挂载
三、LVM逻辑卷
优势:动态扩缩容不影响原始数据
存储位置 /dev/mapper /dev/vgName
1、物理卷中的操作命令
查看pvdisplay
扫描 pvscan
创建 pvcreate
删除 pvremove
2、卷组中的操作命令
查看 vgdisplay
扫描 vgscan
创建 vgcreate vgName pvName(/dev/sdb1)
删除 vgremove vgName
扩容 vgextend vgName pvName
缩容 vgreduce vgName pvName
3、逻辑卷中的操作命令
查看lvdisplay
扫描 lvscan
创建 lvcreate
删除 lvremove
扩容 lvextend /dev/testvg/tstlv -L +1G lvextend lvPath -L +size
缩容 lvreduce /dev/testvg/tstlv -L -1G lvreduce lvPath -L -size
总结
本文学习Linux磁盘管理。