计算机小白,欢迎大家小窗骚扰
Linux_管理文件系统
知识要点
文件系统类型
文件系统使用
文件系统的转换
移动硬盘、u盘使用

硬盘的术语
linux_管理文件系统
文件系统概念
文件系统是指文件的组织与管理结构,是一个有关于磁盘中各种有用信息的记录——即是保存以下信息的结构记录表
当前所使用磁盘的容量信息
磁盘的可用信息,包括已占用和剩余的空间;
文件与目录的属性;
文件与目录的在磁盘中确切地址与链接信息。
一句话总结:文件系统就是管理这块(分区)文件的机制或者说是组织方式。
文件系统类型
1):文件系统
Linux 支持多种文件系统
ext2:Linux基本文件系统
ext3:ext2的增强版本
ext4:ext文件系统的第四个版本(rhel6. centos6默认)(rhel7.centos7默认是XFS)
swap:交换文件系统
nfs:网络文件系统,适合Linux或Unix机器间共享
smbfs:适合Linux或Unix和windows机器间共享
vfat:windows早期文件系统
ntfs:windows默认文件系统,功能非常强大
iso9660:CD光盘的只读文件系统
GFS:google专用存储海量搜索数据而设计的专用文件系统
reiserfs:早期linux使用的日志功能的文件系统

2):Linux内核采用虚拟文件系统层(VFS),通过该中间层对各类文件系统提供了完美的支持。对于用户来说,这些文件系统几乎是透明的,用户不需要关心底层文件系统的具体实现。

3):VFS 基本结构
super block
dentry
inode
Data

4):Super block 超级块
存储文件系统的整体信息,包括inode/block的总量、使用量、剩余量,以及文件系统的格式。文件系统中第一个块被称为超级块。
将物理相邻的若干个扇区称为了一个块。操作系统读写磁盘的基本单位是扇区,而文件系统的基本单位是块(block)。块越大存储性能越好,但空间浪费严重。块越小性能相对越低,但空间利用率高。 一般是4K大小一个
linux_管理文件系统
5):Inode 索引节点
保存的其实是实际的数据(文件内容)的一些信息,这些信息称为“元数据”(也就是对文件属性的描述)。例如:文件大小,文件拥有者(owner),文件属组(group),文件权限,文件读取或修改的时间戳,链接数量,同时记录此文件的数据所在的 block 号码,文件类型等等。
补充:1):一个文件肯定占用一个inode,如果是空文件就不会占用block。如果不是空文件,就肯定会占用block,一个文件系统内的文件总数和inode数一样
2):ls -i可以查看文件对应的inode号
注意,数据分成:元数据+数据本身
每个inode节点的大小,一般是128字节或256字节。inode节点的总数,在格式化时就给定,一般每2KB就设置一个inode。一般文件系统中很少有文件小于2KB的,所以预定按照2KB分,一般inode是用不完的。

inode号是唯一的,表示不同的文件。其实Linux内核访问文件都是通过inode号来进行的,所谓文件名仅仅是inode号的别名,方便用户识别和使用的。当我们打开一个文件的时候,首先,系统找到这个文件名对应的inode号;然后,通过inode号,在inode table中找到inode信息,最后在inode信息中找到文件数据所在的block,接着就可以处理文件数据了。
当创建一个文件(包括目录)的时候,就给文件分配了一个inode。inodes最大数量就是文件的最大数量。

6):dentry 目录项
目录项是描述文件的逻辑属性,只存在于内存中,并没有实际对应的磁盘上的描述,更确切的说是存在于内存的目录项缓存,为了提高查找性能而设计。注意不管是目录还是最终的文件,都是属于目录项,所有的目录项在一起构成一颗庞大的目录树。例如:打开一个文件/opt/data/a.txt,那么/、opt、data、a.txt都是一个目录项,VFS在查找的时候,根据一层一层的目录项找到对应的每个目录项的inode,那么沿着目录项进行操作就可以找到最终的文件。
注意:目录也是一种文件(所以也存在对应的inode)。打开目录,实际上就是打开目录文件。

7):data 数据
记录文件的实际内容,若文件太大时,会占用多个 block
linux_管理文件系统
linux文件的组成
linux_管理文件系统
linux_管理文件系统
补充:链接文件
硬链接:不同的文件名对应相同的inode(命令:ln a.txt a.hard创建a.txt和a.hard对应相同的inode编号,编号一样查看的元数据一样访问的block号一样对应的数据一样相当于给a.txt的inode号起了别名叫做a.hard)不能跨文件系统
linux_管理文件系统
软链接又称符号链接(windows叫快捷方式):命令ln -s a.txt a.link 相当于在建立a.txt的别名为a.link可以跨文件系统
软链接文件也会单独占用一个inode号,
linux_管理文件系统
linux_管理文件系统
查看两个目录是否在同一个文件系统内
Sda1,sda2,sda3三个分区就是在不同的文件系统,用df命令查看文件系统挂载哪个目录下

创建文件系统

创建完整的文件系统的四个步骤
建立分区
格式化分区建立文件系统
检验文件系统(一般不用)
装载文件系统

创建分区
1):fdisk命令建立分区
用途:在交互式的操作环境中管理磁盘分区
格式:fdisk [磁盘设备]
2):交互模式中的常用指令
m:查看操作指令的帮助信息
p:列表查看分区信息
n:新建分区
d:删除分区
t:变更分区类型
w:保存分区设置并退出
q:放弃分区设置并退出

