동일 Inode file의 fileSystem 확인 ps, 커널 의사 파일시스템(pseudo filesystem)
동일 inode를 가진 file의 filesystem 찾기
inode는 fileSystem에서 각 file마다 고유합니다.
동일 filesystem에서 inode가 고유하지 않거나 문제가 있는 경우엔 fsck로 filesystem 복구 필요!
inode를 통해서 file을 찾아야 할 일이 있어서 찾아봤는데, 유일할 줄 알았던 inode 결과가 2개가 나왔다;;
find / -inum {inode 숫자} 2>/dev/null
$ df -Th # 이걸로 확인해봐도 겉으로보기엔 같은 fileSystem 같이 보인다..
$ lsblk # 마찬가지
$ df [file path] # 직접 file path를 넣으면, 해당 파일의 fileSystem이 나왔구나..
Filesystem Type Size Used Avail Use% Mounted on
sysfs sysfs 0 0 0 - /sys
같은 filesystem인지 알았지만, sysfs라는 파일 시스템에 존재하는 파일이었다..
커널 pseudo file system
sysfs는 linux kernel에서 제공하는 pseudo filesystem, 의사 파일 시스텝입니다.
참고: https://en.wikipedia.org/wiki/Synthetic_file_system
Synthetic file system - Wikipedia
From Wikipedia, the free encyclopedia Hierarchical interface In computer science, a synthetic file system or a pseudo file system is a hierarchical interface to non-file objects that appear as if they were regular files in the tree of a disk-based or long-
en.wikipedia.org
일반적인 filesystem은 linux kernel과는 별개의 컴포넌트이지만, 커널이 자신의 일부 속성값을 파일로 보여주고 제어할 수 있게 만드는 커널이 제공하는 파일 시스템입니다. (파일로 보여주는 이유는 Unix계열의 everything is a file 컨셉!)
대표적으로 /dev, /proc, /sys에 마운트되어있는 파일 시스템입니다.
$ df /dev
Filesystem 1K-blocks Used Available Use% Mounted on
udev 890304 0 890304 0% /dev
$ df /proc
Filesystem 1K-blocks Used Available Use% Mounted on
proc 0 0 0 - /proc
$ df /sys
Filesystem 1K-blocks Used Available Use% Mounted on
sysfs 0 0 0 - /sys
일반적으로 시스템에서 위와 같이 자동적으로 마운트하지만 수동으로 다른 디렉토리에 마운트도 가능합니다.
ex) mount -t sysfs sysfs /sys2 , refer: https://man7.org/linux/man-pages/man5/sysfs.5.html
sysfs(5) - Linux manual page
sysfs(5) — Linux manual page SYSFS(5) Linux Programmer's Manual SYSFS(5) NAME top sysfs - a filesystem for exporting kernel objects DESCRIPTION top The sysfs filesystem is a pseudo-filesystem which provides an interface to kernel
man7.org
커널에서 제공하는 filesystem이나 램디스크, tempfs와 같은 의사 파일시스템은 실제로는 메모리영역에 구현되어 있으나 가상파일시스템(VFS)를 통해서 마치 파일처럼 유저가 접근할 수 있습니다.
예로, sysconfig 즉 커널 파리미터를 변경하려면 옛날 시스템은 sysconfig 명령어로 대부분 변경했지만, 의사 파일시스템은 커널의 속성값을 파일로 나타내는 것을 넘어서서 파일 내용을 변경하는 것으로 실제 커널 파라미터 값이 변경시킬 수 있습니다.
# eth0의 rp_filter 커널 파리미터 확인
$ sysctl net.ipv4.conf.eth0.rp_filter
net.ipv4.conf.eth0.rp_filter = 0
# 파일 내용을 바꿔서 커널 파리미터 변경
$ echo "1" > /proc/sys/net/ipv4/conf/eth0/rp_filter
# eth0의 rp_filter 커널 파리미터 확인
$ sysctl net.ipv4.conf.eth0.rp_filter
net.ipv4.conf.eth0.rp_filter = 1