Linux磁盘管理(其一)
目录
一、概述
1.1、 磁盘表示方法
/dev/ hd 接口类型为IDE的磁盘
sd 接口类型为SCSI的磁盘
第N块磁盘 /dev/sd[a-z]
磁盘中的分区表示
主分区 /dev/sda1
/dev/sda2
/dev/sda3
/dev/sda4
扩展分区(逻辑分区表示) /dev/sda5
/dev/sda6
....
1.2、 分区类型
MBR 只能划分4个主分区,且磁盘容量小于2TB
主分区
扩展分区(逻辑分区)
GPT 理论上无限个分区,支持磁盘容量大于2TB的分区划分
1.3、 文件系统
操作系统组织文件的管理方法
1.4、 文件系统类型
XFS Linux 7之后的系统默认文件系统
EXT4|3|2 Linux 7 之前的系统默认文件系统
SWAP 交换分区(当物理内存不足时,临时充当内存使用,防止系统崩溃)
容量 1.5|2 * 物理内存大小
1.5、 inode节点
1.5.1、 inode节点内容
● inode 编号
● 用来识别文件类型
● 文件的链接数目
● 属主的ID (UID)
● 属组 ID (GID)
● 文件的大小
● 文件所使用的磁盘块的实际数目
● 最近一次修改的时间
● 最近一次访问的时间
● 最近一次更改的时间
1.5.2、 Linux查找文件过程
(1)系统找到这个文件名对应的inode号码
(2)通过inode号码,获取inode信息
(3)根据inode信息,找到文件数据所在的block,读出数据
1.5.3、 文件名与inode的区别
(1)对于系统来说,文件名只是inode号码便于识别的别称或绰号。
(2)文件名包含特殊字符,无法正常删除。这时,直接删除inode节点,就能起到删除作用
(3)移动文件或重命名文件,只是改变文件名,不影响inode号码
(4)打开一个文件以后,系统就以inode号码来识别这个文件,不再考虑文件名。因此,通常来说,系统无法从inode号码得知文件名
1.6、 运维案例
操作系统无法打开应用程序 磁盘容量不足
操作系统重启后无法正常进去系统 磁盘inode节点消耗殆尽
操作系统进入不了图形界面 /tmp/.X0-lock 无法创建或者关机时没有被删除
二、磁盘操作
2.1、 查看
fdisk -l
lsblk
2.2、 添加磁盘(linux添加磁盘后默认是不识别)
查看显示的方法,两种方式:
1.重启
2.热扫描
先cd进入/sys/class/scsi_host/目录下
输入命令 for i in `ls ./`;do echo "- - -" > $i/scan;done
然后 lsblk查看是否成功
2.3、 分区
2.3.1、 fdisk(不支持2TB以上的磁盘)
2.3.1.1、 交互式
fdisk /dev/sdb
2.3.1.1.1、 命令
p 打印分区情况
n 新建分区
分区类型:
p 主分区(0主分区,0拓展分区,4个空余分区)
e 拓展分区
选择 (默认 P 主分区):
2.3.1.1.2、新建分区
Select (default p): 设置分区类型(默认P主分区)
分区号 (1,4,默认1): 设置分区号
起始 扇区 (2048,默认为 41943039): 设置容量起始扇区(一般都是默认)
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039): 设置容量大小,一般采用+size
w 保存退出
l 列出分区类型标识(几个重点需要记住的标识)
82 swap分区 83 linux基本分区 8e LVM逻辑卷
t 修改分区类型标识
d 删除分区
w 保存分区并退出
q 不保存退出
2.3.1.1.3、 子命令
p 创建主分区
e 创建扩展分区
l 创建逻辑分区
2.3.1.2、 非交互式
vim part.txt
part.txt文件内容: n |
p |
回车 |
回车 |
+1024M |
w |
fdisk /dev/sdb < part.txt
输入lsblk验证
2.3.2、 parted
支持2TB以上的磁盘
非交互式:
parted /dev/sdb mklabel gpt mkpart 1 ext3 1 5T
parted | /dev/sdb | mklabel gpt | mkpart 1 ext3 | 1 | 5T | ||
工具名称 | 磁盘列表 | 创建一个 GPT格式的分区表 | 创建一个名为“1”的分区 文件系统为 ext3 | 起始位置 | 容量大小 |
交互式
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 删除第一个分区