Загрузиться с диска/флешки, чтобы основная система не была использована.
Подключить отдельный жесткий диск или раздел имеющегося диска с данными, чтобы было свободное место для хранения образа всего устройства или раздела.
Создать папку под бэкап, например
backup_2204.
Дальше идём в терминал и последовательно выполняем команды
поднять права до администратора
sudo su
установить архиватор, умеющий использовать многоядерность, и par2 для добавления избыточности, позволяющий восстановить любые повреждения файла с архивом, если объём повреждений будет в размерах изыточности
apt install pbzip2 par2
посмотреть, какие диски есть в системе и какой именно -- ваш
fdisk -l | less
(навигация по выводу стрелками, page up/page down, выйти из less можно по q на клавиатуре).
Сравниваем модель устройства и имена разделов, если осталось так же /dev/sda или /dev/sda2, то с него потом и будем снимать. Если поменялось на /dev/sdc и /dev/sdc2, то снимаем с них
убеждаемся, что раздел, с которого будем брать данные, не примонтирован и не используется. Если копируем всё устройство, то ни один из разделов не примонтирован.
вызываем mount (выдаст список примонтированных разделов), ищем в выводе с помощью grep название раздела
Если всё правильно, то ничего не выдаст
ДЛЯ ПРИМЕРА используется /dev/sda2
mount | grep sda1
mount | grep sda2
если раздел примонтирован и используется, будут текстовые строки с тем, куда он смонтирован
mount | grep -i sda2
/dev/sda2 on / type btrfs (rw,noatime,compress=lzo,ssd,discard=async,space_cache,autodefrag,commit=600,subvolid=256,subvol=/@)
/dev/sda2 on /var/snap/firefox/common/host-hunspell type btrfs (ro,noexec,noatime,compress=lzo,ssd,discard=async,space_cache,autodefrag,commit=600,subvolid=256,subvol=/@)
/dev/sda2 on /home type btrfs (rw,noatime,compress=lzo,ssd,discard=async,space_cache,autodefrag,commit=600,subvolid=257,subvol=/@home)
в этом случае пытаемся отмонтировать раздел через umount /dev/sda2, повторяем предыдущую проверку.
umount /dev/sda2
не отмонтировалось? перезагружаемся, опять загружаеся с флешки/DVD, пробуем ещё раз.
*Все действия по-прежнему производятся от администратора, находимся в том же терминале, где делали sudo su
переходим в терминале в подмонтированный раздел для хранения резервной копии. Важно, чтобы устройство/раздел с системой, с которой копию снимать будем, не был задействован и примонтирован. Адрес после cd -- пример, подставить или скопировать/вставить адрес вашей конкретной папки под бэкап.
cd /media/user/your_hdd_part/backup_2204
пробуем снять архив с помощью dd и архиватора,
запись на диск не производится. if=откуда писать, of=куда.
НЕ ПЕРЕПУТАТЬ! bs= -- размер блока, /dev/null -- утилизация потока без записи на диски
time --измерить время выполнения команды, pbzip2 -5 (средняя степень компресссии, больше смысла нет, -с -- передай всё на текстовый вывод следующей команде)
/dev/sda -- УСТРОЙСТВО ДЛЯ ПРИМЕРА, ПОДСТАВЬТЕ СВОЁ УСТРОЙСТВО ИЛИ РАЗДЕЛ
time dd if=/dev/sda bs=16M | pbzip2 -5 -c | dd of=/dev/null
вывод будет примерно такой в терминале
100+0 записей получено
100+0 записей отправлено
1677721600 байтов (1,7 GB, 1,6 GiB) скопировано, 22,5125 s, 74,5 MB/s
992405+1151 записей получено
992966+1 записей отправлено
508399006 байтов (508 MB, 485 MiB) скопировано, 22,8079 s, 22,3 MB/s
real 0m22,814s
user 2m48,665s
sys 0m8,886s
1,6 GiB -- сколько считалось с диска
508 MB -- примерный размер уже готового архива, который сейчас был сразу же уничтожен.
real 0m22,814s -- реальное время, затраченное на создание архива.
Если всё нормально,
убеждаемся, что мы находимся в папке, куда будем записывать, и пишем архив.
Приглашение командной строки должно выглядеть примерно как
root@your_pc_name://media/user/your_hdd_part/backup_2204пишем в папку архив, с поправкой на имя вашего устройства/раздела
time dd if=/dev/sda bs=16M | pbzip2 -5 > ./backup_2204.bzip2
Когда всё закончено --
проверяем целостность архива. Самое тупое -- посчитать
контрольную сумму распакованного (на лету, без записи на диск) и сравнить с
контрольной суммой того раздела/устройства, откуда мы списывали данные.
Совпало -- всё сделано правильно, не совпало -- или сами сделали что-то неверно, или есть проблемы с каким-то из накопителей.
считаем контрольную сумму для диска
md5sum /dev/sda
считаем контрольную сумму для распакованного архива, опция -d -- decompress, -c -- export to stdout
pbzip2 -d -c ./backup_2204.bzip2 | md5sum
если всё нормально, сохраняем контрольные суммы в файлы, потом, при разворачивании архива, можно будет проверить.
md5sum ./backup_2204.bzip2 > backup_2204.bzip2.md5
в этой же папке создаём файл backup_2204.bzip2.unpack.md5, открываем редактором и туда вставляем контрольную сумму из распакованного архива
Делаем избыточность с помощью par2create для восстановления архива в случае его повреждения. Стандартно вроде 5%, можно свой размер задать: если файл битый и поврежден в любом количестве мест, но объём повреждений не больше размера избыточности (5% в нашем случае), то целостность файла может быть восстановлена.
par2create ./backup_2204.bzip2
проверяем правильность создания избыточностиpar2verify ./backup_2204.bzip2
вывод примерно следующий
Verifying source files:
Opening: "backup_2204.bzip2"
Target: "backup_2204.bzip2" - found.
All files are correct, repair is not required.
будет создана куча мелких файлов, можно и на них контрольные суммы посчитать и выкинуть в файл backup_2204_all.md5
md5sum ./* > ./backup_2204_all.md5