내가 올바르게 이해했다면 "fsck"는 UNIX 시스템에서 충돌 후 디스크 내의 내부 일관성을 확인하는 데 사용됩니다. 따라서 파일 시스템의 모든 항목이 일관되게 유지되도록 "메타데이터"를 어떻게 사용하는지 알고 싶습니다. 예를 들어 fsck 프로세스가 복구 및 복구를 위해 수행해야 하는 단계는 무엇입니까?
-> 편집: 누군가가 이 이미지에서 "동기 직접 쓰기"가 무엇을 의미하는지 명확히 할 수 있다면 도움이 될 것입니다.
답변1
메타데이터데이터에 관한 정보입니다. 텍스트 파일을 생각해 보면 해당 텍스트 파일의 문자 순서가 파일에 포함된 실제 데이터입니다. 그러나 파일에는 이름, 소유자, 생성 날짜, 저장 매체의 위치 등이 있습니다. 이 모든 정보는 메타데이터입니다. 메타데이터는 데이터와 동일하게 취급됩니다. 예를 들어 Unix는 디렉터리(또는 새로운 컴퓨팅 시대의 폴더:-)라는 데이터 파일에 파일 메타데이터를 저장합니다.
Unix 파일 시스템은 다음과 같은 기본 저장 장치를 사용합니다.인덱스 노드. 단일 inode에는 실제 파일 데이터, 디렉터리 정보(메타데이터)가 포함될 수도 있고 사용되지 않을 수도 있습니다(무료). 새 파일을 생성하려면 inode의 상태를 사용 가능에서 할당됨으로 변경하고, 새 파일에 데이터를 쓰고, 디렉터리 파일에 메타데이터를 쓰는 작업이 포함됩니다. 이러한 작업 중에 컴퓨터가 충돌할 수 있으며, 이 경우 파일 시스템이 손상될 수 있습니다.손상.
파일 시스템 검사는 모든 inode를 읽고 가능한 한 많은 손상을 해결하려고 시도하는 것으로 구성됩니다. 예를 들어, inode가 사용 가능한 inode 목록에 없지만 해당 inode가 파일 시스템에 알려진 디렉터리에 있는 파일의 일부임을 나타내는 디렉터리 항목이 없다고 가정합니다. i-node는 무료 i-node 목록에 다시 포함될 수 있습니다.
동기식 직접 쓰기충돌 발생 시 파일 시스템이 복구될 수 있도록 디스크 쓰기를 수행하는 방법입니다. 예를 들어, 새 파일을 생성할 때 inode를 할당하고 해당 메타데이터 세트로 inode를 생성한 다음 디렉터리 정보가 포함된 파일을 업데이트해야 합니다. 그리고동기식 직접 쓰기, 이러한 작업은 한 번에 하나씩 순차적으로 별도의 작업으로 수행됩니다. 디렉토리에 쓰기 전에 충돌이 발생하면 inode가 사용 가능 목록에 다시 배치될 수 있으며 파일 생성이 발생하지 않습니다.
다른 유형의 파일 시스템 검사도 가능합니다.
답변2
Unix 또는 Linux 파일 시스템의 맥락에서 "메타데이터"는 파일을 소유한 사용자 ID, 권한, 파일 유형(특수, 일반, 명명된 파이프 등) 및 사용된 디스크 블록과 같은 파일에 대한 정보입니다. 파일로. 이는 일반적으로 "inode"라는 디스크 구조에 저장됩니다. inode에 있는 정보 중 하나는 파일에 대한 "링크"가 몇 개 존재하는지입니다. 일반 파일에는 일반적으로 1개의 링크가 있지만 디렉터리(주로 특수 "나는 디렉터리입니다" 파일 형식 태그가 있는 파일)에는 링크가 2개 이상 있습니다. 파일 시스템에 표시되는 모든 항목에는 해당 디렉터리에 대한 링크가 있지만 모든 디렉터리에는 "." 2개의 링크가 있는 이름과 일반 이름입니다.
fsck
파일 시스템의 "inode 블록"(inode 데이터 구조를 포함하는 디스크 블록)에서 링크 수가 0보다 큰 inode를 검색할 수 있습니다. 링크 수가 0보다 큰 inode로 표시되는 파일은 디렉토리 어딘가에 나타나야 합니다. inode가 디렉토리에 없으면 fsck
파일은 잘 알려진 디렉토리(보통 파일 시스템 상단에 있는 "lost+found")에 배치됩니다. Unix/Linux 파일 시스템에는 일반적으로 inode에 해당 inode가 속한 디렉터리에 대한 메타데이터가 없으며 해당 디렉터리에 포함된 파일에 대한 정보만 디렉터리 파일에 있습니다.
fsck
파일의 데이터가 포함된 디스크 블록과 같은 추가 메타데이터가 사용될 수 있습니다. fsck
inode가 나타내는 디스크 블록이 파일에 속하는지 여부를 파일 시스템의 디스크 블록 "할당되지 않은 목록"에 나타나는지 확인할 수 있습니다. fsck
두 개 이상의 inode를 검사하여 동일한 디스크 블록이 포함되어 있는지 확인할 수 있습니다. 이는 일종의 다중 할당 손상을 나타냅니다.
파일에 대한 디스크 블록 할당은 디스크 inode에 나타납니다. 파일 시스템의 디렉터리 구성원 트리 구조가 디렉터리에 나타납니다. inode는 나타나지 않으며 디렉토리에 할당되지 않습니다. fsck
이 분리를 사용하여 수리를 수행하십시오. 이는 파일 할당 테이블이 트리 구조(디렉터리 구성원)와 디스크 블록 할당을 모두 보유하는 MS-DOS 또는 초기 Windows와 같은 시스템과는 매우 다릅니다. "FAT"가 손상된 경우 디스크 블록을 스캔하여 포함된 내용과 서로 어떻게 맞는지 확인해야 합니다.
답변3
메타데이터는 "데이터에 관한 데이터"입니다.
*nix 파일 시스템의 경우 fsck
각 데이터 블록의 헤더는 디렉터리 항목이나 다음 데이터 블록 및 디렉터리의 해당 항목을 가리키는 메타데이터를 사용합니다. fsck
블록을 스캔하고 디렉토리 항목이 일치하는지, 다음 블록에 대한 전달 포인터가 올바른지 확인하십시오.
이는 파일 시스템마다 크게 다릅니다. 실제로 어떤 메타데이터가 저장되고 어디에 저장되는지가 다양한 *nix 파일 시스템 간의 가장 큰 차이점입니다. 보다 현대적인 것들은 또한 디렉토리 구조 변경에 대한 로그 파일을 보관합니다.