Как обновить Debian Etch до Lenny
Введение
Debian Etch скоро перестанет получать поддержку от команды Debian, поэтому многие сервера нужно обновить до Debian Lenny. Этот материал собран на основе практического опыта администратора, который проводил несколько таких обновлений. Руководство фокусируется на минимизации рисков и на том, чтобы у вас была возможность восстановиться, если что-то пойдёт не так.
Важно: перед началом обновления убедитесь, что у вас есть работающая резервная копия и план отката.
Необходимые понятия (коротко)
- apt/aptitude — менеджеры пакетов Debian; aptitude предоставляет удобный интерфейс и автоматизацию зависимостей.
- dpkg — низкоуровневый инструмент управления пакетами .deb.
- sources.list — файл /etc/apt/sources.list, в котором указаны репозитории.
Подготовка и резервное копирование
- Сделайте полную резервную копию диска или виртуального образа и храните её вне целевого сервера. Это может быть полная резервная копия LVM, snapshot VM или внешний бэкап.
- Сделайте локальную копию конфигураций:
mkdir -p /root/backup-etc-before-lenny
cp -a /etc /root/backup-etc-before-lennyПримечание: хранение /etc локально ускорит восстановление отдельных конфигов, если они будут перезаписаны.
Важно: резервная копия должна быть проверяема — выполните выборочное восстановление файлов в тестовой среде.
Удалённый доступ: SSH и screen
При удалённом обновлении всегда выполняйте апгрейд в screen или tmux, чтобы не потерять прогресс при разрыве соединения.
Запустить screen:
screenПереподключиться к сессии:
screen -rdЕсли screen отсутствует:
aptitude install screenОбновите текущую Etch-систему перед сменой репозиториев
Перед переключением на Lenny убедитесь, что ваша Etch-система полностью обновлена:
aptitude update && aptitude dist-upgradeЕсли во время этого шага обновился ядро, перезагрузитесь, чтобы система работала на актуальном ядре перед миграцией.
Проверка свободного места
Убедитесь, что на корневом разделе и в /var достаточно места для загрузки и распаковки пакетов. При необходимости очистите кеш:
aptitude cleanРедактирование sources.list для Lenny
Отредактируйте /etc/apt/sources.list: замените etch на lenny. Закомментируйте сторонние репозитории и бэкапорты на время обновления.
Пример набора репозиториев (используемые зеркала):
deb http://ftp.uk.debian.org/debian/ lenny main contrib non-free
deb-src http://ftp.uk.debian.org/debian/ lenny main contrib non-free
deb http://security.debian.org/ lenny/updates main contrib non-free
deb-src http://security.debian.org/ lenny/updates main contrib non-freeПосле правки выполните:
aptitude updateСначала обновите apt и aptitude
Обновление apt и aptitude важно, поскольку они влияют на обработку зависимостей и конвертацию списков автоматически установленных пакетов.
aptitude update && aptitude install apt && aptitude install aptitudeПервая команда apt/aptitude версии Lenny прочитает список автоматически установленных пакетов и конвертирует его. Если у вас установлен aptitude, выполните хотя бы одну команду для конвертации, например:
aptitude search "?false"Если команда в примере не возвращает ошибок — конвертация прошла.
Минимальное системное обновление
Выполните минимальный апгрейд, который обновит пакеты без удаления/установки дополнительных зависимостей:
aptitude safe-upgradeОставайтесь у терминала: в процессе обновления вас будут спрашивать про перезапись конфигураций. По умолчанию используется существующая конфигурация — это безопасный вариант. Если нужен функционал новых конфигов, сравните и примените изменения вручную.
Совет: перед массовой заменой конфигов сохраняйте старые файлы с расширением .dpkg-old или .local для быстрой проверки.
Полный апгрейд системы
После safe-upgrade выполните полный апгрейд:
aptitude dist-upgradeОпять же — ожидайте диалогов по конфигурациям и перезапусков сервисов. Некоторые службы (ssh, apache, mysql и т.д.) могут запросить перезапуск — соглашайтесь аккуратно, если вы подключены по SSH, убедитесь, что вы в screen.
Проверка и обновление ядра
Проверьте, обновилось ли ядро автоматически:
dpkg -l "linux-image*" | grep ^iiЕсли вывода нет, придется установить пакет ядра вручную. Узнайте текущее ядро:
uname -rПример вывода:
cartman:~# uname -r
2.6.26-2-686Подберите доступный пакет ядра:
apt-cache search linux-image-2.6- | grep -v transitionПример вывода:
cartman:~# apt-cache search linux-image-2.6- | grep -v transition
linux-image-2.6-486 - Linux 2.6 image on x86
linux-image-2.6-686 - Linux 2.6 image on PPro/Celeron/PII/PIII/P4
linux-image-2.6-686-bigmem - Linux 2.6 image on PPro/Celeron/PII/PIII/P4
linux-image-2.6-amd64 - Linux 2.6 image on AMD64
linux-image-2.6-openvz-686 - Linux 2.6 image on PPro/Celeron/PII/PIII/P4, OpenVZ support
linux-image-2.6-vserver-686 - Linux 2.6 image on PPro/Celeron/PII/PIII/P4, Linux-VServer support
linux-image-2.6-vserver-686-bigmem - Linux 2.6 image on PPro/Celeron/PII/PIII/P4, Linux-VServer support
linux-image-2.6-xen-686 - Linux 2.6 image on i686, oldstyle Xen supportУстановите подходящий пакет (в примере — linux-image-2.6-686):
aptitude install linux-image-2.6-686Перезагрузите сервер. Держите под рукой консоль KVM/IPMI для восстановления, на случай, если загрузчик или конфигурация завалит запуск.
В официальных заметках Debian рекомендуют повторно запустить /sbin/lilo (если вы используете lilo) и проверить /etc/kernel-img.conf: убедитесь, что do_bootloader = Yes, чтобы загрузчик автоматически обновлялся после установки нового ядра.
Тестирование после обновления
- Проверьте загрузку и версию ядра: uname -r
- Проверьте статус основных служб: systemctl (если применимо) или /etc/init.d/* status
- Просмотрите логи: /var/log/syslog, /var/log/kern.log, /var/log/dpkg.log
Откат и восстановление
Если система не загружается или критичные сервисы упали:
- Восстановите конфиг из /root/backup-etc-before-lenny.
- Если используется снимок VM/LVM — выполните rollback снимка.
- В крайнем случае восстановите из полной резервной копии.
Важно: подготовьте заранее план отката и протестируйте его на стенде.
Чек-лист перед началом (SOP)
- Сделана полная, проверяемая резервная копия.
- Локально сохранён /etc.
- Есть доступ к консоли KVM/IPMI.
- Система обновлена до последнего Etch-патча.
- Комментарии в sources.list для сторонних репозиториев.
- Достаточно дискового пространства.
Роли и обязанности
- Системный администратор: запуск обновления, контроль логов, принятие решений по конфигам.
- Оператор резервного копирования: проверка и подтверждение валидности бэкапов.
- Ответственный за мониторинг: наблюдение за сервисами после апгрейда.
Критерии приёмки
- Система успешно загрузилась на Lenny-ядре.
- Все критические сервисы (SSH, веб, БД) работают и проходят smoke-тесты.
- Логи не содержат критических ошибок за 24 часа после обновления.
- Бекапы и экспорт данных доступны и проверяемы.
Типичные проблемы и как их решать
Проблема: Дефолтные конфиги были перезаписаны. Решение: восстановите /root/backup-etc-before-lenny или вручную объедините отличия.
Проблема: Пакет ядра не установлен автоматически. Решение: вручную установите linux-image-* соответствующей архитектуры и перезагрузите.
Проблема: Сторонние репозитории несовместимы с Lenny. Решение: закомментируйте их, завершите обновление, затем обновите сторонние репозитории под Lenny.
Советы и эвристики
- Обновляйте сначала пакеты управления пакетами (apt/aptitude).
- Включите screen/tmux — потеря SSH не прервет работу.
- Всегда проверяйте свободное место в /boot и /var.
Таблица совместимости ядра (упрощённая)
- i386 (классификация 486/686) — используйте linux-image-2.6-486 или linux-image-2.6-686.
- amd64 — linux-image-2.6-amd64.
- Контейнеры/виртуализация — используйте соответствующие flavor пакеты (openvz, xen, vserver).
Миграционные альтернативы и когда это не сработает
- Альтернатива: развернуть новую VM с Lenny и мигрировать приложения — безопаснее для критичных производств.
- Когда не сработает: если у вас сильно изменённое окружение с нестандартными проприетарными пакетами, апгрейд in-place может сломать зависимости.
Тест-кейсы и проверка приёмки
- SSH-подключение стабильно на протяжении 10 минут после загрузки.
- Веб-приложение проходит базовый набор тестов (GET /health, логин, выборка данных).
- Резервное копирование проходит, и тестовое восстановление одного файла успешно.
Краткий глоссарий (1 строка для каждого термина)
- aptitude — высокоуровневый менеджер пакетов для Debian с автоматическим решением зависимостей.
- apt — основной набор инструментов для работы с репозиториями и пакетами.
- dpkg — низкоуровневый менеджер пакетов для установки/удаления .deb.
Частые вопросы
Q: Нужно ли отключать сторонние репозитории? A: Да — временно закомментируйте их, чтобы избежать конфликтов зависимостей.
Q: Можно ли откатываться без полного бэкапа? A: Откат без полного бэкапа рискован; используйте снимки или проверяемые бэкапы.
Заключение
Обновление Debian Etch до Lenny возможно безопасно при соблюдении ряда правил: сделайте полную и проверяемую резервную копию, обновите apt/aptitude, выполните поэтапный апгрейд (safe-upgrade, затем dist-upgrade), проверьте и при необходимости вручную установите ядро. Всегда держите консольный доступ через KVM/IPMI и помните про план отката.
Пожалуйста, пишите в комментариях о возникших проблемах — по мере возможности автор поможет, но помните, что за работу на продакшене вы отвечаете сами.

Список полезных команд (шпаргалка)
screen
screen -rd
aptitude update && aptitude dist-upgrade
aptitude update && aptitude install apt && aptitude install aptitude
aptitude search "?false"
aptitude safe-upgrade
aptitude dist-upgrade
dpkg -l "linux-image*" | grep ^ii
uname -r
apt-cache search linux-image-2.6- | grep -v transition
aptitude install linux-image-2.6-686Ключевые контакты и роли должны быть заранее определены перед апгрейдом.
Примечание по лицензии и ответственности
Автор выкладывает инструкции в ознакомительных целях. Используйте материал на свой страх и риск — заранее протестируйте на стенде.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента