设为首页 加入收藏

TOP

Linux 硬盘存储和文件系统介绍(二)
2023-07-23 13:36:26 】 浏览:92
Tags:Linux 储和文
系统。

文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索。

文件系统的创建:

硬盘或分区在进行格式化的过程,就是创建文件系统的过程。

windows 常用文件系统

  • FAT32:最多只能支持16TB的文件系统和4GB的文件
  • NTFS:New Technology File System。windows独有的文件系统,linux不支持。最多只能支持16EB的文件系统和16EB的文件
  • exFAT:Linux和windows都支持,时为了解决FAT32等不支持4G及其更大的文件而推出de1,适合于闪存的文件系统,例如U盘。

Linux 常用文件系统

  • ext系列:最新版本的时ext4,Ext4的文件系统容量达到1EB,而支持单个文件则达到16TB,理论上支持无限数量的子目录。
  • xfs:最大可以支持8EB的文件系统,而支持单个文件则达到8EB,能以接近裸设备I/O的性能存储数据。
  • swap:用于Linux的交换分区,在Linux中,使用整个交换分区来提供虚拟内存。
  • iso9660: 光盘的文件系统类型

裸文件系统

  • raw:裸文件系统是指未经过格式化的磁盘分区或映像文件,因此它没有文件系统结构和元数据,也没有任何文件或目录可见。

裸文件系统是一个块设备,它可以像其他块设备一样进行读写操作,因此裸文件系统通常用于虚拟化环境中,作为虚拟机磁盘镜像的基础。

网络文件系统

  • NFS:(Network File System)网络文件系统,一般使用在局域网中。
  • CIFS:(Common Internet File System)通用过internet文件系统。

虚拟文件系统

  • VFS: 为用户程序提供文件和文件系统操作的统一接口,屏蔽不同文件系统的差异和操作细节。
    image

例如:

使用ls查看磁盘上的文件,因为文件系统的功能是由操作系统的内核提供,应用程序是通过访问文件系统,然后文件系统再去访问具体的文件,但是不同文件系统底层是实现和区别差别可能非常大。所以程序的系统调用可能会不同,为了方便程序的统一调用,就就使用了虚拟文件系统提供统一的接口。

文件系统的组成

由三部分组成,分别是内核中的模块,虚拟文件系统和用户空间的管理工具。

  • 内核中的模块:提供对应文件系统的功能。例如ext4, xfs, vfat
  • Linux的虚拟文件系统:提供统一的接口。例如VFS
  • 用户空间的管理工具:提供对内核文件系统管理的工具。例如mkfs.ext4, mkfs.xfs,mkfs.vfat

查看当前系统支持的文件系统:

# 方法一:
ls -l  /lib/modules/`uname -r`/kernel/fs
# 方法二:
 cat /proc/filesystems

image

2、Inode 和 Block

当某个存储设备被格式化为EXT系列的文件系统后,文件系统会将磁盘空间分为两部分:inode区域和数据区域(也称为块区域)。

Inode区域:存放文件的元数据信息

包含了若干了Inode,每个inode存放一个文件的元数据信息(文件大小、类型、权限、UID、GID、所有者、所属组等信息)和唯一的Inode编号,以及指向文件数据块的指针。

Block区域:存放文件真正的数据部分

  1. ? 存放文件的真正数据部分,数据区域被分割成一个个大小相等的块,每个块通常为4KB或8KB。
  2. ? 目录块也是存储在数据区域中的一种特殊的数据块,它存储了一组目录项,每个目录项存放一个文件的文件名和Inode编号。
    image

例如:

当需要访问一个文件时,文件系统会通过目录项找到对应的inode,然后根据inode中的信息来读取或写入文件的内容。因此,目录项在文件系统中扮演了非常重要的角色,它们充当了文件和文件系统之间的桥梁。

删除某个目录就是把目录文件的数据块部分的文件列表和文件的节点编号的映射关系删除的过程

在EXT系列文件系统中创建文件流程:

  • 首先,文件系统会找到一个未使用的inode号码,并分配给新文件。inode包含文件的元数据,如权限、所有者、创建时间、修改时间等信息。
  • 然后,文件系统会找到一个或多个未使用的数据块,这些数据块将用于存储文件的实际内容。
  • 接着文件系统会将inode与数据块的信息记录在文件系统的元数据区域中,以便以后可以找到并访问它们。
  • 最后文件系统会将文件的名称和与该文件相关联的inode号码存储在目录中。目录是一个特殊的文件,它包含文件系统中所有文件和目录的列表。

3、软链接和硬链接

软链接:类似于windows的快捷方式

image

特点:

  • 软链接和源文件不是同一个文件

  • 允许对目录文件创建软链接。

  • 支持跨设备和跨分区创建软链接。

  • 创建一个软链接到一个目录下,没有指定软连接的名字,那么软连接的名字和源文件名一致

硬链接:一个文件多个文件名

image

特点:

  • 不允许对目录文件创建硬链接
  • 不能跨设备、跨分区,例如sda1的文件不能硬链接到sda2上面。

4、硬盘的分区工具

fdisk

使用fdisk创建硬盘分区的时候,默认会将硬盘的分区类型格式化为MBR格式的分区类型。

例如:

# 创建分区表
root@ubuntu1804:~# fdisk /dev/sdb 

Welcome to fdisk (util-linux 2.31.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): n  # 创建一个分区表
Partition type 
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p  # 创建主分区
Partition number (1-4, default 1):  # 分区编号,
First sector (2048-41943039, default 2048):  # 不输入表示从当前位置开始
Last sector, +sectors or +size{K,M,G,T,P} (2048-41943039, default 41943039): +10G # 分区的大小

Created a new partition 1 of type 'Linux' and of size 10 GiB.

Command (m for help): p # 查看分区表的信息
Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x3ea7c314

Device     Boot Start      End  Sectors Size Id Type
/dev/sdb1        2048 20973567 20971520  10G 83 Linux

Command (m for help): w # 保存设置并退出
The partition table h
首页 上一页 1 2 3 4 5 6 7 下一页 尾页 2/7/7
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇在Windows系统的基础上安装Ubuntu.. 下一篇CentOS7-RHCE服务----DNS

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目