파일 내용은 항상 연속적으로 저장되나요?

파일 내용은 항상 연속적으로 저장되나요?

외부 파일 시스템에서는

  1. 파일 내용은 항상 연속적으로 저장되나요? 아니면 파일 내용을 여러 부분으로 나누어 각 부분을 연속적으로 저장하고 모든 부분을 비연속적으로 저장할 수 있습니까? (파일 내용의 저장은 해당 inode로 가리킵니다.)
  2. inode에는 파일 내용을 가리키는 직접 및 간접 포인터가 여러 개 있을 수 있습니다. 포인터가 파일 내용 내의 다른 위치를 가리키므로 파일 내용이 어떤 방식으로 "무작위로" 액세스됩니까?

감사해요.

답변1

습관. 파일이 항상 연속적으로 저장되는 것은 아닙니다. 불연속 저장소에는 실제로 "조각화"라는 이름이 있습니다. 왜냐하면 파일의 개별적으로 저장된 각 부분은 "조각"이기 때문입니다. 그렇지 않으면 파일을 최대 연속 여유 공간보다 크게 만들 수 없기 때문에 이는 필수입니다. 그리고 파일에 추가하는 작업은 일반적으로 실패합니다(또는 이동하려면 전체 파일을 다시 작성해야 합니다).

inode 필드는 "블록 10,000에서 시작하는 바이트 0 ~ 1048575", "블록 300에서 시작하는 바이트 1048576 ~ 2097152" 등을 의미합니다. inode의 크기는 고정되어 있으므로 보유할 수 있는 조각 수는 제한되어 있습니다. inode에 저장됩니다. 더 많은 조각이 필요할 때 inode는 다른 블록에 대한 포인터를 저장합니다.

inode가 조각을 직접 가리키는 경우 이는 직접 포인터입니다.
조각이 inode 외부에 저장되어 있는 경우 이는 간접 포인터입니다.

SANS에 대한 디지털 포렌식 기사그림 설명이 잘 되어있습니다. 이것도 이렇다위키피디아 기사. ext4의 범위는 다시 다르게 작동합니다.SANS에 대한 기사.

답변2

대부분의 Linux/unix 형식( ext2/ ext3/ ext4HFS/ HFS+및 )은 데이터를 조각화되지 않은 상태 btrfsZFS유지하려고 시도하지만 항상 약간의 조각화가 발생합니다. 일반적으로 소량의 데이터를 제외한 모든 데이터는 연속적입니다.

관련 정보