블록 장치에서 사용된 하드 디스크 공간을 감지하는 방법은 무엇입니까?

블록 장치에서 사용된 하드 디스크 공간을 감지하는 방법은 무엇입니까?

/dev/sda원시 블록 장치(예: )를 보고 드라이브에서 얼마나 많은 공간이 사용되는지 이해하고 싶습니다 .

하드 드라이브에 어떤 유형의 파일 시스템이 있는지 알 수 없으며 이 문제를 해결할 방법도 없습니다. 하드 드라이브는 분명히 "비어 있을" 수 없지만, 내가 아는 것은 "빈 공간"이 여러 개의 0으로 표시된다는 것입니다(출력에서와 같이 /dev/zeroASCII 문자가 아님 0).

블록 장치를 스캔한 후 0 값으로만 ​​채워진 블록 수를 알려주는 출력을 얻으려면 어떻게 해야 합니까?

답변1

내가 아는 건 "빈 공간"이 0의 묶음으로 표시된다는 것뿐입니다.

이것은 잘못된 것입니다. 많은 디스크가 모두 0으로 시작하지만 그대로 유지되지는 않습니다. 대부분의 운영 체제는 사용이 중단된 디스크 섹터를 0으로 만들지 않습니다. 섹터가 다시 사용될 때까지 마지막에 포함된 내용을 그대로 유지합니다.

TRIM이 모두 0인 블록을 생성하기 때문에 SSD 장치에는 더 많은 0인 섹터가 있을 수 있지만 이는 사용되지 않은 섹터가 어떤 식으로든 0으로 지워진다는 것을 보장하지 않으며 단지 더 큰 사용되지 않은 블록의 일부인 섹터가 충분히 길다는 점만 보장합니다. .

파일 시스템에서 사용되지 않은 공간을 감지하는 유일한 방법은 파일 시스템 구조를 분석하는 것입니다. 사용되지 않은 공간은 파일 시스템에서 사용되지 않는 공간입니다.

관련 정보