Полный гайд по восстановлению Linux-систем штатными средствами

Восстановление пакетов, ФС, прав и сервисов в Linux/Unix. Штатные утилиты, безопасные скрипты, бэкапы и откаты системы.

2026.04.22                  


Полный гайд по восстановлению Linux-систем штатными средствамиПолный гайд по восстановлению Linux-систем штатными средствами Ниже представлен подробный гайд по штатным и проверенным альтернативам, которые покрывают 99% сценариев «починки» Unix-подобных систем в 2026 году.


1. Исправление пакетов и зависимостей

Задача Debian/Ubuntu RHEL/Fedora Arch Примечание
Прерванная установка dpkg --configure -a dnf history undo last pacman -S --needed Сначала всегда обновляйте списки: apt update / dnf check-update
Сломанные зависимости apt-get -f install dnf distro-sync pacman -Syu -f = fix-broken, не удаляйте пакеты без --dry-run
Проверка целостности пакетов debsums -s rpm -Va pacman -Qk Выведет изменённые/отсутствующие файлы из пакетов
Пересборка кэша apt-get clean && apt-get update dnf clean all pacman -Sc Помогает при рассинхроне метаданных

Автоматизация:

#!/usr/bin/env bash
set -euo pipefail
echo "[*] Обновление метаданных..."
sudo apt update -qq || sudo dnf check-update -q || sudo pacman -Sy --noconfirm
echo "[*] Исправление зависимостей..."
sudo apt-get -f install -y || sudo dnf distro-sync -y || sudo pacman -Su --noconfirm
echo "[*] Переконфигурация прерванных пакетов..."
sudo dpkg --configure -a 2>/dev/null || true
echo "[✓] Готово."

2. Проверка и восстановление файловых систем

Важно:

  • Никогда не запускайте fsck на смонтированной в RW корневой ФС! Используйте LiveUSB или emergency.target.
ФС Команда проверки Команда восстановления Ключи
ext4/ext3 e2fsck -fn /dev/sdXN e2fsck -y /dev/sdXN -f force, -n dry-run, -y auto-yes
XFS xfs_repair -n /dev/sdXN xfs_repair /dev/sdXN Требует unmount. Для journal-проблем: xfs_repair -L (только если уверены)
Btrfs btrfs check /dev/sdXN btrfs check --repair /dev/sdXN --repair опасен, используйте только после бэкапа
ZFS zpool status, zpool scrub poolname zpool clear poolname, zfs rollback Авто-лечение через resilver/scrub

Проверка всех локальных дисков без root:

lsblk -no NAME,TYPE,FSTYPE,MOUNTPOINT | awk '$2=="part" && $4!~/(swap|\/boot)/ {print "/dev/"$1}'

3. Права, владельцы, SELinux/AppArmor

Частая причина «всё сломалось после chmod -R 777».

Задача Команда Комментарий
Восстановить стандартные права на /etc sudo dpkg-statoverride --list | awk '{print $4}' | xargs -I{} sudo chmod 644 {} Debian-специфично
Рекурсивный фикс прав (безопасный) find /path -type f -exec chmod 644 {} + && find /path -type d -exec chmod 755 {} + Никогда не запускайте на / или /var без фильтра
SELinux контексты restorecon -Rv /path setenforce 0 только для диагностики, не для продакшена
AppArmor профили sudo aa-enforce /etc/apparmor.d/*, sudo systemctl restart apparmor Логи: journalctl -u apparmor

4. Диагностика сервисов, логов и ядра

Инструмент Что делает Пример
systemctl Управление юнитами systemctl list-units --failed, systemctl reset-failed
journalctl Логи systemd journalctl -xeu service_name, journalctl --vacuum-size=500M
dmesg Сообщения ядра dmesg -T | grep -iE 'error|fail|oom'
strace/ltrace Трассировка вызовов strace -f -e trace=file,process -p <PID>
lsof Открытые файлы/порты lsof -i :80, lsof +D /var/log

Быстрый чеклист при «система не грузится»:

  1. В GRUB добавить systemd.unit=multi-user.target или init=/bin/bash
  2. mount -o remount,rw /
  3. journalctl -xb → ищите failed, timeout, dependency
  4. systemctl list-dependencies --reverse failed.service

5. Целостность системы и безопасность

Утилита Назначение Как использовать
rkhunter, chkrootkit Поиск руткитов sudo rkhunter --check --sk
AIDE, Tripwire Хэширование файлов aide --init, aide --check
debsums, rpm -V Сверка с репозиторием sudo debsums -a 2>/dev/null | grep FAILED
lynis Аудит безопасности sudo lynis audit system

6. Резервное копирование и откат

В 2026 году многие дистрибутивы перешли на иммутабельные рутовые ФС (Silverblue, MicroOS, NixOS, Ubuntu Core). Для них традиционные fsck и chmod не применяются.

Подход Инструмент Комментарий
Снимки Btrfs/ZFS snapper, timeshift, zfs send/receive Откат за секунды, работает на уровне ФС
Пакетный откат dnf history rollback, aptitude markauto, pacman -U Восстановление старых версий пакетов
Конфиги etckeeper (git для /etc), chezmoi Автоматический коммит при apt/dnf
Полная копия borgbackup, restic, rsync -aAXv --numeric-ids Дедупликация, шифрование, инкремент

Пример отката через Timeshift (Btrfs/ext4):

sudo timeshift --list
sudo timeshift --restore --snapshot '2026-04-20_15-30-00'
sudo reboot

Важные правила безопасности

  1. Всегда делайте бэкап перед массовыми изменениями: tar czf /backup/etc-$(date +%F).tar.gz /etc
  2. Не запускайте незнакомые скрипты от root без set -x и dry-run режима.
  3. Используйте --dry-run / -n / --simulate где возможно.
  4. В иммутабельных системах не пытайтесь чинить /usr или / напрямую – используйте rpm-ostree, nixos-rebuild или снапшоты.
  5. Для продакшена ведите инвентаризацию: ansible, salt, puppet или хотя бы git + etckeeper.