目录
一,磁盘介绍
(一)磁盘表示方法
磁盘表示方法
(1) /dev/ hd 接口类型为IDE的磁盘
sd 接口类型为SCSI的磁盘
(2)第N块磁盘 /dev/sd[a-z]
(3)磁盘中的分区表示
主分区 /dev/sda1 /dev/sda2 /dev/sda3 /dev/sda4
逻辑分区表示
/dev/sda5
/dev/sda6......依此类推
(二)分区类型
(1)MBR 只能划分4个主分区,且磁盘容量小于2TB
主分区
扩展分区 逻辑分区
(2)GPT
理论上无限个分区
支持磁盘容量大于2TB的分区划分
(三)文件系统
操作系统组织文件的管理方法
(四)文件系统类型
(1)XFS Linux 7之后的系统默认文件系统
(2)EXT4|3|2 Linux 7 之前的系统默认文件系统
(3)SWAP
交换分区
当物理内存不足时,临时充当内存使用,防止系统崩溃
容量 1.5|2 * 物理内存大小
(五)inode节点
(1) inode节点内容
● inode 编号
● 用来识别文件类型
● 文件的链接数目
● 属主的ID (UID)
● 属组 ID (GID)
● 文件的大小
● 文件所使用的磁盘块的实际数目
● 最近一次修改的时间
● 最近一次访问的时间
● 最近一次更改的时间
(2)Linux查找文件过程
(1)系统找到这个文件名对应的inode号码
(2)通过inode号码,获取inode信息
(3)根据inode信息,找到文件数据所在的block,读出数据
(3)文件名与inode的区别
对于系统来说,文件名只是inode号码便于识别的别称或绰号。
文件名包含特殊字符,无法正常删除。这时,直接删除inode节点,就能起到删除作用
移动文件或重命名文件,只是改变文件名,不影响inode号码
打开一个文件以后,系统就以inode号码来识别这个文件,不再考虑文件名。因此,通常来说,系统无法从inode号码得知文件名
二,磁盘操作
(一)查看
fdisk -l
lsblk
(二)添加磁盘
(1) linux添加磁盘后默认是不识别
(2) 重启
(3) 热扫描 for i in `ls /sys/class/scsi_host`;do echo "- - -" > $i/scan;done
lsblk查看是否成功
(三)fdisk 分区
(1)不支持2tb以上的磁盘
(2)交互式 fdisk /dev/sdb
命令:
p 打印分区情况
n 新建分区:
Select (default p): 设置分区类型
分区号 (3,4,默认 3): 设置分区号
起始 扇区 (4196352-41943039,默认为 4196352): 设置容量起始扇区,一般都是默认
Last 扇区, +扇区 or +size{K,M,G} (4196352-41943039,默认为 41943039):设置容量大小,一般采用+size
w 保存退出
子命令:
p 创建主分区
e 创建扩展分区 子命令 l 创建逻辑分区
l 列出分区类型标识:
82 swap分区
83 linux基本分区
8e LVM逻辑卷
t 修改分区类型标识
d 删除分区
w 保存分区并退出
q 不保存退出
(3)非交互式
vim part.txt n 回车p 回车回车回车w回车
fdisk /dev/sdb < part.txt
(4)parted
支持2TB以上的磁盘
非交互式
parted /dev/sdb mklabel gpt mkpart 1 ext3 1 5T
parted 磁盘列表 mklabel 分区类型 mkdpart 文件系统类型 起始位置 容量大小
交互式
parted /dev/sdb 对/dev/sdb进行分区或管理操作
(parted) mklabel gpt 定义分区表格式 (常用的有msdos和gpt分区表格式,msdos不支持2TB以上容量的磁盘,所以大于2TB的磁盘选gpt分区表格式)
(parted) mkpart p1 创建第一个分区,名称为p1(p1只是第一个分区的名称,用别的名称也可以,如part1)
File system type? [ext2]? ext3 定义分区格式(不支持ext4,想分ext4格式的分区,可以通过mkfs.ext4格式化成ext4格式)
Start? 1 定义分区的起始位置 (单位支持K,M,G,T)
End? 5T 定义分区的结束位置(单位支持K,M,G,T)
(parted) print 查看当前分区情况
(parted) rm rm删除命令 (删除之前必须确保分区没有被挂载)
Partition number? 1 删除第一个分区
(四)parted 分区
(1)支持2TB以上的磁盘
(2)非交互式
parted -s 磁盘列表 mklabel 分区类型 mkpart 文件系统类型 起始位置 容量大小(可以使用百分比表示)
第一个分区 parted -s /dev/sdb mklabel gpt mkpart 1 ext3 1 50%
非第一分区 parted -s /dev/sdb mkpart 2 ext3 51% 100%
(3) 交互式
parted /dev/sdb 对/dev/sdb进行分区或管理操作
(parted) mklabel gpt 定义分区表格式(常用的有msdos和gpt分区表格式,msdos不支持2TB以上容量的磁盘,所以大于2TB的磁盘选gpt分区表格式)
(parted) mkpart p1 创建第一个分区,名称为p1(p1只是第一个分区的名称,用别的名称也可以,如part1)
File system type? [ext2]? ext3 定义分区格式(不支持ext4,想分ext4格式的分区,可以通过mkfs.ext4格式化成ext4格式)
Start? 1 定义分区的起始位置(单位支持K,M,G,T)百分比
End? 5T 定义分区的结束位置(单位支持K,M,G,T)百分比
(parted) print Number Start End Size File system Name 标志 查看当前分区情况
(parted) rm rm删除命令 (删除之前必须确保分区没有被挂载)
Partition number? 1 删除第一个分区 Number
(五)格式化
(一)构建操作系统对分区的文件组织方法
(二)mkfs 格式化分区
选项-t 指定文件系统类型
-f 强制格式化
案例 mkfs -t xfs -f /dev/sdb1
(六)光驱
块设备,挂载后才能访问
光盘镜像 : 应用软件镜像 .iso
系统镜像:.iso .gho
三,挂载磁盘
作用: 能够让使用者对块设备能够进行直接操作
(一)手动挂载: 一次性挂载,重启失效
mount
(1)查看系统挂载情况: 可读写: rw 只读 ro
磁盘配额: noquota 不支持, usrquota,用户配额 grpquota,组配额
(2) 挂载设备
语法 mount [选项] 设备源 挂载点(目录)
选项
-a, --all 挂载所有/etc/fstab文件中书写的挂载条目,一般用来测试自动挂载是否有错误
-o, --options
是否可读写 rw ro
重新挂载 remount
磁盘配额 usrquota,用户配额 grpquota,组配额 noquota,不支持配额
defaults
(二)自动挂载
重启生效,必须保证书写正确,否则系统启动异常
(1) /etc/fstab
/dev/mapper/centos-root / xfs defaults 0 0
设备源|UUID= 挂载点 文件系统类型 挂在选项 开机自检 备份
使用UUID号的挂载比设备源更精确
(2)设备的UUID号
操作系统对设备的唯一识别符
blkid
(三)卸载
umount
语法 umount 设备源 | 挂载点
选项 -a, --all 卸载所有非占用挂载
四,LVM逻辑卷
(一)存储位置
/dev/mapper
/dev/vgName
(二)物理卷
查看 pvdisplay (详细)
扫描 pvscan (粗略)
创建 pvcreate
删除 pvremove
(三)卷组
查看 vgdisplay
扫描 vgscan
创建 vgcreate vgName pvName(/dev/sdb1)
删除 vgremove vgName
扩容 vgextend vgName pvName
缩容 vgreduce vgName pvName
(四)逻辑卷
查看 lvdisplay
扫描 lvscan
创建 lvcreate
删除 lvremove
扩容 lvextend /dev/testvg/tstlv -L +1G
lvextend lvPath -L +size
缩容 lvreduce /dev/testvg/tstlv -L -1G
lvreduce lvPath -L -size
(五)案例
(1)LVM卷创建流程
fdisk /dev/sdb
创建分区
创建物理卷 pvcreate /dev/sdb1 /dev/sdb2 /dev/sdb3
创建卷组 vgcreate testvg /dev/sdb1 /dev/sdb2 /dev/sdb3
创建逻辑卷 lvcreate -n tstlv testvg -L 5G /dev/sdb1 /dev/sdb2
若要还原,必须按照以下顺序删除 lv-vg-pv
挂载使用 mkdir /testlv
mkfs.xfs /dev/mapper/testvg-tstlv /testlv