리눅스 파일 (a)는 아이 노드 블록, 하드 링크와 소프트 링크, 복구 실수로 삭제 한 파일에

A, 아이 노드 블록

1.inode 블록 개요

파일 데이터는 메타 정보와 실제 데이터를 포함, 파일이 하나의 아이 노드를 차지하지만, 적어도 블록을해야합니다.

업종 파일을 하드 디스크에 저장하고, 하드 디스크 저장 구획의 최소 단위이며, 각각의 섹터에 저장 공간이 512 바이트이다.
블록 (블록) 블록 여덟 개 연속 섹터, 파일 액세스 블록은 데이터 파일을 저장하기위한 최소 단위이다.
는 inode (아이 노드)과 같은 메타 정보 파일을 저장하는 아이 노드라고도.

2.inode 이해

(1) 아이 노드는 메타 정보 파일이 포함되어 있습니다 :

  • 파일의 바이트 수
  • 파일의 소유자 사용자 ID (UID)
  • 그룹 ID 파일 (GID)
  • 파일이 읽기, 쓰기 및 실행 권한을
  • 타임 스탬프 파일 (atime에, ctime이, mtime에)

우리가 파일의 아이 노드 정보를 표시 할 때, 직접 경로와 파일 이름의 뒤쪽에 연결된 "STAT"명령을 사용합니다.

[root@localhost opt]# stat test/
  文件:"test/"
  大小:24         块:0          IO 块:4096   目录
设备:802h/2050d   Inode:33574981    硬链接:2
权限:(0755/drwxr-xr-x)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:usr_t:s0
最近访问:2019-08-28 11:39:33.953003238 +0800
最近更改:2019-08-28 11:39:20.023004045 +0800
最近改动:2019-08-28 11:39:20.023004045 +0800
创建时间:-
[root@localhost opt]# 

세 가지 주요 time 속성 (2) 파일 :

  • 마지막으로 파일이나 디렉토리에 atime (액세스 시간)
  • ctime이 (변경 시간) : 마지막 변경 파일이나 디렉토리 (속성) 시간
  • 에 mtime (시간 수정) : 시간 마지막으로 수정 한 파일이나 디렉토리 (내용)

3.inode 번호

각 운영 체제 파일은 다른 아이 노드 번호로 아이 노드 번호를 식별했다. 파일 시스템의 파일 이름을 식별하기 위해 파일 이름을 사용하지 않는 내부의 리눅스 시스템은 아이 노드 번호입니다. 파일 이름은 사용자 이름, 별명의 inode 번호에 해당하는 기억 그냥 간단합니다. 사실, 이것은 우리가 자신의 휴대 전화로 전화를 걸 연락처의 이름을 기억할 수있는 보통 한, 우리의 전화 연락처와 동일하지만, 정말 당신의 휴대 전화 번호의 주소록에 저장되어있는 전화를 연결하는 데 사용. 이동 또는 파일의 이름을 변경, 그것은 단지 아이 노드 번호가 변경되지 않습니다, 파일 이름을 변경합니다.

사용자가 파일을 열면 (1), 파일 이름 내부 시스템은 다음과 같다 :

  • 이 시스템은 먼저 파일 이름에 해당하는 inode 번호를 찾을 수
  • (액세스가 있는지 확인하기 위해 메타 정보를 참조) 아이 노드 번호 아이 노드 정보 얻기
  • 데이터 블록 파일을 찾을 수있는 아이 노드 정보를 따르면, 데이터를 읽고

리눅스 파일 (a)는 아이 노드 블록, 하드 링크와 소프트 링크, 복구 실수로 삭제 한 파일에

방법 (2)보기 inode 번호 :

LS -i 명령 : 파일 이름에 해당하는보기 아이 노드 번호

[root@localhost opt]# ls -i test/
34964204 test01.txt
[root@localhost opt]#

stat 명령 : 보기 파일 아이 노드 번호 아이 노드 정보

[root@localhost opt]# stat test/test01.txt 
  文件:"test/test01.txt"
  大小:13         块:8          IO 块:4096   普通文件
设备:802h/2050d   Inode:34964204    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:usr_t:s0
最近访问:2019-08-28 11:39:34.875003185 +0800
最近更改:2019-08-28 11:39:20.023004045 +0800
最近改动:2019-08-28 11:39:20.023004045 +0800
创建时间:-
[root@localhost opt]# 

4.inode 크기

아이 노드는 디스크 공간이 소모되며, 일반적으로 각 아이 노드의 크기가 128 바이트 또는 256 바이트, 파일 시스템의 포맷시하는 아이 노드의 총 개수를 결정한다.

DF -i 명령 : 총 수와 아이 노드 번호를 각 하드 디스크 파티션에 사용 된 참조

