суббота, 22 ноября 2014 г.

Очистка свободного места в Linux.



Дополню свой прошлый опус про очистку свободного места.
Нашел я таки утилиту которая умеет забивать свободное место нулями без раздувания файла-образа. Называется она "Wipe Free Space", и скачать её исходники можно отсюда, а про сборку почитать тут.

На виртуальной машине у меня используется файловая система ext4, но ради интереса добавил поддержку NTFS. С FAT12/16/32 собрать не получилось, а остальные поддерживаемые файловые системы я даже не пробовал ковырять.
Для того, чтобы программа умела работать с ext2/3/4 и NTFS, я поставило пакеты "e2fslibs-dev" и "ntfs-3g-dev". Скрипт "configure" после работы выдал:

***********************************
* Ext2/3/4: yes
* NTFS: yes
* XFS: no (xfs_db program missing)
* ReiserFSv3: no (library missing or unusable)
* Reiser4: no (library missing or unusable)
* FAT12/16/32: no (library missing or unusable)
* MinixFS: no (library missing or unusable)
* JFS: no (library missing or unusable)
* HFS+: no (library missing or unusable)
* OCFS: no (library missing or unusable)
***********************************
* Wiping free space enabled: yes
* Wiping undelete data enabled: yes
* Wiping partially used blocks enabled: yes
***********************************
* LibHideIP enabled: no (disabled by command line)
* LibNetBlock enabled: no (disabled by command line)
***********************************
***********************************


Дабы не превращать Debian в Slackware, установил собранное с помощью checkinstall.
Программу запускал с максимально щадящими опциями:

sudo wipefreespace --all-zeros --nopart /dev/sda1 -v -n 1

В один проход (-n 1) забить свободное место диска /dev/sda1 нулями (--all-zeros), не трогая частично занятые блоки (--nopart), и при этом не молчать (-v).

К моему удивлению программа отработала довольно шустро, а образ после обработки стал по размеру чуть больше занятого на дисках места с учетом раздела подкачки.