다음과 중복될 수 있습니다.SSD의 한 파티션에서 다른 파티션으로 파일 이동
C:\...\Downloads\
에서 파일을 복사하면 C:\...\Desktop\
즉시 발생합니다.하지만동일한 파일(1.12GB)을 복사하면 D:
시간이 꽤 걸립니다. 왜 그렇습니까?
답변1
먼저 핵심 질문은 다음과 같습니다.
동일한 디스크의 파티션 간에 복사하는 데 시간이 걸리는 이유는 무엇입니까?
아래에서 자세히 설명하겠지만 여러 파티션이 있는 단일 디스크는 파일 시스템 관점에서 "동일한 디스크"가 아닙니다. 파일 시스템 관점에서 볼 때, 파티션은 두 개의 파티션이 상주하는 더 큰 상위 물리적 디스크에 단순히 "논리적으로" 할당된 공간일지라도 단순히 또 다른 "물리적 디스크"입니다.
- 디스크에는 파티션이 있고,
- 파티션에는 파일 시스템이 있습니다.
- 파일 시스템에는 파일이 있습니다.
자세한 내용은 계속 읽어보세요.
참고: 저는 Linux/Unix/Mac OS X 용어를 사용하고 있습니다. Linux/Unix/Mac OS X 용어는 내 핵심 전문 지식이 있기 때문입니다. 그러나 기본 개념은 Windows 및 실제로는 모든 OS에 적용됩니다.
OS/커널이 단순히 정보를 이동하지 않는 이유는 무엇입니까? 바이트/섹터/주소 포인터/한 FileSystem 테이블에서 다른 파티션의 FileSystem 테이블로 해당 파일에 할당된 것은 무엇입니까?
이는 어떤 섹터가 어떤 파일에 연결되어 있는지 제어 및 관리하는 inode 테이블이 디스크별, 파티션별 구성이기 때문입니다.
따라서 무언가를 복사할 때 발생하는
C:
모든 작업은 동일한 드라이브에 있는 파일에 대한 새 경로를 나타내기 위해 드라이브C:
에서 inode 항목이 편집되는 것입니다 .C:
C:
C:
그러나 에서 로 무언가를 복사할 때D:
데이터를 복사해야 하며D:
드라이브에 새 inode 항목을 생성해야 합니다.
C:
장치별, 파티션별로 모든 드라이브 데이터를 보관하는 대신 기본 드라이브에 모든 드라이브 데이터를 보관하면 안되는 이유가 무엇인지 궁금하다고 가정해 보겠습니다 . 그렇다면 해당 드라이브나 파티션을 다른 컴퓨터로 이동하면 어떻게 될까요? 드라이브 D:
는 할당 테이블 데이터가 없으면 비어 있고 사용되지 않는 공간처럼 보입니다. 그리고 C:
이와 같은 시나리오에서 드라이브가 충돌 하면 C:
드라이브뿐만 아니라 드라이브에 연결된 더 깊은 파일 시스템 정보도 잃게 됩니다 D:
.
또한 다음과 같이 질문을 편집했습니다.
파티셔닝은 물리적이지 않고 논리적이라고 생각합니다.
예, 아니오. 파티셔닝논리적이다파티션 테이블 옆면에 있습니다. 그러나 파일 시스템 수준에서 파일 시스템은 파티션을 봅니다.마치 다른 물리적 디스크인 것처럼.
그리고 당신은 이렇게 묻기도 합니다.
그렇다면 OS 또는 파일 시스템 컨트롤러가 이 메타데이터를
helloKitty.txt
다른 파티션 테이블에 복사하지 않는 이유는 무엇일까요?
그것하다메타데이터를 한 곳에서 다른 곳으로 복사합니다. 그러나 해당 데이터 D:
는 에서 복사될 때까지 존재하지 않으므로 실제 파일 데이터도 복사합니다 C:
. 그리고 C:
디스크/파티션 에서 디스크/파티션으로 복사할 때 바이트 및 섹터 데이터가 변경되므로 복사하는 메타데이터는 파일 내용에 대한 기본으로 제한됩니다 D:
.
바이트의 포인터는 변경되지 않으며 파티션이 물리적이 아닌 논리적이기 때문에 절대적입니다.
파티션의 맥락에서 파티션은 "논리적"입니다. 해당 파티션의 파일 시스템에 저장된 데이터는 파티션 테이블로 올라가는 개별 파일에 대한 데이터의 맥락에서 "논리적"이지 않습니다. 그게 바로 그런 식이고 분할은—Wikipedia에서 정의한 대로—다음과 같이 설명됩니다. 강조는 내꺼야:
디스크 파티셔닝은 하드 디스크 드라이브(HDD)를 파티션이라고 하는 여러 개의 논리적 저장 장치로 나누는 작업입니다.하나의 물리적 디스크 드라이브를 여러 디스크인 것처럼 처리하여 각 파티션에서 서로 다른 파일 시스템을 사용할 수 있습니다.
답변2
파일 시스템은 각 파일의 내용에 대한 주소 이상의 것입니다. 또한 파티션의 어느 부분이 할당되지 않았는지("여유 공간"), 총 사용 가능한 여유 공간이 얼마나 되는지 추적해야 합니다. 파티션의 파일 시스템이 C:
파티션 내에 일부 파일 데이터를 저장하려면 D:
먼저 파일 시스템의 구조를 조사하여 D:
여유 공간을 찾아야 하며 해당 공간을 파일 시스템에 할당된 것으로 표시하여 D:
데이터가 에서 생성된 다른 파일로 덮어씌워졌습니다 D:
. 나중에 filesystem에 있는 것으로 보이는 파일을 삭제하면 해당 공간을 사용 가능한 것으로 표시하기 위해 다시 C:
파일 시스템에 접근해야 합니다 .D:
오류 검사는 문제가 될 수 있습니다. 일반적으로 할당된 것으로 표시되었지만 실제로 파일 시스템의 디렉터리 구조에 있는 파일의 일부가 아닌 공간이 있는 경우 이는 오류로 간주됩니다. 일관성 검사기(예: Windows chkdsk
또는 Linux/Unix fdisk
)는 공간을 사용 가능한 것으로 표시하거나 사람이 데이터를 검사하고 수동으로 삭제할 수 있도록 해당 공간에 매핑된 파일을 생성합니다. 그러나 문제의 데이터가 실제로 다른 파일 시스템에 있는 파일의 일부인 경우 해당 공간을 사용하는 파일이 아직 남아 있는 동안 공간이 사용 가능한 것으로 표시됩니다(즉시 또는 누군가 "복구된" 파일을 삭제할 때).
파일 시스템 경계를 넘어 파일을 안전하게 할당하려면 두 파일 시스템이 서로의 구조를 영구적으로 "인식"해야 하며, 여러 파티션에 걸쳐 있는 단일 파일 시스템일 수도 있습니다. 일부 파일 시스템은 실제로 이를 지원합니다.zfs
그리고btrfs
. 이는 파일 시스템에 내장된 일종의 RAID처럼 작동합니다. 즉, 여러 디스크에 있는 경우에도 여러 파티션을 단일 논리 드라이브로 표시할 수 있습니다. 그러나 파티션과 디스크는 서로 종속되어 있습니다. 하나만 가져가서 단독으로 사용할 수는 없습니다.
답변3
이 측면에서 서로 다른 파티션은 서로 다른 디스크와 같습니다.
각 파티션의 블록은 연속적으로 할당됩니다. 제안하는 것은 디스크가 자동으로 파티션을 다시 분할하여 파티션에 속한 섹터를 다른 파티션에 할당한다는 것입니다.
이 접근 방식은 오류가 발생하기 쉽고 디스크 성능을 저하시키며 저널링과 같은 다른 기능을 손상시킵니다.