[root@localhost opt]# df -i
文件系统          Inode        已用(I)        可用(I)       已用(I)% 挂载点
/dev/sda2      10485760  121223   10364537          2% /
devtmpfs         229705     368          229337           1% /dev
tmpfs            233378        1                233377         1% /dev/shm
tmpfs            233378         599           232779       1% /run
tmpfs            233378        16             233362         1% /sys/fs/cgroup
/dev/sda5     5241856     144          5241712       1% /home
/dev/sda1     3145728     328          3145400       1% /boot
tmpfs            233378         6             233372         1% /run/user/42
tmpfs            233378         20           233358         1% /run/user/0
[root@localhost opt]# 

특별한 역할 5.inode

파일 이름이 키보드가 노크 사용할 수없는 특수 문자를 포함 할 때 우리는 삭제, 파일을 삭제하는 우리를 이끌 수 없습니다. 이 시점에서 우리는 직접 아이 노드에서 파일을 삭제할 수 있습니다.

리눅스 파일 (a)는 아이 노드 블록, 하드 링크와 소프트 링크, 복구 실수로 삭제 한 파일에

둘째, 하드 링크와 소프트 링크

리눅스 파일 시스템에서 링크 파일의 종류, 당신은 공유 파일을 해결하는 데 사용할 수 있습니다. 링크는 하나는 다른도 소프트 링크 또는 심볼릭 링크 (심볼 링크)로 언급되고, 하드 링크 (하드 링크)이며, 두 종류로 나눌 수있다.

리눅스 파일 (a)는 아이 노드 블록, 하드 링크와 소프트 링크, 복구 실수로 삭제 한 파일에

리눅스 시스템에서 여러 개의 파일 이름은 일반적으로 링크 하드 링크라고, 같은 아이 노드를 가리 킵니다. 하드 링크의 역할 중 하나는 사용자가 중요한 파일을 실수로 삭제를 방지하는 것이 중요 파일에 대한 하드 링크를 만들 수 있도록 파일이 여러 유효한 경로 이름을 가지고 할 수 있지만, 동일한 파일 시스템에있는 파일 만 사이의 하드 링크 링크 및 디렉토리를 만들 수 없습니다. 사실, 파일 이름은 우리가 파일에 하드 링크를 설정하면 다시 하드 링크를 삭제하는 것과 동일 소스 파일을 삭제, 하드 링크에 해당합니다. 그러나 메타 정보는 아이 노드의 모든 블록에 데이터를 저장합니다. 마지막으로 하드 링크는 어떤 과정에서, 자사의 메타 정보와 데이터를 삭제되지만 시스템이 번호 풀의 inode 번호를 공개 할 때 inode 번호 이후에 수집 된 새 파일이있을 때, 그것은 메타 정보와 데이터의 그것은 적용됩니다.

软链接,其实与windows系统中的快捷方式很相似,与硬链接不同,软链接就是一个普通文件,只是数据块内容有点特殊,文件用户数据块中存放的内容是另一文件的路径名的指向,通过这个方式可以快速定位到软连接所指向的源文件实体。软链接可对文件或目录创建,当源文件被删除后,软链接也就失效了。

ln命令:创建硬链接。

[root@localhost test]# ls
test01.txt
[root@localhost test]# ls -l
总用量 4
-rw-r--r--. 1 root root 13 8月  28 11:39 test01.txt
[root@localhost test]# ln test01.txt t01.txt
[root@localhost test]# ls -i
34964204 t01.txt  34964204 test01.txt
[root@localhost test]# ls -l
总用量 8
-rw-r--r--. 2 root root 13 8月  28 11:39 t01.txt
-rw-r--r--. 2 root root 13 8月  28 11:39 test01.txt
[root@localhost test]#

我们可以看到,文件和它的硬链接的inode号码是相同的,所以无论我们用哪个打开它的内容都是相同的。

ln -s命令:创建软链接

[root@localhost test]# ls
test01.txt
[root@localhost test]# ln -s test01.txt t01.txt
[root@localhost test]# ls
t01.txt  test01.txt
[root@localhost test]#

file命令:查看文件类型

[root@localhost test]# file test01.txt 
test01.txt: ASCII text
[root@localhost test]# cd ../
[root@localhost opt]# file test/
test/: directory
[root@localhost opt]# 

三、恢复误删文件

1.恢复Linux6版本的EXT4类型的文件

安装extundelete软件包,先安装它的依赖包。

输入:cd /mnt/Packages/
输入:rpm -ivh e2fsprogs-libs-1.41.12-18.el6.x86_64.rpm
输入:rpm -ivh e2fsprogs-devel-1.41.12-18.el6.x86_64.rpm
输入:rpm -ivh libcom_err-devel-1.41.12-18.el6.x86_64.rpm
输入:rpm -ivh e2fsprogs-devel-1.41.12-18.el6.x86_64.rpm

리눅스 파일 (a)는 아이 노드 블록, 하드 링크와 소프트 링크, 복구 실수로 삭제 한 파일에

我们先新建一个目录,再将我们本地的工具包挂载到目录中。

输入:mkdir /extundel
输入:mount.cifs //192.168.100.50/share/ /extundel/
输入:df -h

리눅스 파일 (a)는 아이 노드 블록, 하드 링크와 소프트 링크, 복구 실수로 삭제 한 파일에

