linux文件列表的理解,深入理解Linux文件系统(一)

inode和block概述

文件数据包括元信息与实际数据

文件存储在硬盘上,硬盘最小储存单位是 “扇区”,每个扇区储存512字节。

block(块)

中文译名为“索引节点”,也叫i节点

用于存储文件元信息

f9417f19a4d3720a89176352de3a80ff.png

1、inode的内容

inode 包含很多的文件元信息,但不包含文件名,例如

文件的字节数

文件拥有着的UserID

文件的GropuID

文件的读、写、执行权限

文件的时间戳

目录文件的结构

目录也是一种文件

目录文件的结构

每一个inode都有一个号码,操作系统用inode号码来识别不同的文件

Linux系统内部不使用文件名,而是用inode号码来识别文件

对于用户来说,文件只是inode号码便于识别的别称

inode号码

(1)、系统找到这个文件名对应的inode号码

(2)、通过inode号码获取inode信息

(3)、根据inode信息,找到文件数据所在的block,读出数据

inode的大小

inode也会消耗硬盘空间,每个inode的大小,一般是128字节或256字节

格式化文件系统时确定inode总数

使用df-i可以查看每个硬盘分区的inode总数和已经使用的数量

实际操作

1、我们在opt里输入mkdir abc创建一个空目录,输入 touch aaa.txt再abc目录里里创建一个空文件,可以通过ls -i 查看文件的inode节点号

de10d71f96e011abb0a85930ff9a99eb.png

2、也可stat aaa.txt查看详细情况

5be70c4e37442812d17bf9ce32cb3118.png

3、把aaa.txt创建成链接文件,输入ln aaa.txt a01.txt,再输入ls -i 查看inode号可以看到相同,但是名字都相同。

275fb2b4a481c4c4774653dee6047dda.png

3、我们输入stat aaa.txt可以看到aaa.txt硬链接有2个。

64472091ecc49a40ce1df04dc2fa483f.png

4、用file aaa.txt可以查看文本类型。

e52373a787b74079d04c003bccecc326.png

5、也可以用ls -i查看文本类型(开头是d的为目录)。

1114b049a299c94abfb054b4d407eaf0.png

6、inode节点可以用df -i 查看。

cb2b1f9f7d6f0729a6c5c1c7dd0e0b54.png

硬链接与软链接

在Linux下面的链接文件有两种,一种类似于Windows的快捷方式文件,可以快速连接到目标文件或目录;另一种则是通过文件系统的inode链接来产生的新文件名,而不是产生新文件,这种称之为硬链接。

1、硬链接

一般情况下,文件名和inode号码是一一对应关系,每个indoe号码对应一个文件名。

由于硬链接的元数据与源文件的完全一致(就是同一条元数据),所以有了它的一系列特性。

1,不能跨文件系统;

2,有相同的iNode和data block;

3,硬链接只能对已经存在的文件进行创建;

4,不能针对目录文件进行创建,Linux文件系统在设计时对目录默认创建了两个硬链接, . .. 如果再支持目录创建硬链接的话会生成目录环可能会造成死锁(笔者一家之言);

5,删除文件时,必须删除所有的硬链接才能真正释放data block.

软链接

软链接就是再创建一个独立的文件,而这个文件会让数据的读取指向它连接的那个文件的文件名。

1、 软连接有自己的元数据,所以可以对其进行权限控制(作用于原文件)

2、 可跨越文件系统(包括网络)创建软连接

3、可对不存在的文件和目录创建(打破不能链接目录的限制)

4、 创建软连接,源文件链接数不增加

5、 删除软连接时不影响源文件

恢复误删除的文件

我们删除一个文件,实际上并不清楚inode节点和block的数据,只是在这个文件的父目录里面的block文件,删除这个文件的名字。Linux是通过Link的数量来控制文件删除,只有当一个文件不存在任何Link的时候,这个文件才会被删除。

·

1、需要使用在开始操作之前我们需要安装实验所需要的软件包,我们的光驱挂载在/mnt/里,开始安装所需要的软件,

