Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: [HOWTO] Сделать резервную копию раздела/устройства через dd  (Прочитано 2150 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн DarkArchangel

  • Автор темы
  • Участник
  • *
  • Сообщений: 137
    • Просмотр профиля
По запросу одного из пользователей попробовал сделать гайд для ручного создания и разворачивания бэкапа раздела/устройства с системой с помощью dd, pbzip2, par2. Если такое уже было, тема не в том разделе, содержит существенные ошибки -- прошу перенести или удалить.

Для дистрибутива: ubuntu/mint 22.04, проверено на 24.04.
Совместимость с более старыми версиями дистрибутива: около 100%, используемое ПО  достаточно старое.
Совместимость с другими дистрибутивами: должна быть полной, программы скорее всего есть в репозиториях, с поправкой на специфические особенности конретного дистрибутива
Сложность: средняя
Требования к знаниям и умениям пользователя.
Знать как подключить-отключить раздел жесткого диска через файловый менеджер, хотя бы примерно понимать как устроено хранение файлов и папок в ОС Linux. Знать как через него же посмотреть наличие свободного места на разделе/диске. Знать как зайти в графический терминальный интерфейс, скопировать-вставить команды, поднять права доступа до суперпользователя. Внимательность, возможность адаптировать примеры к своему оборудованию. Уметь загрузиться с флеш-накопителя или DVD-диска для проведения операций по копированию и восстановлению данных.
Перечень используемого прикладного ПО: mount, grep, dd, par2, md5sum, pbzip2, fdisk, bash, sudo


Примерное руководство по созданию, проверке целостности, разворачиванию резервной копии раздела/устройства с операционной системой в ручном режиме. Никакой сложной математики/скриптов, всё вроде +- стандартненько. Архив системы может пригодиться как для восстановления после физического сбоя, так и для возврату к состоянию до внесения изменений или обновлений, в т.ч. и после обновления системы.
***
ДЕЙСТВИЯ ПОТЕНЦИАЛЬНО НЕБЕЗОПАСНЫ, ПОЛЬЗОВАТЕЛЬ ВЫПОЛНЯЕТ ИХ НА СВОЙ СТРАХ И РИСК!
***
Понадобятся доступ в интернет, скачать программы par2, pbzip2. Остальное есть в комплекте дистрибутива.

Что будем сохранять?
(Нажмите, чтобы показать/скрыть)
Создание резервной копии
(Нажмите, чтобы показать/скрыть)


РАЗВОРАЧИВАНИЕ АРХИВА и восстановление поврежденной копии архива
Если вдруг занадобилось вернуть всё как было, делаем примерно то же самое.
Грузимся с диска/флешки, подключаем раздел с бэкапом, заходим в терминал, делаем sudo su, cd /media/user/hdd_mounted/backup_dir

проверяем контрольные суммы по файлу backup_2204_all.md5
md5sum -c ./backup_2204_all.md5вывод будет примерно следующий
Цитировать
./file.dd: ЦЕЛ
./file.dd.par2: ЦЕЛ
./file.dd.vol000+01.par2: ЦЕЛ
./file.dd.vol001+02.par2: ЦЕЛ
./file.dd.vol003+04.par2: ЦЕЛ
./file.dd.vol007+08.par2: ЦЕЛ
./file.dd.vol015+16.par2: ЦЕЛ
./file.dd.vol031+32.par2: ЦЕЛ
./file.dd.vol063+37.par2: ЦЕЛ
./testdir_all.md5: ПОВРЕЖДЁН
md5sum: ПРЕДУПРЕЖДЕНИЕ: НЕ совпала 1 вычисленная контрольная сумма

В сам файл с контрольными суммами ещё вносились записи, поэтому, естественно, контрольная сумма на него не совпадает.


восстановление архива.
Этот шаг нужно пропустить, если у файла архива (backup_2204.bzip2) после проверки md5-суммы будет статус "ЦЕЛ"
(Нажмите, чтобы показать/скрыть)

Разворачивание ранее созданного архива на диск.
Раздел/устройство пишем в of= в конце команды, /dev/sda -- В КАЧЕСТВЕ ПРИМЕРА, если вы делали бэкап раздела, то подставляйте тот же раздел (sda1/sda2 и т.д.). sync -- запиши все данные из кэшей на накопители.
****
ВАЖНО! НЕ ПЕРЕПУТАТЬ УСТРОЙСТВО/РАЗДЕЛ!  ПРИ ОШИБКЕ ДАННЫЕ БУДУТ БЕЗВОЗВРАТНО УТЕРЯНЫ!
****
time dd if=./backup_2204.bzip2 bs=16M | pbzip2 -d -c | dd of=/dev/sda bs=16M
sync
проверяем, совпадает ли md5-сумма развернутого устройства и распакованного архива.
cat ./backup_2204.bzip2.unpack.md5
dd if=/dev/sda  bs=16M | md5sum
Если всё совпало, то архив успешно развернут.
« Последнее редактирование: 07 Февраля 2025, 11:59:20 от DarkArchangel »
asus p8h67/intel xeon e3-1230v2+Scythe Mugen/8GB PC12600/AMD Radeon 6770, open-source driver/2tb Hitachi deskstar 7200 rpm + Goodram Iridium 120G, Lubuntu 24.04

Оффлайн piyavking

  • Активист
  • *
  • Сообщений: 761
  • никогда так не было, чтобы никак не было
    • Просмотр профиля
    • Пиявкин
Полезно было бы, чтоб скрипт умел не обрабатывать и не включать в образ свободное место, а такжже системные и пользовательскиме кэши. ИМХО это здорово сэкономило бы время и объём.
RPI4, awesomeWM, st, librewolf, vim/gvim, mpv/smplayer, jack, guitarix, lmms, ardour, mednafen, rhvoice, dsda-doom

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 7824
  • We were here
    • Просмотр профиля
bzip2 - плохой выбор. Однопоточный и относительно медленный.
Я бы использовал что-то из xz/lz4/zstd
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн Smörman

  • Азъ есмь Школяръ
  • Заслуженный пользователь
  • Активист
  • *
  • Сообщений: 578
  • When In Rome, Do As The Romans Do...
    • Просмотр профиля
    • Compizomania
Я тут собрался с духом и всё таки решил наконец-то сделать резерву (правда Arch-а, Ubuntu ещё не трогал, собираюсь только)...
Но от dd, почитав отзывы на форумах, решил отказаться в пользу tar или rsync.
Остановился пока на rcync, но всё же с Ubuntu хочу попробовать tar, ибо пишут везде на форумах, что это самый лучший выбор, т.к. хорошее сжатие, компактность и надёжность.

Так вот сделал Arch через rsync...
Скажу, что при моих 16 Гб ОЗУ, всё прошло очень даже быстро.
Копировал корень с иксклюдом не нужного (tmp, run, media и пр...).
В принципе нормуль, но размер конечно резерва всё же большеват - за 20 Гигов завалило...
А если и хомяк бэкапить даже с иксклюдами, то размерчик будет ещё тот!

Пишут, что tar в этом плане гораздо предпочтительнее, хотя и сложнее, т.к. через Live-носитель надо грузиться и через chroot всё делать по феншую, но то такое, что в ближ. время и попробую на Ubuntu...

Принципиально не хочу утилиты GUI-шные пользовать!
Всё таки вроде же Linuxятник до мозга костей и стыдно, как-то гуями...  :D
Буду пальчиками шаловливыми делать...  ;D
« Последнее редактирование: 08 Февраля 2025, 12:07:39 от Smorman »
OS: Ubuntu 22.04 'Jammy Jellyfish' LTS, Arch Linux + Openbox, W11 Home
PC: Lenovo H530, CPU: i5-4430 3.0, Video: nVidia PCI-X
SSD: SAMSUNG EVO870 1T, SSD: 2хSAMSUNG EVO870 500G, RAM: 16G, ODD

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 7824
  • We were here
    • Просмотр профиля
Загрузиться с диска/флешки, чтобы основная система не была использована.
А лучше - используйте btrfs и делайте бекапы прямо из работающей системы.

tar, ибо пишут везде на форумах, что это самый лучший выбор, т.к. хорошее сжатие, компактность и надёжность.
tar вообще-то сам по себе ничего не сжимает.
Или в опциях указываем компрессор, или уже готовый tar прогоняем через него.

Но от dd, почитав отзывы на форумах, решил отказаться в пользу tar или rsync.
Можно вообще без них)
# создать
lz4 -vc < /dev/sdxx > backup_SDXX.lz4

