ext4 파티션이 몇 개 있지만 할당되지 않은 공간이있는 드라이브 (SD 카드)가 있습니다. 이 fstrim
유틸리티는 파일 시스템 내에서만 작동 할 수 있습니다. 휠을 다시 작성하고 쓰기 전에 할당되지 않은 공간을 트리밍하거나 명시 적으로 지정된 범위를 트리밍 할 수있는 다른 유틸리티가 있습니까?
장치에서 할당되지 않은 공간의 대부분이 현재 컨트롤러에 의해 사용 가능한 것으로 알려져 있지 않은지 확인할 수 있습니다 .이 특정 카드에서 잘린 공간 반환 0을 읽지 만 장치 스캔 결과는 많은 가비지 데이터가 남아 있습니다.
편집 : 사용 중 문제가 hdparm
있습니다. 아래 예제는 첫 번째 섹터를 삭제하지만 지정한 범위에 관계없이 동일한 결과가 나타납니다. fstrim
장치에 문제가 없습니다 :
root@ubuntu:~# hdparm --please-destroy-my-drive --trim-sector-ranges 0:1 --verbose /dev/mmcblk0
/dev/mmcblk0:
trimming 1 sectors from 1 ranges
outgoing cdb: 85 0d 06 00 01 00 01 00 00 00 00 00 00 40 06 00
outgoing_data:
00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ioctl(fd,SG_IO): Invalid argument
FAILED: Invalid argument
더 조사 중이지만 통찰력이있는 사람이 있습니까?
blkdiscard
보이지만 표준 패키지 저장소에서 사용할 수없는 것 같습니다 (Ubuntu 12.04,에없는 것 같습니다 util-linux
).
hdparm
어떤 이유로 든 나를 위해 일할 수 없었지만 github.com/karelzak/util-linux/tree/stable/v2.23 에서 util-linux 소스를 가져 와서 빌드했습니다 ( ./autogen.sh ; ./configure ; make blkdiscard
). 아직도 미스터리 hdparm
하지만 blkdiscard
내가 원하는 것을 정확하게합니다. 보너스 : 임시 파일 시스템을 먼저 만들 필요가 없습니다 . sfdisk -l
파티션 사이의 공간을 알아 내고 blkdiscard
다듬을 수 있습니다.
blkdiscard
오프셋 / 길이 옵션으로 작업 할 수 있다는 것을 알지 못했습니다 . 그래서 내가 제안한 임시 파티션은 필요하지 않습니다. 좋은!
blkdiscard
하면 전체 장치를 다듬는 공간에서 사용할 수 있습니다 .