Подробный гайд: Откат обновления системы ALT Linux через Live CD - Часть 1
1. Сначала оцените ситуацию
Если есть снапшот или бэкап
Если до обновления у вас были:
- btrfs-снапшоты;
- LVM-снапшот;
- Timeshift/snapper;
- резервная копия
/,/etc,/boot,/var/lib/rpm;
то самый безопасный путь — восстановиться из них. Если снапшотов нет, дальше делаем ручной откат.
2. Загрузка с Live CD
- Загрузитесь с Live CD ALT Linux.
- Откройте терминал.
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, пока не завершите откат.
Мы делимся этой технической информацией, чтобы помочь вам в решении задач — используйте её с пониманием. Статья носит рекомендательный характер, поэтому, пожалуйста, применяйте описанные методы осмотрительно.