Ситуация, которую всем хочется избежать - это потеря данных - информации и настроек, на восстановление которых потребуется не мало времени и рутинной работы.
Для быстрого восстановления в Linux можно использовать возможности файловой системы BTRFS, которая позволяет легко создавать снимки файловой системы.
К сожалению, при установке некоторых современных дистрибутивов (например Ubuntu 24.04 и 24.10) нет возможности создать разные подтома в рамках одной файловой системы BTRFS для того, чтобы поместить в них корневой и другие разделы, например /home. Как правило, установщик позволяет создать файловую систему BTRFS и установить в нее корневой раздел, но при такой конфигурации нет возможности воспользоваться полезной утилитой Timeshift. Для работы Timeshift необходимо, чтобы корневой раздел был помещен в отдельный подтом файловой системы BTRFS. Это можно исправить, создав необходимый подтом и перенастроив загрузчик, чтобы он загружал систему из него.
Перенесем корневой раздел в подтом и перенастроим Grub, чтобы Linux загружался из подтома файловой системы BTRFS.
Создадим снимок корневого раздела:
sudo btrfs subvolume snapshot / /@
результат:
Create a snapshot of '/' in '//@'
Убедимся, что раздел создан:
sudo btrfs subvolume list /
результат:
ID 267 gen 2007 top level 5 path @
Редактируем fstab, чтобы корневая файловая система монтировалась из нового раздела (subvolume)
sudo nano /@/etc/fstab
вместо строки:
/dev/disk/by-uuid/ / btrfs defaults 0 1
должно быть что то похожее на (добавляем параметр монтирования subvol=@):
/dev/disk/by-uuid/ / btrfs subvol=@,defaults 0 1
Настраиваем Grub, чтобы он показывал меню загрузки и перезагружаем систему
sudo nano /etc/default/grub
меняем параметры на:
GRUB_TIMEOUT_STYLE=menu
GRUB_TIMEOUT=10
sudo update-grub
sudo reboot
Когда появляется меню загрузчика grub нажимаем клавишу "e", чтобы отредактировать меню загрузки. меняем параметры загрузки (добавляем "/@"):
linux /@/boot/...
в конце строки добавляем "rootflags=subvol=@" между "ro" and "quiet splash"
должно выглядеть примерно так:
... ro rootflags=subvol=@ quiet splash ...
редактируем строку, начинающуюся с initrd:
initrd /@/boot/...
нажимаем F10 для загрузки
Убеждаемся, что запустились из нужного подтома
mount |grep ' / '
результат выполнения команды должен выглядеть примерно так:
/dev/... on / type btrfs (...subvol=/@...)
если вы видите здесь "...subvol=/@...", значит вы загрузились с правильного подраздела
-
Сохраним настройки загрузчика
для не-UEFI систем (Legacy или BIOS):
sudo update-grub
sudo grub-install /dev/... # ваше устройство, например /dev/sda
reboot
для UEFI систем:
sudo update-grub
grub-install --efi-directory=/boot/efi
reboot
После удачной загрузки можно удалить данные с корневого раздела, с которые мы перенесли в подраздел /@ путем создания снимка
sudo mount /dev/sda2 /mnt
cd /mnt
ll # выведел список содержимого
# удаляем всё кроме /@
sudo rm -rf !(@*)
Теперь можно установить timeshift и наслаждаться легкой работой со снимками файловой системы.
13werwolf13
я просто оставлю это здесь:
http://snapper.io
https://youtu.be/BuNl0iKfXys?t=1128
опережая бугурт который может возникнуть: нет это не только на opensuse, да это будет работать на вашем debian/gentoo/arch/montana/etc, да можно интегрировать в любой (ну как минимум в большинство) пакетный менеджер так же как в suse его интегрировали в zypper.
кстати sd-boot теперь тоже научился грузиться со снапшотов как и grub и так же сам научился рисовать пункты меню к снапшотам в автоматическом режиме
fshp
Я просто оставлю это здесь:
https://nixos.org/
опережая бугурт который может возникнуть: нет это не только на Linux. Nix'ом можно менеджить macos и (возможно) Windows.