Подробный гайд: Восстановление связей и ссылок в ALT Linux

Гайд по восстановлению ссылок, зависимостей и системных связей в ALT Linux: команды APT, rpm, ldconfig и Rescue-режим для полного восстановления системы.

2026.05.07                  


Подробный гайд: Восстановление связей и ссылок в ALT LinuxПодробный гайд: Восстановление связей и ссылок в ALT Linux Комплексное руководство по восстановлению системных связей, символьных ссылок и зависимостей в дистрибутиве ALT Linux.


Оглавление

  1. Диагностика проблем
  2. Восстановление зависимостей пакетов (APT)
  3. Работа с символьными ссылками (symlinks)
  4. Восстановление библиотечных ссылок (ldconfig)
  5. Пересборка RPM-базы данных
  6. Полное восстановление системы через Rescue
  7. Автоматизация и профилактика

1. Диагностика проблем

Перед восстановлением определите тип повреждения:

# Проверка целостности файловой системы
fsck -vf /dev/sda2  # замените на ваш раздел

# Поиск битых символьных ссылок
find / -xtype l 2>/dev/null

# Проверка зависимостей пакетов
apt-get check

# Просмотр состояния пакетов
rpm -Va | grep -v "^..5"  # проверка изменений в установленных файлах

2. Восстановление зависимостей пакетов (APT)

ALT Linux использует APT для управления пакетами.

Базовые команды восстановления:

# Обновление списка пакетов (всегда выполняйте первым шагом)
sudo apt-get update

# Автоматическое исправление нарушенных зависимостей
sudo apt-get install -f

# Альтернативный синтаксис (эквивалентен предыдущей команде)
sudo apt-get --fix-broken install

# Принудительная переустановка конкретного пакета
sudo apt-get install --reinstall имя_пакета

# Полное обновление системы (предпочтительно перед dist-upgrade)
sudo apt-get dist-upgrade

Важно:

В ALT Linux не рекомендуется использовать apt-get upgrade для частичного обновления — это может нарушить зависимости. Всегда используйте dist-upgrade.

Если APT «завис» из-за прерванной установки:

# Переконфигурирование всех пакетов
sudo dpkg --configure -a  # аналог доступен через rpm в ALT

# Очистка кэша и повторная попытка
sudo apt-get clean
sudo apt-get update
sudo apt-get install -f

3. Работа с символьными ссылками

Поиск и удаление битых ссылок

# Поиск всех битых ссылок в системе
find / -xtype l 2>/dev/null

# Подсчёт количества битых ссылок
find / -xtype l 2>/dev/null | wc -l

# Удаление битых ссылок (с подтверждением)
find / -xtype l -exec rm -i {} \;

# Удаление без подтверждения (осторожно!)
find / -xtype l -exec rm {} \;

Утилита symlinks (рекомендуется)

В репозиториях ALT Linux доступна утилита symlinks для профессионального управления ссылками:

# Установка утилиты
sudo apt-get install symlinks

# Проверка ссылок в указанном каталоге
symlinks -r /usr

# Поиск только битых (dangling) ссылок
symlinks -r -c /  # -c = check

# Автоматическое удаление битых ссылок
symlinks -r -d /  # -d = delete

# Конвертация абсолютных ссылок в относительные
symlinks -r -a /home

Ручное восстановление конкретной ссылки:

# Удаление старой битой ссылки
sudo rm /путь/к/битой/ссылке

# Создание новой корректной ссылки
sudo ln -s /реальный/путь/к/файлу /путь/к/ссылке

# Принудительное пересоздание (если ссылка уже существует)
sudo ln -sf /новый/целевой/путь /путь/к/ссылке

4. Восстановление библиотечных ссылок (ldconfig)

Если программы не находят библиотеки или ldd показывает «not found»:

# Обновление кэша динамических библиотек
sudo ldconfig

# Проверка, какие библиотеки видит система
ldconfig -p | grep имя_библиотеки

# Просмотр зависимостей исполняемого файла
ldd /путь/к/программе

# Добавление пользовательского пути к библиотекам
# 1. Создайте файл конфигурации:
echo "/usr/local/lib" | sudo tee /etc/ld.so.conf.d/local.conf

# 2. Обновите кэш:
sudo ldconfig

Если библиотеки установлены в /usr/local, убедитесь, что этот путь указан в /etc/ld.so.conf или в файлах каталога /etc/ld.so.conf.d/.


5. Пересборка RPM-базы данных

При ошибках вида «RPM database corrupted» или проблемах с установкой пакетов:

