Linux文件系统

目录

一:inode 与 block 详解

1:inode 和 block 概述

2:inode 的内容

3:自定义xfs分区的inode和block

4:自定义ext4分区的inode和block

二:硬链接与软链接

1:硬链接

2:软链接

3:ll命令

三:EXT文件系统文件恢复

1:编译安装 extundelete

2:模拟删除并执行恢复操作

四:xfs 类型文件备份和恢复

1:安装xfsdump工具

2:将分区格式化为xfs

3:备份数据(将/data目录中的文件备份到/opt/dump_sdb1文件中)

4:模拟删除动作

5:恢复数据


一:inode block 详解

1:inode block 概述

xfs的分区,一个inode有512字节,一个block有4096字节

ext4的分区,一个inode有256字节,一个block有4096字节

2:inode 的内容

[root@localhost ~]# stat anaconda-ks.cfg

  文件:"anaconda-ks.cfg"

  大小:1683       块:8          IO 块:4096   普通文件

设备:fd00h/64768d Inode:268634178   硬链接:1

权限:(0600/-rw-------)  Uid:(    0/    root)   Gid:(    0/    root)

环境:system_u:object_r:admin_home_t:s0

最近访问:2022-05-22 19:04:21.392496430 +0800

最近更改:2022-05-22 19:04:21.395496615 +0800

最近改动:2022-05-22 19:04:21.395496615 +0800

创建时间:-

注释:

File:显示文件名

Size:显示文件大小

Blocks:文件使用的数据块总数

IO Block:IO块大小

regular file:文件类型(常规文件)

Device:设备编号

Inode:Inode号

Links:链接数

Access:文件的权限

Gid、Uid:文件所有权的Gid和Uid

access time:表示我们最后一次访问(仅仅是访问,没有改动)文件的时间

modify time:表示我们最后一次修改文件的时间

change time:表示我们最后一次对文件属性改变的时间,包括权限,大小,属性等等

Birth time : 文件创建时间,crtime,不过据查此属性linux已废弃,目前状态显示结果均为

2:查看inode大小

(1)添加一块硬盘/dev/sdb

(2)分成两个分区

(3)将sdb1格式化为ext4分区

(4)创建挂载点/data

(5)挂载

(4)查看inode大小和block大小

[root@localhost ~]# dumpe2fs -h /dev/sdb1

(5)格式化sdb2为xfs分区

[root@localhost ~]# mkfs -t xfs -f /dev/sdb2

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=1310656 blks

         =                       sectsz=512   attr=2, projid32bit=1

         =                       crc=1        finobt=0 spinodes=0

data     =                       bsize=4096   blocks=5242624, imaxpct=25

         =                       sunit=0      swidth=0 blks

naming   =version 2              bsize=4096   ascii-ci=0 ftype=1

log      =internal               bsize=4096   blocks=2560, version=2

         =                       sectsz=512   sunit=0 blks, lazy-count=1

realtime =none                   extsz=4096   blocks=0, rtextents=0

3:自定义xfs分区的inode和block

(1)如果分区已经挂载,先取消挂载,如果没有挂载,此步骤忽略

[root@localhost ~]# umount /dev/sdb1 -f

备注:

如果系统提示目标忙,如下所示,需要杀死占用该磁盘的进程

umount: /data:目标忙。

        (有些情况下通过 lsof(8) 或 fuser(1) 可以

         找到有关使用该设备的进程的有用信息)

[root@localhost ~]# yum -y install psmisc

[root@localhost ~]# fuser -mv /dev/sdb1 ##查看进程号

                     用户     进程号 权限   命令

/dev/sdb1:           root     kernel mount /data

                     root       1544 f.... sftp-server

[root@localhost ~]# kill -9 1544

[root@localhost ~]# umount  /dev/sdb1

(3)定义block的大小

[root@localhost ~]# mkfs.xfs -f /dev/sdb2 -b size=2048

(4)定义inode大小

[root@localhost ~]# mkfs.xfs -f /dev/sdb2 -i size=1024

(5)定义xfs分区inode的占比(默认xfs分区的inode占该分区的20%的大小)

修改原则:小文件适合较多的inode,可以把占比调高,大文件存储适合较少的inode占比

[root@localhost ~]# mkfs -t xfs -f /dev/sdb2

[root@localhost ~]# mount /dev/sdb2 /data ##占比的设置需要将分区挂载

[root@localhost ~]# xfs_growfs -m 30 /dev/sdb2

[root@localhost ~]# df -i /dev/sdb2

4:自定义ext4分区的inode和block

(1)指定一个block的大小