# развернуть
lz4 -vdc < backup_SDXX.lz4 > /dev/sdxx
« Последнее редактирование: 08 Февраля 2025, 12:27:28 от ALiEN »
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн Smörman

  • Азъ есмь Школяръ
  • Заслуженный пользователь
  • Активист
  • *
  • Сообщений: 578
  • When In Rome, Do As The Romans Do...
    • Просмотр профиля
    • Compizomania
Можно вообще без них)

Мда, пути Господни неисповедимы...
Век живи - Век учись!!!
Возьмём на заметочку и попробуем...

Пользователь добавил сообщение 08 Февраля 2025, 14:00:50:
lz4 -vc < /dev/sdxx > backup_SDXX.lz4

Неплохо и быстро работает.
Забэкапил корень Arch-а:
# lz4 -vc < /dev/sdb1 > /media/data/backup/Arch/backup_SDB1.lz4
*** lz4 v1.10.0 64-bit multithread, by Yann Collet ***
Using 3 threads for compression
Compressed 53687091200 bytes into 14211980157 bytes ==> 26.47%                 
Done in 119.11 s ==> 429.84 MiB/s  (cpu load : 125%)

Также забэкапил и корень Ubuntu:
# lz4 -vc < /dev/sda2 > /media/data/backup/Ubuntu/backup_SDA2.lz4
*** lz4 v1.10.0 64-bit multithread, by Yann Collet ***
Using 3 threads for compression
Compressed 50000297984 bytes into 13702593541 bytes ==> 27.41%                 
Done in 121.94 s ==> 391.05 MiB/s  (cpu load : 86%)

