Библиотека сайта или "Мой Linux Documentation Project"
"Linux по-русски". Загрузка Linux менее, чем за 40 секунд
Загрузка Linux менее, чем за 40 секунд
Оригинал:
Автор: Alessandro Franci
Дата: Февраль 2008
Перевод: Андрей Синицын aka boombick
Дата перевода: 25 февраля 2009
При копировании материала обязательны указание автора, переводчика и ссылки
на оригинал статьи и настоящую страницу как первоисточник перевода!
Частенько хочется, чтобы Linux-система грузиалсь побыстрее. Ну, скажем,
за минуту. Мечты становятся реальностью: теперь есть возможность получить
полностью работоспособную систему в том состоянии, в котором вы ее оставили,
менее чем через 40 секунд после нажатия кнопки Power. Даже лучше, чем вы хотели,
не так ли? "Не верю, это невозможно" - скажете вы.
Ну чтож, .
Удивлены? Держу пари, что да. А на самом деле это очень просто и называется
это - гибернация (hibernation). Прим. перевод. В своем исходном значении
это слово переводится как "находиться в зимней спячке", дремать".
Что это такое?
В процессе "засыпания" (или гибернации) содержимое оперативной памяти
записывается на swap-раздел перед выключением компьютера. При старте система
восстанавливается в том состоянии, в котором была на момент "усыпления", все
программы продолжают выполняться, как будто бы выключения и не происходило.
Как можно увидеть на ,
процесс "пробуждения" проходит гораздо быстрее, чем перезагрузка.
Приступим
Для начала нам понадобится раздел подкачки, если у вас его нет, то необходимо его создать. Его объем должен быть больше, чем объем оперативной памяти, установленной на вашем компьютере. Если он меньше, то увеличьте его. Для работы с разделами можно использовать такие приложения, как parted, fdisk, cfdisk (утилиты командной строки) или gparted (программа с графическим интерфейсом). После создания или изменения раздела подкачки, его необходимо активировать:
# mkswap /dev/devX
# swapon /dev/devX
где devX - это ваш swap-раздел (например hda8, sda1 и т. д.)
Наложение патчей на ядро
Теперь необходимо наложить на ядро патчи, которые добавят ему
функциональность, необходимую для реализации процесса "засыпания".
Загрузите патчи для вашей версии ядра отсюда:
.
Если патча для вашей версии нет, то самое время обновить ядро :) Кстати, не стоит беспокоится о минорной версии ядра. Например, если у вас, как и у меня, ядро версии 2.6.23.13, а патч имеется только для версии 2.6.23.9, то не стоит делать даунгрейд до более ранней версии, качайте и устанавливайте патч для 2.6.23.9 - он нормально будет работать.
Применим скачанный патч:
cd /usr/src/linux-2.6.xx.xx
bzcat /path/to/patch | patch -p1
где 2.6.xx.xx - версия вашего ядра. Теперь сконфигурируем ядро и добавим нужную нам функциональность
Power management options --->
[*] Power Management support
[*] Hibernation (aka 'suspend to disk')
<*> Enhanced Hibernation (TuxOnIce) (NEW) --->
<*> File Allocator
<*> Swap Allocator
<*> Compression support
<*> Userspace User Interface support
[ ] Allow Keep Image Mode
[*] Replace swsusp by default
< > Cluster support --->
[*] Checksum pageset2
(25) Default waiting time for emergency boot messages
< > Test pageflags
Проверьте, активен ли DMA-режим для вашего жесткого диска. Поверьте, это реально увеличит скорость "засыпания" и "пробуждения" компьютера.
Device Drivers --->
DMA Engine support --->
[*] Support for DMA engines
Также имеет смысл активировать поддержку алгоритма сжатия LZF, это уменьшит объем данных при записи и сделает гибернацию более быстрой
Cryptographic API --->
<*> LZF compression algorithm
С ядром закончили, теперь соберите и установите его, как обычно.
Настройка загрузчика
Теперь настроим загрузчик. Надо добавить вот эту строчку
resume=swap:/dev/devX resume2=swap:/dev/devX (devX - это ваш swap-раздел)
в дополнительную секцию конфиг-файла загрузчика. Если вы используете lilo, то исправьте /etc/lilo.conf, как в примере ниже:
Перезагрузите компьютер с вашим новым ядром. Если все прошло успешно, то во время загрузки (или в выводе команды dmesg) должны присутствовать следующие строки:
TuxOnIce 3.0-rc3, with support for checksumming, usm, compression, swap storage, file storage, userui.
TuxOnIce: Normal swapspace found.
Если их нет, то проверьте, активен ли Swap?
$ free|grep Swap
Swap: 497972 115020 382952
Если в результате вы получили серию нолей, вы забыли настроить раздел подкачки. Настройте его, как описывалось выше, и повторите перезагрузку
Установка скрипта для "засыпания"
Теперь установим hibernate-скрипт. Скачайте его с
, распакуйте и установите:
$ tar -xzvf hibernate-script-x.xx.tar.gz
$ cd hibernate-script-x.xx
# ./install.sh
Конфигурирование hibernate
Для корректного протекания процесса "засыпания" необходимо поправить несколько файлов. Откройте /etc/hibernate/hibernate.conf и добавьте туда следующие строки:
Опция -n симулирует процесс гибернации. Если все прошло успешно, то можно запустить "настоящую" гибернацию
# hibernate
Однако для тестовых запусков я рекомендую пользоваться опцией -r1. Она не выключает компьютер, а делает быструю перезагрузку
# hibernate -r1
Если все работает правильно, то система должна восстановиться в том состоянии, в котором она была на момент выключения. Если что-то работает неправильно (например, звук или сетевое соединение), то добавьте нужные модули в файл /etc/hibernate/blacklisted-modules. В примере мы добавляем модули для видеокарты, звука и сетевой карты
ipw2100
nvidia
snd_maestro3
В случае появления проблем изучайте документацию на
И в заключение
В зависимости от вашего процессора и производительности жесткого диска, вы загружаете работоспособную систему с сохраненным сеансом работы, менее чем за минуту. По-моему, это очень хорошо. Наслаждайтесь!
Эта статья еще не оценивалась
Вы сможете оценить статью и оставить комментарий, если
войдете или зарегистрируетесь.
Только зарегистрированные пользователи могут оценивать и комментировать статьи.