На старом HDD обычно лежит всё подряд: образы, архивы, рабочие файлы, «скачал на всякий случай». Открываешь такую папку в Dolphin или Midnight Commander, и система задумывается, а диск тарахтит. В мае 2025 года я ускорил работу со своей «помойкой» на Ubuntu утилитой vmtouch: без покупки NVMe и без магии.
Почему тормозит
Жёсткий диск медленнее SSD по определению, особенно когда в каталоге сотни гигабайт и тысячи файлов: файловый менеджер читает метаданные, тянет миниатюры, ходит по inode. Кэш страниц Linux помогает, но то, чем пользуешься редко, в оперативке не задерживается.
Что такое vmtouch
vmtouch это небольшая утилита под лицензией BSD, которая показывает, какие файлы сейчас лежат в кэше, и умеет явно загрузить их туда, выгрузить или закрепить в памяти. Автор Doug Hoyte, исходники на GitHub.
В Ubuntu пакет есть в репозиториях 22.04, 24.04 и 26.04, так что ставится одной командой:
sudo apt install vmtouch
Что греть, а что нет
Весь диск в RAM не влезет, если это не сервер с сотнями гигабайт памяти. Разумный фильтр: только свежие файлы, например изменённые за последнюю неделю. У меня это как раз то, что качал, открывал и раздавал:
find /mnt/data/Download -type f -mtime -7 -print0 | xargs -0 vmtouch -t
- find выбирает файлы за последние 7 дней;
- vmtouch -t читает их в кэш страниц;
- свежий слой папки после этого открывается почти как с SSD.
Как проверить, что кэш прогрелся
Без ключа -t vmtouch только показывает статистику. Строка Resident Pages говорит, какая часть файлов уже в памяти:
vmtouch /mnt/data/Download
Автозапуск после перезагрузки
Руками каждый раз лень, поэтому прогрев вынесен в скрипт ~/warmup_downloads.sh с правами на запуск (chmod +x) и повешен на crontab -e:
@reboot /home/slon/warmup_downloads.sh
Если диск к этому моменту ещё не смонтирован, скрипт пишет в лог и выходит:
if ! mountpoint -q /mnt/data; then echo "$(date) /mnt/data не смонтирован" >> /home/slon/warmup_log.txt exit 1 fi find /mnt/data/Download -type f -mtime -7 -print0 | xargs -0 vmtouch -t
Советы напоследок
- мало RAM: грейте только нужные расширения, например *.jpg и *.pdf;
- пишите в лог дату, чтобы видеть, когда скрипт реально отработал;
- ключ -l закрепляет файлы в памяти, а -e наоборот выгружает их из кэша;
- появится SSD или NVMe: vmtouch всё равно пригодится для горячего слоя файлов.
Итог: vmtouch не превращает HDD в SSD, но свежие файлы после прогрева открываются за доли секунды, и архив перестаёт бесить в ежедневной работе. Чем больше оперативки, тем шире кэш. Попробуйте на своей «помойке» и сравните до и после.