*파일 시스템과 링크 - 유닉스 계열에서는 inode라는 독특한 파일 시스템 구조를 가짐.
1. inode란
# ls -ial
inode 값 -> 파일명이 매핑되어 있고 각 파티션마다 inode란 특별한 파일의 저장 정보를 갖는 저장 장소(meta data)
해당 inode 번호(값) -> 해당 파일의 주인, 그룹, permission, 파일 타입, 하드링크 갯수, 파일 사이즈, 수정날짜, 파일의 첫번째 블락 하드디스크 포인터가 있음.
각 파티션마다 inode 저장 장소를 갖음. [파일 하나당 inode 번호를 갖고 있고 그 inode 하나당 위 정보(해당 파일의 주인, 그룹, permission, 파일 타입, 하드링크 갯수, 파일 사이즈, 수정날짜, 파일의 첫번째 블락 하드디스크 포인터) 를 갖고 있다.]
* 디렉토리는 해당 inode와 파일명과 맵핑되어 있는 정보를 갖는 파일이다.(디렉토리도 하나의 파일이다.)
* 즉, 해당 inode 번호만 알면 해당 파일에 접근할 수 있다.
* 해당 파일에 접근하려면 해당 inode에 반드시 접근해야한다.
* inode 레벨에서 permission이 결정된다. (babo 계정으로 어떤 파일에 접근하려고 하면 그 해당 inode의 permission과 내 계정이랑 비교하여 권한이 있는 지 확인한다. 즉, inode level에서 permission이 결정된다.)
*inode의 값은 디렉토리가 알고 있다. (aaa.txt에 접근하기 위해서는 inode값을 알고 있어야하며 inode 값은 디렉토리가 알고 있다.)
2. link
1) 하드링크
* inode를 서로 다른 파일명으로 지칭할 수 있나? -> 가능하다. (이것이 하드링크다.)
# ln aaa.txt haaa.txt (하드링크)
# rm -f aaa.txt를 하면 저 위의 2값은 1이 되지만 physical address의 값은 사라지지 않는다.
# rm -f haaa.txt를 마저 하게 되면 해당 inode는 삭제가 되며 meta data까지 깔끔하게 지워진다.
1. 실제 내용을 가지고 있는 영역은 한 개이다.(이것을 여러 이니셜로 가리키고 있는 것이다.)
2. 원파일이 사라지면 하드링크도 사라짐. (2개의 하드링크 중 하나를 삭제하여도 원본파일은 살아있고 inode를 가리키는 식별자가 삭제된 것이다.inode가 원본이다. )
3. inode의 하드링크 카운트가 1이여야 파일이 삭제 가능하다.
4. 하드링크의 단점 : 파티션 경계를 넘어갈 수 없다.
2) 소프트링크(파일 속성 앞에 l 로 표시 됨)
# ln -s aaa.txt saaa.txt
1. 타겟 파일 자체에 대한 위치의 포인터 값을 담고 있는 것(해당파일의 물리적 경로)
2. 파티션 경계를 넘을 수 있다.
3. 원본파일이 없어져도 소프트링크는 인식을 못한다.(리눅스가 인식하여 표시해준다.)
'Linux > CentOS' 카테고리의 다른 글
14. 파일시스템-HDD 추가 및 자동 마운트 (0) | 2015.03.04 |
---|---|
14. 파일시스템 - 디스크 쿼터 준비 및 자동 마운트 (0) | 2015.03.04 |
12. 압축 및 묶음 (0) | 2015.02.09 |
11. 사용자 환경설정 - 2 (0) | 2015.02.09 |
10. 사용자 환경설정 - 1 (0) | 2015.02.05 |