# Резервное копирование базы RPM
sudo cp -a /var/lib/rpm /var/lib/rpm.backup

# Пересборка базы данных из заголовков установленных пакетов
sudo rpm --rebuilddb

# Проверка целостности базы
sudo rpm --verifydb

# После пересборки — обновление кэша APT
sudo apt-get update

Команда rpm --rebuilddb удаляет повреждённые заголовки и компактирует базу, но не затрагивает сами установленные пакеты.


6. Полное восстановление системы через ALT Rescue

Если система не загружается, используйте ALT Linux Rescue — специализированный LiveCD для восстановления.

Пошаговый алгоритм:

  1. Загрузитесь с Rescue-носителя (установочный диск или ALT Linux Rescue)
  2. Получите права root (пароль пустой в Live-режиме)
3. Определите разделы системы:
   lsblk -f
   fdisk -l
4. Проверьте файловую систему:
   fsck -vf /dev/sda2  # замените на ваш корневой раздел
5. Смонтируйте систему:
   # Автоматическое монтирование (рекомендуется)
   mount-system

   # Или вручную:
   mount /dev/sda2 /mnt
   mount --bind /dev /mnt/dev
   mount --bind /proc /mnt/proc
   mount --bind /sys /mnt/sys
6. Перейдите в среду системы (chroot):
   chroot /mnt
7. Выполните восстановление:
   # Внутри chroot:
   apt-get update
   apt-get install -f
   ldconfig
   rpm --rebuilddb
   make-initrd -k $(ls -d /lib/modules/* | head -1 | xargs basename)
   update-grub
   grub-install /dev/sda  # для Legacy BIOS
   # или просто grub-install для UEFI
8. Выйдите и перезагрузитесь:
   exit
   unmount-system
   reboot

Если на диске есть спасательный раздел RECOVERY, можно восстановить систему через меню GRUB без внешнего носителя.


7. Автоматизация и профилактика

Создание точки восстановления (ALT 8 СП и новее)

ALT Linux поддерживает встроенный механизм резервного копирования через специальный раздел RECOVERY:

# Подготовка раздела восстановления (пример для /dev/sda5)
sudo mkfs.ext4 -j -L RECOVERY /dev/sda5
sudo mkdir /tmp/recovery
sudo mount -L RECOVERY /tmp/recovery
sudo mkdir -m700 /tmp/recovery/backup

# Копирование загрузочных файлов с установочного носителя
sudo cp -Lf /media/ALTLinux/EFI/BOOT/vmlinuz /tmp/recovery/backup/
sudo cp -Lf /media/ALTLinux/EFI/BOOT/full.cz /tmp/recovery/backup/
sudo cp -Lf /media/ALTLinux/rescue /tmp/recovery/

# Создание карты устройств
cat >/tmp/recovery/backup/map.conf <<EOF
target=/dev/sda
swap=1
root=2
home=3
EOF

# Активация в GRUB
sudo chmod +x /etc/grub.d/15_rescue  # если скрипт создан
sudo update-grub

Регулярные проверки (можно добавить в cron):

# Еженедельная проверка битых ссылок в пользовательских каталогах
0 3 * * 0 find /home -xtype l -exec logger "Broken symlink: {}" \;

# Ежемесячное обновление кэша библиотек
0 4 1 * * /sbin/ldconfig

# Проверка целостности пакетов после обновлений
0 5 * * * apt-get check 2>&1 | logger -t apt-check

Сводная таблица команд восстановления

Проблема Команда Описание
Нарушенные зависимости apt-get install -f Исправление зависимостей через APT
Битые символьные ссылки find / -xtype l Поиск неработающих ссылок
Удаление битых ссылок symlinks -r -d / Профессиональное удаление через утилиту
Библиотеки не находятся ldconfig Обновление кэша динамических библиотек
Повреждена RPM-база rpm --rebuilddb Пересборка базы данных пакетов
Система не загружается mount-system + chroot Восстановление через Rescue
Потерян загрузчик update-grub + grub-install Переустановка GRUB

Важные предупреждения

  1. Всегда делайте резервную копию перед массовыми изменениями.
  2. Не удаляйте системные пакеты без понимания зависимостей — APT предупредит, но окончательное решение за вами.
  3. Проверяйте вывод команд перед подтверждением (Y), особенно при dist-upgrade.
  4. Используйте Rescue-режим только при реальной необходимости — это мощный, но потенциально опасный инструмент.

Совет:

Если вы работаете в корпоративной среде ALT Linux, рассмотрите использование Alterator — графического конфигуратора, который упрощает многие задачи восстановления через удобный интерфейс.