동일 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
일반적인 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
커널에서 제공하는 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
'Linux' 카테고리의 다른 글
linux hostname / 리눅스 호스트네임 (초안) (0) | 2023.03.27 |
---|---|
CentOS 7 다중 default route/gateway 설정 (0) | 2023.03.24 |
리눅스 wc -l 사용주의 및 고찰 (0) | 2021.03.05 |
댓글