[root@localhost ~]# umount /dev/sdb1

[root@localhost ~]# mkfs.ext4 -b 2048 /dev/sdb1

(2)定义inode大小

[root@localhost ~]# mkfs.ext4 -I 4096 /dev/sdb1

[root@localhost ~]# dumpe2fs -h /dev/sdb1 | grep node ##查询

(3)指定ext4分区inode的数量

[root@localhost ~]# mkfs.ext4 -N 120960 /dev/sdb1

二:硬链接与软链接

1:硬链接

只能针对文件做硬链接

[root@localhost ~]# touch aaa

[root@localhost ~]# ln aaa bbb

注意观察其inode数字,数字相同,说明这两个文件其实是同一个文件,并没有额外消耗磁盘空间,本质上是给同一个文件起了两个不同的名字。删除任何一个,另一个还是正常文件。

硬链接只能针对文件,不能针对目录,软链接可以针对文件和目录

硬链接不能跨分区,软链接可以跨分区

2:软链接

技能针对文件,又能针对目录

[root@localhost ~]# ln -s aaa ccc

[root@localhost ~]# ll -i

注意对比inode数字,数字不同,说明这是两个不同的文件,此时删除原文件,连接文件就失效了。

注意:软链接时,原文件如果和链接文件不在同一个目录,要用绝对路径。硬链接无此要求

3:ll命令

134592347 drwxr-xr-x. 2 root root    6 6月   6 14:33 111

268635557 -rw-r--r--. 2 root root    0 6月   6 14:30 aaa

268634190 -rw-r--r--. 1 root root  156 5月  22 19:22 ali

268634178 -rw-------. 1 root root 1683 5月  22 19:04 anaconda-ks.cfg

268635557 -rw-r--r--. 2 root root    0 6月   6 14:30 bbb

268675885 lrwxrwxrwx. 1 root root    3 6月   6 14:32 ccc -> aaa

注意:红色的数字代表文件的硬链接数量,如果是目录,则表示目录内的子目录数量

三:EXT文件系统文件恢复

[root@localhost ~]# mkfs.ext3  /dev/sdb1

[root@localhost ~]# mount /dev/sdb1 /data

注意:

格式化为ext3的分区,ext4的测试报错

1:编译安装 extundelete

[root@localhost ~]# yum -y install e2fsprogs-devel e2fsprogs-libs wget bzip2 gcc*

[root@localhost ~]# wget http://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2

[root@localhost ~]# tar -xvf extundelete-0.2.4.tar.bz2

[root@localhost ~]# cd extundelete-0.2.4

[root@localhost extundelete-0.2.4]# ./configure --prefix=/usr/local/extundelete && make && make install

[root@localhost extundelete-0.2.4]# ln -s /usr/local/extundelete/bin/* /usr/bin/

2:模拟删除并执行恢复操作

(2)创建测试用文件

[root@localhost ~]# cd /data

[root@localhost data]# echo a>a

[root@localhost data]# echo b>b

[root@localhost data]# echo c>c

[root@localhost data]# echo d>d

[root@localhost data]# ls

a  b  c  d  lost+found

(2)查看统计信息

[root@localhost data]# extundelete /dev/sdb1

(2)模拟误操作并恢复

[root@localhost data]# rm -rf a b

[root@localhost data]# ls

c  d  lost+found

[root@localhost data]# cd

[root@localhost ~]# umount /data

[root@localhost ~]# extundelete /dev/sdb1 --restore-all

注意:

恢复的文件会放在当前目录下的RECOVERED_FILES子目录下

四:xfs 类型文件备份和恢复

1:安装xfsdump工具

[root@localhost ~]# yum install -y xfsdump

2:将分区格式化为xfs

[root@localhost ~]# mkfs.xfs -f /dev/sdb1

[root@localhost ~]# mount /dev/sdb1 /data

[root@localhost ~]# cd /data

2:创建测试文件

[root@localhost data]# echo a>a

[root@localhost data]# echo b>b

[root@localhost data]# echo c>c

[root@localhost data]# echo d>d

[root@localhost data]# ls

a  b  c  d

3:备份数据(将/data目录中的文件备份到/opt/dump_sdb1文件中)

[root@localhost ~]# xfsdump -f /opt/dump_sdb1 /data

注意:

/data后面不要斜杠,不要写成/data/,同时,也不能用相对路径

需要输入两个标识,第一个是备份会话标签,第二个是指定备份标签

4:模拟删除动作

[root@localhost ~]# rm -rf /data/*

5:恢复数据

[root@localhost ~]# xfsrestore -f /opt/dump_sdb1 /data/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值