Минуту/полторы занимает по времени...
« Последнее редактирование: 08 Февраля 2025, 14:08:05 от Smorman »
OS: Ubuntu 22.04 'Jammy Jellyfish' LTS, Arch Linux + Openbox, W11 Home
PC: Lenovo H530, CPU: i5-4430 3.0, Video: nVidia PCI-X
SSD: SAMSUNG EVO870 1T, SSD: 2хSAMSUNG EVO870 500G, RAM: 16G, ODD

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 8005
    • Просмотр профиля
Минуту/полторы занимает по времени...
Да видим, что две:
Цитировать
Done in 121.94 s ==> 391.05 MiB/s  (cpu load : 86%)
Хорошо, бэкап есть, можно пофантазировать.
Вот лежит он мёртвым грузом, ждёт своего часа. Надо-бы пару файликов вытащить, насколько это удобно? Хорощо, если точно знаешь, а если требуется поискать?
Случилось страшное, система умерла. Вот он звёздный час! И... А что делать-то? Чтобы восстановить, надо запустить какую-то систему. Так это к бэкапу ещё и систему держать надо? Да не любую, а чтобы в ней хотя-бы был этот lz4. В *бунту вроде его по умолчанию нет.
Вот-бы сам бэкап можно было запустить как спасительную систему. И всё есть, всё привычно на своём месте. Можно и не торопиться с восстановлением.
Так это-же обычная "живая система"!

Оффлайн Smörman

  • Азъ есмь Школяръ
  • Заслуженный пользователь
  • Активист
  • *
  • Сообщений: 578
  • When In Rome, Do As The Romans Do...
    • Просмотр профиля
    • Compizomania
хотя-бы был этот lz4
Да, нет его из коробочки, но установить то его не проблема, даже в Live...
OS: Ubuntu 22.04 'Jammy Jellyfish' LTS, Arch Linux + Openbox, W11 Home
PC: Lenovo H530, CPU: i5-4430 3.0, Video: nVidia PCI-X
SSD: SAMSUNG EVO870 1T, SSD: 2хSAMSUNG EVO870 500G, RAM: 16G, ODD

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 8005
    • Просмотр профиля
Так по закону подлости, окажутся гранаты не той системы. Или пятна на солнце - интернет не работает. Или давление сверхвысокое - почтовые голуби не летают.
Так и зачем придумывать себе проблемы, если есть Live. Ну и Live тоже надо иметь.
« Последнее редактирование: 08 Февраля 2025, 15:04:59 от andytux »

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 7824
  • We were here
    • Просмотр профиля
пару файликов вытащить
lz4 -vdc < backup_SDXX.lz4 > backup
mount ./backup /mnt

чтобы в ней хотя-бы был этот lz4
Взял то, чем пользуюсь. Никто ж не запрещает и gzip использовать. Ключи, кстати, те же будут.
Мне lz4 нравится за быстроту) 6Гб на ноутбуке в подписи кушает за 40 секунд)) Да и то подозреваю, что упирается не в процессор, а в скорость диска.
« Последнее редактирование: 08 Февраля 2025, 15:41:08 от ALiEN »
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 8005
    • Просмотр профиля
