기계식 HDD가 데이터 복사 시 덮어쓸 파일을 결정하는 방법

기계식 HDD가 데이터 복사 시 덮어쓸 파일을 결정하는 방법

하드 드라이브 크기: 100GB 그리고 여기에는 서로 다른 시기에 추가되고 시간이 지남에 따라 누적되는 다양한 메가바이트 파일 크기의 파일 묶음이 포함되어 있었습니다... 모두 삭제되었습니다...

그런 다음 25GB의 데이터(MB 크기의 작은 파일)를 빈 드라이브에 복사했습니다.

삭제된 파일 중 어떤 파일을 먼저 덮어쓰나요? 마지막에 추가된 것입니까, 아니면 먼저 추가된 것입니까? 아니면 드라이브가 100GB 공간 내 임의의 위치에 분산 동작으로 모든 파일을 분산시키나요?

그렇다면 추가된 날짜에 관계없이 무작위로 삭제된 파일을 덮어쓰나요, 아니면 가장 먼저 추가된 삭제 파일을 먼저 덮어쓰나요?

답변1

HDD든 SSD든 하드디스크는 파일의 개념을 전혀 이해하지 못합니다. 그들은 단지 일련의 바이트만을 저장하며 그것이 그들이 관심을 갖는 전부입니다. [1]

하드 디스크는 일반적으로 파티션이 나누어져 있고 파티션은 선택한 파일 시스템(FS)으로 포맷됩니다. [2] 파일이 저장되는 방법과 위치를 결정하는 파일 시스템입니다.

귀하의 질문에 대한 답변은 다음과 같습니다.때에 따라 다르지.

파일 시스템은 파일이 생성되거나 삭제된 시기를 실제로 신경 쓰지 않습니다. 삭제되면 더 이상 존재하지 않으며 파일 시스템은 이를 파일이 아닌 가비지 바이트로 처리합니다.

게다가 파일은 연속적으로 저장되지 않습니다. 단일 파일이 여러 개의 청크로 분할되어 파티션 전체에 흩어질 수 있습니다. OS가 애초에 슬라이스되었다는 사실을 인식하지 못하도록 즉시 재조립하는 것이 파일 시스템의 임무입니다. 직관에 반하여 실제로 성능이 향상될 수 있습니다. 제어된 조각화를 사용하면 HDD 플래터의 외부 부분이 더 나은 읽기/쓰기 속도를 제공한다는 사실을 촉진하고 FS가 차선책으로 파일을 조각화해야 하는 상황을 피할 수 있습니다. 디스크의 원하는 부분에 맞지 않습니다.

특정 파일 시스템에 대한 쓰기 패턴은 특정 경우에 예측 가능하지만 일반적으로는 그렇지 않습니다. 특정 파일의 크기와 저장 순서가 영향을 미칩니다. 새 파일을 저장할 때 파일 시스템은 사용할 공간이 사용되었는지 여부를 고려하지 않습니다. "깨끗한" 주소나 그 반대의 주소보다 이전에 사용된 주소를 선호하지 않습니다. 파일이 삭제되면 FS는 해당 파일이 차지한 공간을 사용되지 않은 공간과 동일하게 처리합니다.


[1] 최신 드라이브에는 추가 추상화 계층이 있으므로 이러한 바이트의 저장에 실제로 사용되는 영역은 순차적이거나 연속적이지 않을 수 있습니다(예: HDD의 불량 블록 재매핑 및 SSD의 마모 평준화로 인해). 하지만 질문의 범위에서는 중요하지 않습니다. 모든 하드 디스크가 안정적으로 주소가 지정된 다수의 순차 바이트를 저장할 수 있는 장치로 다른 하드웨어 및 OS에 노출된다고 가정해 보겠습니다.

[2] 최신 Windows 버전은 OS 파티션에서 NTFS를 사용하고 추가 파티션에서는 NTFS 또는 FAT32를 사용합니다. 플래시 디스크는 일반적으로 FAT32를 사용하거나 때로는 exFAT를 사용합니다. Linux는 일반적으로 ext4 파일 시스템에 있습니다. Apple은 HFS+를 사용하고 있었으며 현재 APFS로 마이그레이션하고 있습니다. 또한 올인원 오류 방지 데이터 스토리지 솔루션으로 설계된 확장성 지향 Btrfs 및 ZFS와 같은 특별한 사용 사례를 위한 일부 파일 시스템도 있습니다.

답변2

이와 같은 상황에서는 실제로 무작위는 아니지만 모든 실제적인 목적에서는 무작위입니다. 그러나 디렉터리를 덮어쓴 경우에도 전체 디스크를 검색하는 프로그램에서 파일을 찾을 수 있는 경우가 있습니다. 요즘 플로피 디스크 시대에 눈으로 그런 일을 해왔지만 파일에 일종의 서명이 있어야만 가능합니다.

관련 정보