пятница, 8 марта 2013 г.

Заметка: как сделать swap из файла?



Я это знаю, ты это знаешь, но вот тот паренёк в красной футболке с роутером в руках не знает. Вот ему и расскажу про то, как сделать swap-файл и подключить его в прошивке TomatoUSB.

Делать всё будем через SSH средствами самой прошивки и даже безе OptWare.
Предупреждаю, что всё делается на жестком диске, а не на флешке!
Правильнее делать не файл, а раздел для подкачки, но случаи бывают разные.
Прежде всего подключаем жесткий диск и смотрим, куда прошивка что смонтировала. Посмотреть это модно в web-интерфейсе или командой "mount". Допустим, что он смонтирован в директорию "/mnt/data/".
Теперь можно создавать пустой файл под swap. Делать большой смысла нет, потому что целиком его использовать будет сложно, а место не казенное, так что 256 мегабайт будет вполне достаточно. Файл будем создавать с помощью команды "dd":
dd bs=1M count=256 if=/dev/zero of=/mnt/data/swap.swp
Пояснение: взять 256 блоков по 1 мегабайту из "/dev/zero" и записать в файл "/mnt/data/swap.swp".
Файл есть, но использовать его пока нельзя, для предания ему нужного формата воспользуемся командой "mkswap":
mkswap /mnt/data/swap.swp
Всё, теперь файл можно подключать. Для этого используется команда "swapon":
swapon /mnt/data/swap.swp
Теперь у нас есть подключенный файл подкачки.
Если всё равно ничего не понятно, то посмотрите вот этот ролик http://ascii.io/a/2307. Там же показано, как проверить, что всё подключилось правильно.

Теперь настроим автоматическое подключение файла подкачки при монтировании диска. Для этого открываем страницу "USB Support" (обычно http://192.168.1.1/nas-usb.asp) и в графу "Run after mounting" прописываем следующее в самое начало:
if [ -f /mnt/data/swap.swp ]; then swapon /mnt/data/swap.swp; fi
А в графу "Run before unmounting":
swapon /mnt/data/swap.swp