У мене є накопичувач (SD-карта) з кількома розділами ext4, але також з нерозподіленим простором. fstrim
Утиліта може працювати тільки в межах файлової системи. Перш ніж я винаходити колесо і записувати одне, чи є інша утиліта, яка зможе ТРІМ нерозподілений простір (чи може TRIM явно заданий діапазон)?
Я можу підтвердити , що більша частина незайнятого простору на пристрої НЕ в даний час , як відомо, бути вільним від контролера, як я помітив , що на цій конкретній карті, читає підстриженою простору повернення 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
чомусь так і не вдалося влаштуватися на роботу, але я схопив джерело util-linux від github.com/karelzak/util-linux/tree/stable/v2.23 , побудував його ( ./autogen.sh ; ./configure ; make blkdiscard
) і це чудово працює. Досі загадкований, hdparm
але blkdiscard
робить саме те, що я хочу. Бонус: спочатку не потрібно створювати тимчасову файлову систему, ви можете використовувати sfdisk -l
пробіл між розділами та blkdiscard
обрізати його.
blkdiscard
можливість роботи з варіантами зміщення / довжини. Тому тимчасові розділи, які я запропонував, навіть не потрібні. Приємно!
blkdiscard
на них, який обрізає весь пристрій.