いくつかの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
、デバイス全体をトリミングするパーティションで使用できます。