将挂载过来的工具压缩包解压到“/opt/”目录中

输入:cd /extundel/
输入:tar jxvf extundelete-0.2.4.tar.bz2 -C /opt/

리눅스 파일 (a)는 아이 노드 블록, 하드 링크와 소프트 링크, 복구 실수로 삭제 한 파일에

用“cd”命令进入“/opt/extundelete-0.2.4/”目录,安装编译器,因为现在的源码包是用C语言写的,不能直接用。

输入:cd /opt/extundelete-0.2.4/
输入:yum install gcc gcc-c++ -y

리눅스 파일 (a)는 아이 노드 블록, 하드 링크와 소프트 링크, 복구 실수로 삭제 한 파일에

编译安装extundelete工具。

输入:./configure
输入:make
输入:make install

리눅스 파일 (a)는 아이 노드 블록, 하드 링크와 소프트 링크, 복구 실수로 삭제 한 파일에

添加一块磁盘,对磁盘进行配置,配置完后,将磁盘分区格式化,文件格式为ext4,再创建一个目录“/data/”,并将磁盘分区挂载到目录下。

리눅스 파일 (a)는 아이 노드 블록, 하드 링크와 소프트 링크, 복구 실수로 삭제 한 파일에

进入到“/data/”目录,创建三个文件a、b、c。然后再将三个文件删除,模拟文件误删。

리눅스 파일 (a)는 아이 노드 블록, 하드 링크와 소프트 링크, 복구 실수로 삭제 한 파일에

我们先返回宿主目录,然后将sdb1解挂载。然后用“extundelete /dev/sdb1 --restore-all”来恢复删除的所有文件。注意:当你误删文件后,第一时间一定要将设备解挂载,因为如果有新的文件将删除的文件inode号给占用了就无法恢复了。(工作环境中一定要注意备份)

리눅스 파일 (a)는 아이 노드 블록, 하드 링크와 소프트 링크, 복구 실수로 삭제 한 파일에

我们用“cd”命令进入到“RECOVERED_FILES/”目录中就能看到恢复的文件了。

리눅스 파일 (a)는 아이 노드 블록, 하드 링크와 소프트 링크, 복구 실수로 삭제 한 파일에

2.恢复Linux7版本中的XFS类型文件。

xfsdump命令:备份系统文件

형식 : 경로 xfsdump -f 백업 저장 위치 또는 장치에 파일을 백업 할
일반적인 옵션을 :

-f:-------------------指定备份文件位置
-L:------------------指定备份会话标签(免交互)
-M:-----------------指定设备标签(免交互)
-s:------------------备份指定的文件,使用相对路径,相对于备份的文件系统路径

xfsrestore 명령 : 백업 시스템 파일을 복원

: 형식 위치 xfsrestore는 복구 된 파일의 위치 후 파일을 복원 -f

일반적인 옵션 :

-f:-----------------------指定备份文件位置
-s:----------------------恢复指定文件恢复
-t:-----------------------查看文件的内容及详细信息

첫째, 하드 디스크를 추가 한 다음 포맷 XFS 파일 포맷 형식을 포맷, 파티션을 구성, 아래의 "/ / 데이터"의 새 디렉토리에 장착.

리눅스 파일 (a)는 아이 노드 블록, 하드 링크와 소프트 링크, 복구 실수로 삭제 한 파일에

은 "/ 데이터 /"디렉토리에 passwd 파일을 복사 한 다음 "/ 데이터 /"디렉토리에 "테스트"디렉토리를 만들고 디렉토리에 빈 파일을 만듭니다.

리눅스 파일 (a)는 아이 노드 블록, 하드 링크와 소프트 링크, 복구 실수로 삭제 한 파일에

종료 "/ 데이터 /"디렉토리, 다음 sdb1로 파티션 파일을 백업에 "/ 옵션 /"디렉토리 명 "xfs_dump"

[root@localhost ~]# xfsdump -f /opt/xfs_dump /dev/sdb1                //备份命令
                                  ..................................                                           //省略部分
please enter label for this dump session (timeout in 300 sec)
 -> xfs_dump                                                                                       //输入备份后文件名
session label entered: "xfs_dump"
                                  .....................................                                     //省略部分
please enter label for media in drive 0 (timeout in 300 sec)
 -> sdb1                                                                                            //输入备份分区
media label entered: "sdb1"
                                   .........................................                           //省略部分
xfsdump: Dump Status: SUCCESS

"/ 데이터 /"디렉토리, 아날로그 실수로 삭제 된 파일에있는 모든 파일을 삭제합니다.

리눅스 파일 (a)는 아이 노드 블록, 하드 링크와 소프트 링크, 복구 실수로 삭제 한 파일에

삭제는 우리가 xfsrestore 명령 파일 디렉토리가 "/ 데이터 /"로 돌아갑니다 완료됩니다.

리눅스 파일 (a)는 아이 노드 블록, 하드 링크와 소프트 링크, 복구 실수로 삭제 한 파일에

추천

출처blog.51cto.com/14449541/2433415