3)Linux常用分区ID
linux_管理文件系统
格式化分区
1):mkfs命令
用途:Make Filesystem,创建文件系统(格式化)
格式:mkfs -t 文件系统类型 分区设备
mkfs按两下tab键查看可以创建的文件系统
linux_管理文件系统
修复文件系统
1):fsck命令
用途:file system check,诊断修复文件系统
格式:fsck -t 文件系统类型 分区设备
-y:自动输入yes(与-a相同)
linux_管理文件系统
2):应用示例:
故障原因
非正常关机、突然断电、设备读写失误等
文件系统的超级块(super-block)信息被破坏
模拟对/dev/sdb1分区的破坏操作
dd if=/dev/zero of=/dev/sdb1 bs=512 count=4
检查是否能挂载该分区
报错:mount: you must specify the filesystem type
对/dev/sdb1分区进行修复
fsck -yt ext3 /dev/sdb1
再次挂载该分区
挂载文件系统
1):mount命令
用途:挂载文件系统、ISO镜像到指定文件夹
mount [ -t 类型 ] [ -o 选项 ] 设备名 挂载点目录(空目录)
mount -o ro /dev/sdb1 /dir
linux_管理文件系统
卸载文件系统
1):umount命令
用途:卸载已挂载的文件系统
格式:umount 存储设备位置
umount 挂载点目录

无法卸载已挂载的设备
1):故障原因
需要卸载的设备正在被使用
2):故障现象
无法卸载设备,提示“… device is busy”
3):解决思路
将工作目录切换到挂载点以外
退出正在使用该设备的程序
或使用fuser命令找出相关进程,并终止该进程
linux_管理文件系统
fuser -mv查看当前正在使用的进程
fuser-k杀死进程

管理交换空间
1):虚拟内存也叫交换空间
短时间缓解物理内存的不足;但不能代替物理内存
2):mkswap命令
用途:Make Swap,创建交换文件系统
格式:mkswap 分区设备
-L:设置交换分区文件系统标签
3):swapon 分区设备 ----**交换分区
swapoff 分区设备----停用交换分区
linux_管理文件系统
查看交换空间的大小使用 free -m 命令
/etc/fstab文件
1):/etc/fstab配置文件 作用:设置开机后自动挂载的文件
包含了需要开机后自动挂载的文件系统记录
mount -a命令将逐行读取fstab文件进行所有挂载
linux_管理文件系统

2):设置自动挂载示例
每次重新开机后,能够自动完成挂载
将/dev/sdb1分区挂载到/mailbox目录

linux_管理文件系统
3):和/etc/fstab文件相关的挂载选项
linux_管理文件系统
4)使用文件系统标签标识设备
例如LABLE=/和/dev/sda1是一样的
在/etc/fstab文件中使用文件系统标签可以避免由于添加删除设备造成的设备文件标识混乱

其他文件系统命令
1):e2label命令
查看和设置ext2或ext3文件系统的标签
语法:e2label 分区设备文件 标签名

2):e4label命令
查看和设置ext4文件系统的标签
语法:e4label 分区设备文件 标签名

3):blkid命令 查看UUID
查看文件系统的标签
语法:blkid [分区设备文件]

建立文件系统
新加磁盘的完整步骤:
linux_管理文件系统
其他文件系统命令
1):df命令
用途:查看磁盘文件系统(block)的使用情况,查看当前有哪些文件系统挂载到哪个目录(还有mount命令)
格式:df [选项]… [设备名]

常用命令选项
-a:列出所有文件系统
-h:以更易读的字节单位(K、M等)显示信息
-T:列出文件系统的类型
-i:查看inode的使用情况
linux_管理文件系统
2):du命令
用途:统计目录及文件的空间占用情况(estimate file space usage)
格式:du [选项]… [目录或文件名]

常用命令选项
-a:统计时包括所有的文件,而不仅仅只统计目录
-h:以更易读的字节单位(K、M等)显示信息
-s:只统计每个参数所占用空间总的大小
linux_管理文件系统
3):stat命令
用途:查看文件inode信息
格式:stat [选项]… 文件名

常用命令选项
-f:显示文件所在文件系统的信息
dumpe2fs命令可以查看到更多文件系统的信息 例如:dumpe2fs /etc/sdb1 | more可以分页查看到/etc/sdb1文件系统的信息linux_管理文件系统
使用U盘
1):U盘或移动硬盘
设备文件是sd
如果文件系统是windows的FAT32
mount /dev/sdb1 挂载点
如果文件系统是windows的NTFS,Linux默认不支持

2):配置linux支持NTFS文件系统
安装fuse
安装ntfs-3g
mount -t ntfs-3g /dev/sdb1 挂载点

本章总结
1):文件系统inode和block
2):mount命令的意义
3):fstab文件的意义
4):和文件系统相关常用的命令
5):分区、格式化、fsck、df、du、交换分区
6):如何使用NTFS文件系统的U盘

相关文章:

  • 2021-12-23
  • 2021-12-10
  • 2021-04-26
猜你喜欢
  • 2022-01-14
  • 2021-09-04
  • 2021-06-14
  • 2021-07-13
  • 2021-10-09
相关资源
相似解决方案