Mam dysk (kartę SD) z kilkoma partycjami ext4, ale także trochę nieprzydzielonego miejsca. fstrim
Narzędzie może pracować tylko w systemie plików. Czy zanim jeszcze raz wymyślę koło i napiszę jedno, czy istnieje inne narzędzie, które może PRZYCINAĆ nieprzydzielone miejsce (lub które może PRZYCINAĆ wyraźnie określony zakres)?
Mogę sprawdzić, czy większość nieprzydzielonego miejsca na urządzeniu nie jest obecnie znana jako wolna od kontrolera, ponieważ zauważyłem, że na tej konkretnej karcie odczytuje się skrócone znaki zerowe, ale skan urządzenia pokazuje pozostało dużo śmieci.
Edycja: Mam problem z używaniem hdparm
. Poniższy przykład odrzuca pierwszy sektor, ale widzę te same wyniki niezależnie od określonego zakresu. fstrim
nie ma problemów z urządzeniem:
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
Badam dalej, ale czy ktoś ma wgląd w to?
blkdiscard
wydaje się , że nie jest dostępne w moich standardowych repozytoriach pakietów (Ubuntu 12.04, nie wydaje się być w nim obecne util-linux
).
hdparm
jakiegoś powodu nigdy nie byłem w stanie pracować dla mnie, ale skorzystałem ze źródła util-linux z github.com/karelzak/util-linux/tree/stable/v2.23 , zbudowałem ( ./autogen.sh ; ./configure ; make blkdiscard
) i działa świetnie. Nadal się zastanawiam, hdparm
ale blkdiscard
robi dokładnie to, czego chcę. Bonus: Nie musisz najpierw tworzyć tymczasowego systemu plików, możesz go użyć, sfdisk -l
aby obliczyć przestrzeń między partycjami i blkdiscard
ją przyciąć.
blkdiscard
pracować z opcjami przesunięcia / długości. Więc tymczasowe partycje, które zasugerowałem, nie są nawet konieczne. Miły!
blkdiscard
na nich, która przycina całe urządzenie.