Перед обновлением Arch Linux не нужно клонировать весь диск: за час до pacman -Syu хватает копии /etc, списков установленных пакетов и важного из домашнего каталога. Именно эти три вещи превращают даже полный сбой в восстановление за час, а не за день. Разберём, что копировать, какие команды для этого есть и как собрать всё в один архив.
Копировать всю систему каждый раз перед обновлением — трата времени и места. Диски в Arch живут по одной логике: система переустанавливается быстро, а настройки и список пакетов восстанавливаются из копии. Вот что реально имеет значение.
Каталог /etc — главный кандидат на копию. Там лежат то, что pacman не восстановит после переустановки: твои правки в /etc/fstab, /etc/pacman.conf, /etc/pacman.d/mirrorlist, настройки сети, ssh-демона, загрузчика. Пакеты при обновлении подхватывают обновлённые конфиги, но твои ручные правки — нет.
rsync -aHAX --delete /etc/ /mnt/flash/etc-backup/
Отдельно сохрани ключи pacman — без них pacman перестаёт доверять подписям пакетов, особенно неприятно это выглядит после сбоя:
cp -a /etc/pacman.d/gnupg /mnt/flash/pacman-gnupg/
Список установленных пакетов весит килобайты, а позволяет поставить систему заново почти в том же виде. Две команды:
pacman -Qqn > packages.txt
pacman -Qm > aur.txt
Первая команда пишет пакеты из официальных репозиториев, вторая — то, что поставлено из AUR. Подробности флагов и варианты экспорта разобраны в статье pacman -Qe и -Qq: экспорт списка пакетов — там же про разницу между -Qq и -Qeq. Здесь важно одно: эти два файла — самая ценная часть копии, потому что они весят почти ничего, а спасают полностью.
Базы pacman (/var/lib/pacman/local и /var/lib/pacman/sync) копировать отдельно почти не нужно: sync пересоздаётся за минуту через pacman -Syy, а local честно восстанавливается теми самыми списками пакетов. Как устроены обе базы и что с ними бывает, читай в Базы pacman: где лежат и как пересоздать.
Домашний каталог целиком копировать не надо: музыка, видео и скачанное переустанавливаются или скачиваются заново. Ценность в dotfiles — скрытых конфигах и рабочих файлах:
.bashrc, .zshrc, .gitconfig, .config/ (оттуда терминал, редактор, DE);.ssh/;rsync -aAX --exclude='cache' --exclude='Downloads' ~ /mnt/flash/home-backup/
Если dotfiles у тебя уже в git — отлично, это ещё надёжнее. Если нет, обычный rsync на флешку закрывает задачу.
Одна rsync-команда собирает конфиги, dotfiles и списки пакетов в месте:
mkdir -p /mnt/flash/arch-backup
rsync -aHAX /etc /mnt/flash/arch-backup/
rsync -aAX ~ /mnt/flash/arch-backup/home/ \
--exclude='.cache' --exclude='Downloads' --exclude='.local/share/Trash'
pacman -Qqn > /mnt/flash/arch-backup/packages.txt
pacman -Qm > /mnt/flash/arch-backup/aur.txt
Если хочется один файл вместо каталога — tar:
tar -czf /mnt/flash/arch-backup-$(date +%F).tar.gz \
/etc ~/** 2>/dev/null
Для чистоты архива лучше всё-таки собрать временный каталог rsync-ом и заархивировать его целиком: так проще потом разобраться, что внутри.
Куда класть готовую копию:
В идеале держи две копии: локальную (флешка/второй диск) и удалённую (облако хотя бы для packages.txt, aur.txt и /etc).
Полный образ диска кажется безопасным, но на практике он мешает: копия делается часами, занимает сотни гигабайт и почти всегда отстаёт от реального состояния системы. Хуже другое — иллюзия, что «образ есть, значит, всё спасено»: без восстановленного /etc и списков пакетов даже образ не превращается в рабочую машину быстро.
Реальная арифметика такая:
pacman -S --needed - < packages.txt — ещё 10–20 минут в зависимости от сети./etc поверх свежей системы — минуты.aur.txt через yay или paru — финальный аккорд.Итого — час-полтора, против которого полный образ диска выглядит как перестраховка ради перестраховки. Так живут системы, которым 10+ лет: ни разу не клонировали диск, но каждый раз перед обновлением выгружали пару файлов.
Снапшоты — отдельная история и отличное дополнение, но они не заменяют списки пакетов: снапшот откатит систему назад, а список пакетов соберёт её заново. Если у тебя Btrfs или LVM — подключи и снапшоты перед обновлением.
Даже если система не грузится совсем, копии превращают аварию в пошаговую процедуру. Полный разбор — в статье Восстановление системы без сети: pacman -U и офлайн-кэш, здесь — каркас:
/etc на место (или точечно — fstab, pacman.conf, mirrorlist).pacman -S --needed - < packages.txt
aur.txt поставь через yay/paru тем же способом.Ключевой момент: /etc возвращается на место до установки пакетов, чтобы pacman сразу работал с твоими настройками зеркал и опций.
Нет. Из /var ценность представляет только кэш pacman (/var/cache/pacman/pkg) — и тот полезнее держать постоянно, а не под обновление. Базы из /var/lib/pacman пересоздаются, как описано выше.
Имена всех AUR-пакетов лежат в aur.txt. На чистой системе поставь yay или paru и накати список: yay -S --needed - < aur.txt. Сборка займёт время, но всё восстановится без ручного перебора.
Достаточно раз в неделю и всегда — прямо перед обновлением. Списки меняются нечасто, но именно свежий файл спасает, когда сбой случается в момент pacman -Syu.
Да, /etc/pacman.d/gnupg входит в копию /etc автоматически, если копируешь каталог целиком. На чистой установке ключи можно пересоздать (pacman-key --init && pacman-key --populate archlinux), но со своей копией экономишь время и нервы.
rsync удобен для регулярного обновления копии (докачивает только изменения), tar — для единого файла, который проще запаковать в облако или отдать другу. Используй оба: rsync для флешки, tar для облака.
Резервная копия перед обновлением — это не образ диска, а три файла и один каталог: /etc, packages.txt, aur.txt и dotfiles из домашнего каталога. rsync собирает всё за минуту, флешка или облако держат копию под рукой, а при сбое система собирается заново за час — с твоими конфигами и полным составом пакетов. Копируй не систему, а то, что pacman не умеет воссоздать сам: настройки и списки. Держи эту привычку — и обновления перестанут пугать.
Задай вопрос в чате — отвечаем быстро, по делу и без воды.
Комментарии