При условии что диск целый - можно использовать файловую систему
BTRFS и создавать снимки (snapshot) периодчески, чтобы последний всегда имел одно имя. Отдельным пунктом GRUB добавить загрузку той же Ubuntu с суб-томом (subvolume) последнего снимка (то есть просто указав путь от корня файловой системы до вашего снимка).
Настраивается минут 30 (чтобы разобраться что к чему), работает надежно.
В целом так:
1) Отдельный пункт меню с суб-томом root_backup
2) При необходимости создаете снимок /root_backup (старый либо удаляете, либо переименовываете, либо что-то ещё)
3) Профит, всегда будет возможность загрузиться в систему до обновления
Удаление старого, создание нового снимка:
sudo btrfs subvolume delete /root_backup
sudo btrfs subvolume snapshot / /root_backup
В опциях загрузки ядра просто добавить subvol=root_backup (можно и не добавлять пункт меню, просто запомнить и добавлять при надобности).
Так же рекомендую вынести в отдельный суб-том /home, визуально всё будет работать так же, но не будет бэкапиться, что значит ваши измененные файлы домашней папки станутся (так же можно делать снимки отдельно от корня, тоже полезно).