14 апр. 2017 г.

SWAP файл

Буквально вчера (13 апреля) вышла новая версия Ubuntu 17.04. Куча всяких новшеств. Кому интересно и понимает басурманский язык можно почитать тут.

Среди всех нововведений есть одно интересное: вместо SWAP разделов теперь будут использоваться SWAP файлы. Правда это будет касаться только свежеустановленных систем. То есть если вы обновляетесь с пердыдущей версии до 17.04 то можно не беспокоиться: ваш текущий SWAP не сломается.

Фишка довольно сильно упрощает установку системы новичком. Вспомните себя в первый раз устанавливающего Linux. Сколько вопросов возникало: что за SWAP раздел такой?... зачем он вообще нужен?... а сколько его надо?... а можно вообще без него? Ну так вот: можно теперь обойтись без SWAP раздела и использовать файл вместо него. Единственное ограничение (ну или особенность если хотите) - файл должен быть фиксированного размера. То есть он будет занимать какое-то место на диске независимо от того используется он системой или нет. Использование файла вместо раздела также сильно упрощает управление всем этим хозяйством. Можно быстро перенести SWAP на другой раздел/жесткий диск. Можно довольно быстро и просто изменить размер SWAP файла или убрать его вообще, если вдруг выяснится, что ваша система хорошо справляется со всеми задачами и без SWAP'а

К чему все это? Допустим вы не хотите устанавливать новую версию ubuntu, а попробовать SWAP файл хочется уже сегодня (собственно вам ничего не мешало это сделать и раньше, но не об этом сейчас). Итак, давайте создадим SWAP файл и подключим его к системе.

Для начала нам необходимо создать обычный файл фиксированного размера

sudo dd if=/dev/zero of=/mnt/some-path/swapfile bs=1024 count=2048k

Этой командой мы указываем что необходимо из устройства /dev/zero скопировать 2048k блоков размером 1024 байт каждый в /mnt/some-path/swapfile. В результате мы получим swapfile размером 2 гигабайта. Никто не запрещает создать файл большего или меньшего размера.

Дальше создаем SWAP область в нашем только что созданном файле

sudo mkswap /mnt/some-path/swapfile

Для безопасности задаём параметры доступа (чтение/запись) к SWAP файлу только для root пользователя

sudo chmod 0600 /mnt/backups/swapfile

Меняем в /etc/fstab строчку, отвечающую за SWAP

sudo nano /etc/fstab

....
/mnt/some-path/swapfile none swap sw 0 0
....

Перезагружаем компьютер и все должно заработать. Проверить, что всё заработало можно запустив top в консоли.

Видите свои 2 гигабайта? Значит всё заработало. Видите нули - значит SWAP файл не подключился. Наиболее вероятная причина этого будет ошибка в пути к SWAP файлу в fstab.

Комментариев нет :