文章目录
- Linux运维——文件系统管理
-
- 一、硬盘结构
-
- 1、硬盘的逻辑结构
- 2、硬盘接口
- 二、文件系统
-
- 1、Linux文件系统的特性
- 2、Linux常见文件系统
- 三、常用的硬盘管理命令
-
- 1、df命令
- 2、du命令
- 3、fsck文件系统修复命令
- 4、显示磁盘状态dump2fs
- 5、查看文件的详细时间
- 6、判断文件类型
- 四、fdisk命令手工分区
-
- 1、查看系统所有硬盘及分区
- 2、开始磁盘分区
- 3、格式化建立文件系统
- 4、挂载分区
- 5、自动挂载
- 五、parted命令分区
-
- 1、parted交互模式
- 2、切换分区表
- 3、建立分区
- 4、格式化挂载分区
- 六、分配swap分区
-
- 1、分区,修改为swap分区ID
- 2、格式化分区
- 3、使用swap分区
Linux运维——文件系统管理
一、硬盘结构
1、硬盘的逻辑结构
每个扇区的大小是固定的,为
512Byte
。扇区也是磁盘的最小存储单位
硬盘的大小是使用“磁头数*柱面*扇区数*每个扇区的大小”计算的,其中磁头数(Heads)表示硬盘总共有几个磁头,也可以理解成为硬盘有几个盘面,然后乘以二;柱面数(Cylinders)表示硬盘每一面盘片有几条磁道;扇区数(Sectors)表示每条磁道上有几个扇区;每个扇区的大小一般是
512Byte
2、硬盘接口
-
硬盘接口(Integrated Drive Electronics,并口,即电子集成驱动器)也称作“IDE
硬盘”或“ATA
硬盘”,是早期机械硬盘的主要接口,PATA
硬盘的理论速度可以达到ATA133
(此速度为理论平均值),133MB/s
硬盘接口IDE
-
接口(SATA
,串口)是速度更高的硬盘标准,具备了更高的传输速度,并具备了更强的纠错能力。目前已经是Serial ATA
三代,理论传输速度达到了SATA
(此速度为理论平均值)600MB/s
- SCSI接口(Small Computer System Interface,小型计算机系统接口)广泛应用在服务器中,具有应用范围广、多任务、带宽大、CPU占用率低及支持热插拔等优点,理论传输速度达到了
320MB/s
二、文件系统
1、Linux文件系统的特性
- super block(超级块):记录整个文件的信息,包括block与inode的总量,已经使用的inode和block的数量,未使用的inode和block的数量,block与inode的大小,文件系统的挂载时间,最近一次写入的时间,最近一次的磁盘检验时间等。
- data block(数据块,也称作block):用来实际保存数据,block的大小(1KB、2KB或4KB)和数量在格式化后就已经决定,不能改变,除非重新格式化。每个block只能保存一个文件的数据,要是文件数据大于一个block块,则占用多个block块。Windows中磁盘碎片整理工具的原理就是把一个文件占用的多个block块尽量整理到一起,这样可以加快读写速度。
- inode(i节点):用来记录文件的权限(r、w、x),文件的所有者和所属组,文件的大小,文件的状态改变时间(ctime),文件的最近一次读取时间(atime),文件的最近一次修改时间(mtime),文件的数据真正保存的block编号每个文件需要占用一个inode。
2、Linux常见文件系统
-
:linux中最早的文件系统,由于在性能和兼容性上具有很多缺陷,现在已经很少使用ext
-
:是ext文件系统的升级版本,Red Hat Linux 7.2版本以前的系统默认都是ext2文件系统。于1993年发布,支持最大16TB的分区和最大2TB的文件ext2
-
:是ext2文件系统的升级版本,最大的区别就是带日志功能,以便在系统突然停止时提高文件系统的可靠性。支持最大16TB的分区和最大2TB的文件ext3
-
:是ext3文件系统的升级版。ext4在性能、伸缩性和可靠性方面进行了大量改进。ext4新增的向下兼容ext3、最大1EB文件系统和16TB文件、无限数量子目录、Extents连续数据块概念、多块分配、延迟分配、持久预分配、快速FSCK、日志校验、无日志模式、在线碎片整理、inode增强、默认启用barrier等。ext4
-
:XFS最早针对IRIX操作系统开发,是一个高性能的日志型文件系统,能够在断电以及操作系统奔溃的情况下保证文件系统数据的一致性。它是一个64位的文件系统,后台进行开源并且移植到了linux系统中,目前xfs
将XFS+LVM作为默认的文件系统。CentOS7.x
三、常用的硬盘管理命令
1、df命令
df -ahT
-a 显示特殊文件系统,这些文件系统几乎都是保存在内存中。
-h 单位不再只用KB,而是换算成习惯单位
-T 多出了文件系统类型一列
2、du命令
du [选项] [目录或文件名]
-a 显示每个子文件的磁盘占用量。默认只统计子目录的磁盘占用量
-h 使用习惯单位显示磁盘占用量,如KB,MB或GB
-s 统计总占用量,而不列出子目录和子文件的占用量
-
与du
的区别:df
是用于统计文件大小的,统计的文件大小是准确的;df是用于统计空间大小的,统计的剩余空间是准确的。du
-
:查看被删除的文件,然后手动kill也是可以的lsof|grep deleted
3、fsck文件系统修复命令
fsck -y /dev/sdb1
# 自动修复
4、显示磁盘状态dump2fs
[[email protected] ~]# dumpe2fs -h /dev/vda1
dumpe2fs 1.42.9 (28-Dec-2013)
Filesystem volume name: <none>
Last mounted on: /
Filesystem UUID: b98386f1-e6a8-44e3-9ce1-a50e59d9a170
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 1310720
Block count: 5242624
Reserved block count: 262131
Free blocks: 4033665
Free inodes: 1182776
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 1022
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Flex block group size: 16
Filesystem created: Thu Nov 29 11:34:09 2018
Last mount time: Wed Feb 12 16:54:34 2020
Last write time: Thu Feb 13 00:54:31 2020
Mount count: 22
Maximum mount count: -1
Last checked: Thu Nov 29 11:34:09 2018
Check interval: 0 (<none>)
Lifetime writes: 78 GB
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 28
Desired extra isize: 28
Journal inode: 8
First orphan inode: 1192671
Default directory hash: half_md4
Directory Hash Seed: 64c050c5-05fb-4ed0-9f92-f5abefc12cc4
Journal backup: inode blocks
Journal features: journal_incompat_revoke
Journal size: 128M
Journal length: 32768
Journal sequence: 0x001e0fae
Journal start: 1
5、查看文件的详细时间
stat 文件名
6、判断文件类型
file 文件名 # 判断文件类型
type 命令名 # 判断命令类型
四、fdisk命令手工分区
1、查看系统所有硬盘及分区
fdisk -l
2、开始磁盘分区
fdisk /dev/sdb 进行磁盘分区(分区还没有分区号)
- 命令帮助
命令 | 描述 |
---|---|
a | 设置可引导标记 |
b | 编辑bsd磁盘标签 |
c | 设置dos操作系统兼容标记 |
d | 删除一个分区 |
l | 显示已知的文件系统类型。82为Linux swap分区,83为Linux分区 |
m | 显示帮助菜单 |
n | 新建分区 |
o | 建立空白dos分区表 |
p | 显示分区列表 |
q | 不保存退出 |
s | 新建空白sun磁盘标签 |
t | 改变一个分区的系统id |
u | 改变显示记录单位 |
v | 验证分区表 |
w | 保存退出 |
x | 附加功能 |
- 有时会因为系统的分区表正忙,则会报错需要重新启动系统之后才能使新的分区表生效
3、格式化建立文件系统
mkfs -t ext4 /dev/sdb1
- mkfs命令非常简单易用,但是不可以调整分区的默认参数的。
mke3fs [选项] [分区设备文件名]
-t 指定格式化的文件系统
-b 指定block块的大小
-i 指定“字节/inode”的比例,也就是多少个字节分配一个inode
-j 建立带有ext3日志功能的文件系统
-L 给文件系统设置卷标名
4、挂载分区
mkdir 文件夹 # 创建文件夹
mount [目标分区文件] [需要挂载到的文件夹] # 挂载分区
mount # 查看所有已经挂载的分区和光盘
5、自动挂载
- 打开
/etc/fstab
- 第一列:设备文件名(建议使用UUID)
- 第二列:挂载点
- 第三列:文件系统
- 第四列:挂载选项
- 是否可以被备份:0不备份、1每天备份、2不定期备份
- 是否检测磁盘fsck :0不检测、1启动时检测、2启动后检测
- 查看分区的uuid
dumpe2fs [分区文件路径] | grep UUID
ls -l /dev/disk/by-uuid/
- 挂载错误修复
- 报错后输入root用户密码进入系统
- 使用
命令重新挂载根目录mount -o remount,rw /
- 打开
修改错误位置/etc/fstab
- 重新启动
五、parted命令分区
Linux系统中有两种常见的分区表MBR分区表(主引导记录分区表)和GPT分区表(GUID分区表),其中:
- MBR分区表:支持的最大分区为2TB;最多支持4个主分区,或3个主分区1个扩展分区
- GPT分区表:支持最大
的分区(18EB
)1EB=1024PB=1024*1024TB
1、parted交互模式
parted [需要分区的磁盘文件路径]
交互命令 | 描述 |
---|---|
| 显示所有的命令帮助 |
| 创建新的磁盘卷标(分区表) |
| 创建一个分区 |
| 给分区命名 |
| 显示分区表,活动设备,空闲空间,所有分区 |
| 退出 |
| 修复丢失的分区 |
| 删除分区 |
| 选择需要编辑的设备 |
| 改变分区标记 |
| 切换分区表的状态 |
| 设置默认的单位 |
| 显示版本 |
2、切换分区表
mklabel gpt
3、建立分区
mkpart
4、格式化挂载分区
- 使用bash中的mkfs命令将分区格式化为ext4文件系统
mkfs -t ext4 /dev/sdb1
- 挂载分区
mount /dev/sdb1 /disk1
六、分配swap分区
1、分区,修改为swap分区ID
- 查看swap分区信息
free -h
- 分区
fdisk /dev/sdb # 新建分区并使用t命令修改分区格式为swap分区
2、格式化分区
mkswap /dev/sdb1
3、使用swap分区
swapon 分区设备文件名
- swap分区开机自动挂载
/dev/sdb1 swap swap defaults 0 0