Подробный гайд: Откат обновления системы ALT Linux через Live CD - Часть 1

Практический гайд по откату обновления ALT Linux через Live CD: chroot, диагностика, восстановление пакетов и загрузчика системы.

2026.09.09                  


Подробный гайд: Откат обновления системы ALT Linux через Live CD - Часть 1Подробный гайд: Откат обновления системы ALT Linux через Live CD - Часть 1

1. Сначала оцените ситуацию

Если есть снапшот или бэкап

Если до обновления у вас были:

  • btrfs-снапшоты;
  • LVM-снапшот;
  • Timeshift/snapper;
  • резервная копия /, /etc, /boot, /var/lib/rpm;

то самый безопасный путь — восстановиться из них. Если снапшотов нет, дальше делаем ручной откат.


2. Загрузка с Live CD

  1. Загрузитесь с Live CD ALT Linux.
  2. Откройте терминал.

3. Получите права root:

su -

или, если настроено:

sudo -i


В Live-образе пароль может быть пустым или стандартным для образа.


3. Найдите раздел установленной системы

Посмотрите диски и разделы:

lsblk -f
blkid

Пример вывода:

sda
|-sda1  /boot
|-sda2  swap
|-sda3  /

Запомните:

  • корневой раздел;
  • отдельный /boot, если есть;
  • EFI-раздел, если система UEFI;
  • LVM/LUKS, если используются.

4. Смонтируйте установленную систему

4.1. Обычный раздел

Создайте точку монтирования:

mkdir -p /mnt/target

Смонтируйте корневой раздел, например /dev/sda3:

mount /dev/sda3 /mnt/target

Проверьте:

ls /mnt/target

Должны быть видны каталоги установленной системы: etc, boot, var, home, usr и т.д.


4.2. Если корень на LVM

Активируйте LVM:

vgchange -ay

Посмотрите логические тома:

lvdisplay
lvs

Смонтируйте нужный том, например:

mount /dev/VGName/RootLV /mnt/target

4.3. Если корень на LUKS

Откройте зашифрованный раздел:

cryptsetup luksOpen /dev/sda3 cryptroot

Затем смонтируйте:

mount /dev/mapper/cryptroot /mnt/target

4.4. Если btrfs с сабтомами

Если используется btrfs, может понадобиться указать сабтом, например:

mount -o subvol=@ /dev/sda3 /mnt/target

или:

mount -o subvol=@root /dev/sda3 /mnt/target

Посмотреть сабтома можно так:

mount -o subvolid=5 /dev/sda3 /mnt/target
btrfs subvolume list /mnt/target

Затем перемонтируйте с нужным subvol=....


4.5. Если есть отдельный /boot

Если /boot на отдельном разделе, обязательно смонтируйте его:

mount /dev/sda1 /mnt/target/boot

Это особенно важно для восстановления ядра и загрузчика.


4.6. Если система UEFI

Проверьте режим загрузки:

[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS

Если UEFI, смонтируйте EFI-раздел:

mkdir -p /mnt/target/boot/efi
mount /dev/sda1 /mnt/target/boot/efi

Замените /dev/sda1 на ваш EFI-раздел. Обычно он имеет тип EFI System.


5. Подготовьте chroot

Привяжите служебные файловые системы:

mkdir -p /mnt/target/run

for i in dev dev/pts proc sys run; do
    mount --bind /$i /mnt/target/$i
done

Скопируйте DNS-настройки, чтобы в chroot работал интернет:

cp -L /etc/resolv.conf /mnt/target/etc/resolv.conf

Если файл уже существует, можно сначала сохранить старый:

cp /mnt/target/etc/resolv.conf /mnt/target/etc/resolv.conf.bak
cp -L /etc/resolv.conf /mnt/target/etc/resolv.conf

6. Войдите в установленную систему через chroot

chroot /mnt/target /bin/bash

Для удобства можно изменить приглашение:

export PS1="(chroot) $PS1"

Теперь вы работаете не в Live CD, а внутри установленной системы.

Проверьте:

df -h
mount
cat /etc/os-release

7. Диагностика: что именно обновлялось

7.1. Последние установленные пакеты

Посмотреть недавно установленные/обновлённые пакеты можно так:

rpm -qa --last | head -n 80

или:

rpm -qa --last | less

Это покажет пакеты по времени установки. Верхние строки — самые свежие.


7.2. История apt

Логи apt обычно находятся в /var/log/apt/.

Посмотрите:

ls -l /var/log/apt/

Основной файл истории:

less /var/log/apt/history.log

Если логи сжаты:

zless /var/log/apt/history.log.1.gz

Поиск по дате:

grep -A30 "Start-Date: 2026-09-09" /var/log/apt/history.log

Для сжатых логов:

zgrep -A30 "Start-Date: 2026-09-09" /var/log/apt/history.log*.gz

Ищите строки:

Upgrade:
Install:
Remove:
Commandline:

Пример:

Start-Date: 2026-09-09  21:15:02
Commandline: apt-get dist-upgrade
Upgrade: libfoo (1.2-alt1 -> 1.3-alt1), bar (2.0-alt2 -> 2.1-alt1)

Отсюда видно, что старые версии были:

libfoo-1.2-alt1
bar-2.0-alt2

Именно их нужно будет вернуть.




7.3. Посмотреть текущие версии пакетов

rpm -q <имя_пакета>

Например:

rpm -q firefox

или:

rpm -q kernel-std-def

8. Если обновление было прервано

Если обновление оборвалось из-за питания, перезагрузки, нехватки места или ошибки, часто лучше не откатывать всё подряд, а сначала починить пакетную базу.

8.1. Проверьте место на диске

df -h

Если корень заполнен, освободите место:

apt-get clean

Можно посмотреть, что занимает место:

du -xh -d1 /var | sort -h | tail

8.2. Пересоберите базу rpm, если есть ошибки

Сначала сделайте резервную копию базы:

cp -a /var/lib/rpm /var/lib/rpm.backup-$(date +%F-%H%M)

Если база rpm повреждена или есть ошибки:

rm -f /var/lib/rpm/__db.*
rpm --rebuilddb

Это безопасно выполнять, если в данный момент не работает другой rpm или apt-get.


8.3. Исправьте зависимости и состояние пакетов

apt-get clean
apt-get update
apt-get check
apt-get install -f

Если после этого система ожила, возможно, откат не нужен. Но если вы сознательно хотите откатить пакеты — не запускайте apt-get dist-upgrade, пока не завершите откат.


Мы делимся этой технической информацией, чтобы помочь вам в решении задач — используйте её с пониманием. Статья носит рекомендательный характер, поэтому, пожалуйста, применяйте описанные методы осмотрительно.


Статью подготовил: Аверко Денис Сергеевич @Nymexis г. Омск (специалист по ЗИ)

Комментарии

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