f00cd35e2a345374468cd55f69b20e74.png

在安装第二个包之前要安装libcom。

858fa6bcd29760514cbcb5686ea83b42.png

2、现在要把工具包进行编译安装,在编译之前输入smbclient -L //192.168.10.10/

看看共享出来的文件名是什么。

03642741685b1a5d7d6537771da0b673.png

3、知道文件名之后就开始进行编译安装

创建mkdir /aaa,输入mount.cifs //192.168.10.10./CAA/aaa ,就可以看到/aaa里就有里extundelete这个包

d012467acdd6ef2dd66f872b5f7f62c9.png

4、对这个压缩包进行解压输入tar jxvf extundelete-0.2.4.tar.bz2 -C /opt/

a3a6af0d75f3e36dac212e74d52ba1df.png

5、进入

355efca53eb731adbfb9b04602848bbf.pngextundelete-0.2.4./中,可以看到configure。

dd92fc8e7ce5d0986e83a34ff3fc191d.png

6、配置之前要安装环境,输入yum install gcc gcc-c++ -y。

5b77648dc9c9536cd61d74f711b88edf.png

7、./configure 直接进行执行。

63d27cfc594b3784f74fbfd87ad95047.png

8、输入make install 进行安装。

3bcd6b3db1b23eb04630ba353c4055de.png

9、接下来将添加的磁盘进行分区和格式化。

5dfab55e5fc6cb94f375f7d92efbaf08.png

4b24893811c452e56f4433cfa9c18ffb.png

10、进行挂载,mkdir /data 输入mount /dev/sdb1 /data,然后进入data里查看。

b94f809088affb23cfc78687add725a5.png

11、在data里写入三个文件。

9c6923e9c65a651fb1cdff34879ca0cd.png

12、模拟删除文件,rm -rf b,b的文件就被删除了

40bf06fecec14231305d7fdaaefb8c10.png

13、这时候我们就可以恢复了,在这之前要先解挂载。

397f740d3bd7888373a7d84bee1350c3.png

14、接下来输入extundelete /dev/sdb1 --restore all,来恢复删除的所有文件,如果误删了文件之后,要立马将设备解挂载,要不然新的文件将你的inode号占用就无法恢复了。

85fd26e494ea620b3fff758c557738d0.png

15、输入cd RECOVERD_FILES/就可以看到恢复的文件。

2f2265f8a311b3ee2839b249fe90412c.png

恢复LINUX中XFS类型的文件

xfsdump命令

格式:xfsdump -f 备份存放位置 要备份的路径或设备文件

常用选项:

-f:指定备份文件位置

-L:指定会话标签(免交互)

-M:指定设备标签(免交互)

-s:备份指定的文件

xfsrestore命令

格式:xfsrestore -f 恢复文件的位置 存放恢复后文件的位置

-f:指定备份文件位置

-s:恢复指定文件恢复

-t:查看文件的内容及详细信息

1、首先添加一块磁盘,然后对其进行配置,格式化为xfs格式,然后挂载到新建的目录/data里。

90b8f7c3a792b74055c644c37435913e.png

2、复制passwd文件到“/data/”目录下,然后在“/data/”目录里新建一个“test”目录,并在目录里创建一个空文件。

d6f8a0d62afcc2998e16fcbc857e1757.png

3、返回到data目录下,然后将sdb1里的分区备份到/opt/里,命名为"xfs_dump"。

8634e2ceb784fb914a5ec20793852bff.png

4、删除/data/里的内容,模拟删除。

d741693d9ef863fc91396db6e25cdae9.png

5、删除完之后现在我们开始恢复。

3816b4348d37acc4db1b074cc726717a.png

6、输入ls查看你/data/里文件是否恢复回来。

d672a0cf5652309a227dbdbf1951445f.png

xfsdump使用限制:

1、只能备份已挂载的文件系

2、必须使用root的权限才能操作

3、 只能备份XFS文件系统

4、备份后的数据只能让xfsrestore解析

5、 不能备份两个具有相同UUID的文件系统

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值