Linux的文件系统

本章主要介绍文件系统的管理

  • 了解什么是文件系统
  • 对分区进行格式化的操作
  • 挂载分区
  • 查找文件
  • 在Windows系统中,买了一块新的硬盘加到电脑后,需要对分区进行格式化才能使用,Linux系统中也是一样,首先我们需要了解什么是文件系统

1.1 了解文件系统

分区很复杂,但是为了好理解不妨先简化介绍。首先来看图,记住这是一个分区

当对一个分区格式化时,分区被分成两部分

(1)右侧部分被划分成很多小格子,每个小格子称为block,默认大小为4KB

(2)左侧部分为inode,用于记录文件的属性,每个文件都会占用一个 inode

每个block中只能存储一个文件,假设一个文件aa只有 1KB存放在2号block中,则2号block还剩余3KB的空间,但 是这3KB的空间也不会存储其他数据了。所以,此文件大 小为1KB,占用空间为4KB

如果一个文件的值大于4KB,一个block存放不下,则会占用多个 block。例如,某文件 大小为9KB,则需要占用3个block

Windows 中常见的文件系统包括FAT、NTFS等,Linux中常见的 文件系统包括EXT3、EXT4、XFS等。这些不同的文件系统具有不同的功能,包括所支持的单 个文件最大能有多大,整个文件系统最大能有多大,RHEL8/CentOS8中默认的文件系统是 XFS

1.2 了解硬链接
前面讲了inode记录的是某文件的属性信息

10号 inode记录了aa文件的属性,包括aa文件的名称、大小、权限等,及其所在的 block,可以在10号inode中给aa文件再起一个名称bb

此时对10号inode来说,用两个名称aa和 bb来记录2号block中的文件,所以 aa和 bb对 应的是同一个文件,那么aa和 bb就是硬链接关系

练习:先拷贝一个测试文件

[root@Hal55 ~]# cp /etc/hosts aa
[root@Hal55 ~]# ll aa
-rw-r--r--. 1 root root 158 12月  6 10:59 aa

此处的加粗字1,指的是aa文件只有一个硬链接,即存储在 block中的文件只有一个名称 aa。下面对aa做硬链接

[root@Hal55 ~]# ln aa bb

查看aa和bb的属性

[root@Hal55 ~]# ln aa bb
[root@Hal55 ~]# ll aa bb
-rw-r--r--. 2 root root 158 12月  6 10:59 aa
-rw-r--r--. 2 root root 158 12月  6 10:59 bb
[root@Hal55 ~]# 

硬链接数显示为2,说明存储在 block中的那个文件有两个名称aa和 bb。aa和 bb是在同 一个inode上记录的两个名称,通过ls -i可以查看aa和 bb分别是在哪个inode上记录的

[root@Hal55 ~]# ls -i aa ; ls -i bb
135702282 aa
135702282 bb
[root@Hal55 ~]# 

可以看到, inode值是--样的。即在同-个inode上用两个名称来记录 block中的那个文 件。换言之就是aa和bb对应的是同一个文件,修改aa之后会发现.bb的内容也做了相同的修 改,修改协之后会发现aa也做了相应的修改

因为block中的文件现在有两个名称,所以删除任意一个之后,block中的数据是不会跟 着删除的。所以,删除aa是不会影响bb的,或者删除bb也不会影响aa。但是aa和bb两个同 时删除,则block中的文件就没有名称了,则此文件会从 block中删除

block中的文件只要还有一个名称,那么数据就不会删除。如果所有名称都没有了,则此 数据会从 block中删除

同一个分区的inode只能记录同一个分区 block中的数据,不能在第二个分区中产生一个 inode来记录第一个分区中的文件,所以硬链接不能跨分区

1.3 创建文件系统
再看看前面已经在/dev/sdb 上创建过的分区

[root@Hal55 ~]# fdisk -l /dev/sdb
Disk /dev/sdb:100 GiB,107374182400 字节,209715200 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x89bcc325

设备       启动     起点      末尾      扇区 大小 Id 类型
/dev/sdb1           2048   4196351   4194304   2G 83 Linux
/dev/sdb2        4196352   8390655   4194304   2G 82 Linux swap / Solaris
/dev/sdb4        8390656 209715199 201324544  96G  5 扩展
/dev/sdb5        8392704  29364223  20971520  10G 8e Linux LVM
/dev/sdb6       29366272 209715199 180348928  86G 83 Linux

2.下面对分区进行格式化

1. mkfs ‐f 文件系统 ‐选项 /dev/分区
2. 或
3. mkfs.文件系统 ‐选项 /dev/分区

练习:把/dev/sdb1格式化为XFS文件系统

[root@Hal55 ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=131072 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值