Вот и неудобство проявилось. Сначала распаковать, а ведь это нужно ещё и место, потом монтировать. А скваш можно сразу монтировать.
Сейчас в моде zst, за что пока не знаю, предпологаю за скорость. И по умолчанию есть в новых версиях системы.

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 7824
  • We were here
    • Просмотр профиля
А скваш можно сразу монтировать.
О, спасибо что напомнил) Вообще забыл про него напрочь  :-\
Там же и алгоритмы сжатия можно указывать. Пойду бекапы освежать))
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 8005
    • Просмотр профиля
Да, когда не тороплюсь и важнее сжатие, то выбираю xz. Конечно ресурсов требует намного больше, чем стандартный gzip.

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 7824
  • We were here
    • Просмотр профиля
Пожалуй, тоже поделюсь мини-HowTo :)
Бекап VPS по сети.

Инструменты: btrfs, ssh, tar, squashfs

0. На vps временно разрешаем доступ root по ssh.
* Надеюсь, вы как адекватный администратор, не работаете постоянно под рутом и не используете парольный вход по ssh.

1. Монтируем корень btrfs для управления подтомами.
mount /dev/vda /mnt -o subvol=/В подтомe @ установлена система
* Btrfs у меня cоздана на целом диске, без создания разделов. Поэтому в данной команде использую целый диск, а не раздел.

2. Создаём снапшот системы с именем @bak.
btrfs subvolume snapshot -r /mnt/@ /mnt/@bak ключ -r означает только чтение снапшота (read-only). Можно обойтись и без него.
*Если у вас swap-файл на бтрфс, лучше его отключить и удалить, чтобы не занимал место в бекапе, да и снапшот с работающим swap-файлом система не даст сделать.

3. На локальной машине удаленно выполняем команду tar и пакуем всё в squashfs
ssh root@remoteHost tar c -C /mnt/@bak . | mksquashfs - VPS.sqashfs -tar -comp lz4*Вместо tar и squashfs логично использовать btrfs send/receive. Но на другую ФС такой бекап не развернуть и файлы внутри не посмотреть без промежуточного использования btrfs.

** Не забудьте вернуть обратно настройки ssh!



Пользователь добавил сообщение 08 Февраля 2025, 19:37:20:
Забыл про разворачивание бекапа)

1. Подготавливаем удалённый хост.
mount /dev/vda /mnt -o subvol=/
btrfs subvolume create /mnt/@

2. На локальной машине монтируем бекап и отправляем на удалённый.
sudo mount VPS.squashfs /mnt
sudo tar c -C /mnt . | ssh root@remoteHost tar x -C /mnt/@
*Если вы меняли имена подтомов, не забудьте поправить fstab и обновить grub, если /boot у вас находится в подтоме.
« Последнее редактирование: 08 Февраля 2025, 19:37:56 от ALiEN »
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн Smörman

  • Азъ есмь Школяръ
  • Заслуженный пользователь
  • Активист
  • *
  • Сообщений: 578
  • When In Rome, Do As The Romans Do...
    • Просмотр профиля
    • Compizomania
Я так делал бэкап корня через rsync (взято с Arch Wiki):
(если не установлен пакет, то устанавливаем... Как? Все знают, поэтому не буду тут расписывать)
- убежал под root
sudo su -
- создал на специально созданном под файлы разделе другого SSD-шника каталог для бэкапа
(можно пульнуть бэкап хоть куда...)
mkdir -p /media/data/backup/ubuntu/root
- собственно забэкапил корень
rsync -aAXHvx --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found","/swapfile"} / /media/data/backup/ubuntu/root
Обращаем внимание на опцию --exclude, где прописываются каталоги для исключения и особенно важно исключить катологи /mnt и /media, чтобы избежать цикличной записи бэкапа!!!
« Последнее редактирование: 08 Февраля 2025, 20:15:24 от Smorman »
OS: Ubuntu 22.04 'Jammy Jellyfish' LTS, Arch Linux + Openbox, W11 Home
PC: Lenovo H530, CPU: i5-4430 3.0, Video: nVidia PCI-X
SSD: SAMSUNG EVO870 1T, SSD: 2хSAMSUNG EVO870 500G, RAM: 16G, ODD

 

Страница сгенерирована за 0.376 секунд. Запросов: 26.