-
[리눅스] 파일시스템, 링크파일서버/리눅스 2017. 3. 30. 20:23
#파일 시스템
저장 장치에서 파일을 관리하기 위한 체계
이 체계는 운영체제마다 다르다.
Window : NTFS, FAT16/32/64 ....
MAC : HFS ...
Linux : ext2/3/4 ...
디스크에 저장되는 파일들은 각각의 i-node값을 가진다
이 i-node는 파일 이름은 제외한 정보를 갖는다.
i-node를 더 생성할 수 없다면 저장 장치에 용량이 남아도 사용불가 > i-node를 생성가능한 숫자가 있다.
#링크 파일
1) 하드링크파일
i-node에 연결하는 방법
맨앞이 아이노드 값입니다. 권한뒤에 나오는 숫자가 링크파일이구요.
i-node값이 같다면 똑같은 파일을 참조하는 것입니다. 주소값이라는 표현도 맞을 수 있겠네요.
#> ln <target file_path> <new Link_file_path>
ln명령어를 통하여 똑같은 i-node값을 가진 파일이 생성되었습니다.
이렇게 되면 원본파일인 ex3.txt파일이 사라져도 ex3.hard파일을 통하여 파일에 접근할 수 있다.
>> 즉 원본과는 아무런 관계가 없다는 것이다.
이런저런 테스트를 통하여 몇가지 사실을 알 수 있었다.
#1 디렉터리는 우리가 보기 편하게 만들어진 구조이다.
#2 디스크에 저장되는 파일( 용량을 차지하는 것 )들은 어떠한 공간에 차지되고 있고
파일들은 고유한 값인 i-node값과 매칭된다.
#3 i-node가 같은 링크파일이 생성되면 링크파일은 i-node에 의해 참조하기 떄문에 링크파일은 용량을 차지하지않는다.
#4 i-node가 값으로 참조되는 링크파일은 원본파일( 원본파일이 아닐수도 있다, i-node값만 같은 파일이니깐)
이 이동되거나 지워져도 같은 데이터를 가르키고 있단는 사실은 같다.
>> 이를 통해 링크파일은 파일복사와는 다른 개념으로 잡힌다.
>> 파일복사는 데이터를 복사해서 다른 i-node값으로 만들어지기 때문이다.
https://ko.wikipedia.org/wiki/%EC%95%84%EC%9D%B4%EB%85%B8%EB%93%9C 아이노드에 들어있는 정보 <위키백과>
#5 i-node값과 파일데이터의 연결이 끊어질때 (원본파일과 링크파일.. i-node를 참조하는 모든파일이 다지워졌을때) 파일에 대한 접근이 끝난다.
>> 이때 데이터는 남아있지만 이 데이터에 접근할 i-node값이 없기때문에 참조할 수 없다.
>> i-node값은 파일시스템에의해 계산되고 만들어지는 값이며 정보이기때문에 하드구조를 다안다면 직접할당 할 수 있지만
>> 모른다면( 기능만 사용하는 사용자들 ) 어쩔수 없기때문에 "포렌식"이라는 방법이 등장한 것이다.
#6 데이터가 사라지지 않는다는 의미는 용량과 상관이 없다.
파일시스템에서 용량을 체크할때 i-node와 연결된 데이터들을 체크할 뿐이지 i-node와 연결이 끊어진 데이터들은 나중 파일을 사용할 때
덮어써지는 데이터들이기 때문에 용량을 체크하지 않는다.
>> 이런 의미로 파일복구는 빠른 시간안에 복구해야 끊어진 데이터들을 살려낼수 있다는 것이다.
>> 오랜시간이 지나면 데이터를 복구할 수 없다는 의미이다.
2) 소프트 링크 파일(심볼릭 링크 파일)
#>ln -s <target_file_path> <new_link_file_path>
#>ln -s /temp/ex3.txt /root/ex3.soft
심볼릭 링크파일은 파일 path에 연결된 파일이다.
파일이 생성되는 순간 i-node값과 데이터가 생성되는데 이 데이터에는 참조된 path가 담겨있다.
파일을 열면 > i-node를 통해 > 데이터를 참조하고 데이터에 있는 path를 통해 >
path에 있는 파일로 가서 여는 형태이다. window의 바로가기 폴더와 비슷한 형태이다.
>> 원본파일의 삭제, 이동, 이름변경... 원본파일의 path가 수정되는 순간 심볼릭 링크 파일은 파일의 기능을 상실 한다.
#1원본을 수정할 때는 연결된 링크파일이 심볼릭 링크파일로 연결되었다면 경로변경을 생각해봐야 한다.
#2 원본파일의 경로가 이동되고 다시 원본으로 돌아오면 링크파일은 다시 정상적인 기능을 할 수 있다.
>>원본파일이아니라 그냥 똑같은 path가 생성되어도 심볼릭링크파일은 생성된 파일에 링크를 건다.
하드 링크 파일
소프트 링크 파일
(심볼릭 링크 파일)
연결된 대상
i-node
path
원본파일에 대한 의존성
X
O
i-node값
원본과 같음
원본과 다름
'서버 > 리눅스' 카테고리의 다른 글
[리눅스] 환경변수 (0) 2017.04.03 [리눅스] 프로세스 (0) 2017.03.31 [리눅스] 정규표현식 (0) 2017.03.30 [리눅스]패키지 관리 make, rpm, yum (0) 2017.03.28 [리눅스] python 업그레이드 하기(소스코드 방법) (2) 2017.03.27