LINUX.ORG.RU
ФорумAdmin

Бэкапим и выкатываемся из бекапа ПРАВИЛЬНО

 ,


0

2
#!/bin/bash

if !  mount -l|grep -q "/mnt/mb"; then 
mount /mnt/mb||{ echo "Не удалось монтировать"; exit 1; }
fi

nice -n 19 rsync -aAXvu --prune-empty-dirs /* /mnt/mb/slackbackup --exclude={/home/user/MP3/*,/home/localrepo*,/home/tmp/*,/lost+found,/mnt/*,/sys/*,/dev/*,/proc/*,/run/*,/tmp/*}


Вот таким вот образом я сидя на рогах у GPT-chat сделал свой первый бекап. Еще сделал резервные копии суперблоков. Тоесть первые 512 байт sda и sda1.

И мой кавайный бекапчик выглядит так

$ tree -L 2 /mnt/mb
/mnt/mb
├── sda1_start.img
├── sda_mbr.img
└── slackbackup
    ├── bin
    ├── boot
    ├── etc
    ├── home
    ├── lib
    ├── lib64
    ├── m1
    ├── media
    ├── opt
    ├── root
    ├── sbin
    ├── srv
    ├── usr
    └── var

Вот только когда я его накатываю, я получаю L99 и весь экран в девятках.

В общем, перепужался и переустановил Винду Слакварь 15, (здесь пора упомянуть, что к бекапу пришлось прибегнуть из-за неудачной попытки миграции в Current) и попытался накатить свой бекапчик поверху. Получил кучу конфликтов и полтергейстов. Сейчас протрезвел и думаю, не накатить ли снова попытаться ли реализовать бекап снова, но как-нибудь правильней?

Вот в связи с этим интересуюсь у знающей публики, выглядит ли мой кавайный бекапчик жизнеспособным. И как правильно обойтись с загрузчиком, чтобы не было вот L99.

Помнится ведь, я вроде как пытался накатывать резервные сектора dd if=sda_mbr.img of=/dev/sda count=1 dd if=sda1_start.img of /dev/sda1 count1

И не припомню, чтобы это помогало. В общем, вопрос знающим людям: что я сделал не так, что упустил?

Перемещено hobbit из general



Последнее исправление: Csandriel_x64 (всего исправлений: 1)

Я делаю бэкапы только конфигов, документов и игровых сейвов где steam cloud не настроен, ну и списочек установленных пакетов. Раскидываю по различным облачным хранилищам и внешний хард.

xDShot ★★★★★
()
Ответ на: комментарий от xDShot

У меня там нет ничего не нужного, как бы.

Резоны были следующие

  1. Бекап должен давать полностью работоспособную систему, как если бы это был образ системного диска. Типа «сел и поеахал».
  2. Но это не должен быть образ диска, а копия файлов на BTRFS с компрессией
  3. Бекап должен сохранять все пользовательские настройки и программы.

Тоесть, в нескольких словах: сохранена должна быть вся система, при чем экономно. А еще бекп должен очень быстро обновляться, чтобы мне не было влом его делать часто. Вот отсюда обращение к rsync. Старики ведь бают, что он умеет копировать только обновленные и измененные файлы.

Csandriel_x64
() автор топика
Последнее исправление: Csandriel_x64 (всего исправлений: 1)
Ответ на: комментарий от Csandriel_x64

Тогда тебе не нужен образ LBA 0, так как он будет содержать неактуальную информацию о таблице разделов и адресе расположения ядра. После разворачивания бэкапа просто позови lilo, да и всё.

yars068 ★★★★★
()
Ответ на: комментарий от yars068

Тогда тебе не нужен образ LBA 0,

Ты говоришь об /dev/sda? И намекаешь что все гавкнуло именно потому что я накатил резервную копию суперблока?

Csandriel_x64
() автор топика
Ответ на: комментарий от yars068

и адресе расположения ядра.

ДОШЛО. Спасибо, комрад.

Csandriel_x64
() автор топика
Ответ на: комментарий от Csandriel_x64

Именно так. Можешь перейти вообще на GRUB, он не привязывается к физическому расположению ядра на диске, а читает его как файл, в отличие от LILO.

yars068 ★★★★★
()

А чем timeshift не устраивает? Или та же clonezilla?

tiinn ★★★★★
()
Ответ на: комментарий от Csandriel_x64

В таком случае я изначально использовал бы всякие виртуальные образы. Ну там, система в виртуалке, либо виртуальные тома.

xDShot ★★★★★
()

Для этих дел есть parted magic. В него также встроен создание образа раздела и восстановление. Кроме там есть полно утилит.

nicholas_ru
()
Ответ на: комментарий от nicholas_ru

там есть полно утилит

Не-а.

pacman -Si gparted
Репозиторий          : extra
Название             : gparted
Версия               : 1.7.0-1
Описание             : A Partition Magic clone, frontend to GNU Parted
Архитектура          : x86_64
URL                  : https://gparted.org/
Лицензии             : GPL-2.0-or-later  GFDL-1.2-or-later
Группы               : Нет
Предоставляет        : Нет
Зависит от           : parted  gtkmm3
Доп. зависимости     : dosfstools: for FAT16 and FAT32 partitions
                       jfsutils: for jfs partitions
                       f2fs-tools: for Flash-Friendly File System
                       btrfs-progs: for btrfs partitions
                       exfatprogs: for exFAT partitions
                       ntfs-3g: for ntfs partitions
                       udftools: for UDF file system support
                       xfsprogs: for xfs partitions
                       nilfs-utils: for nilfs2 support
                       polkit: to run gparted from application menu
                       gpart: for recovering corrupt partition tables
                       mtools: utilities to access MS-DOS disks
                       xorg-xhost: authorization from wayland
Конфликтует с        : Нет
Заменяет             : Нет
Размер загрузки      : 1716,37 KiB
Установленный размер : 7267,39 KiB
Сборщик              : Christian Hesse <eworm@archlinux.org>
Дата сборки          : Чт 30 янв 2025 23:46:43
Проверен             : SHA-256  Подпись

yars068 ★★★★★
()

В gentoo это обычный лайв и tar
tar -cpf, так же распаковывается.
Чтобы загрузку восстановить
grub-install --target=x86_64-efi --efi-directory=/boot/efi
grub-mkconfig -o /boot/grub/grub.cfg
Ну и blkid чтобы новые UUID дисков в fstab занести.
chroot можно подсмотреть тут https://wiki.gentoo.org/wiki/Handbook:AMD64/Full/Installation/ru
Если с kvm скопировать
ssh root@192.168.1.1 «cd /mnt/gentoo && tar -czvpf - *» > gentoo.tar.gz
Если на kvm залить, то
cat gentoo.tar.gz | ssh root@192.168.1.1 «tar -xzvpf - -C /mnt/gentoo»
Локальные tar лучше запаковывать через
pigz -9 -k
pigz просто многопоточный.
Потому что для xz и 7z бывает не хватает оперативки на виртуалке.
Лучше всегда gz.

romlejokke
()

Я через rsnapshot по cron делаю бекапы, он умеет сохранять только разницу между последними, умеет бекапить отдельные папки, умеет автоматически заливать бекапы в разные места.

Всю систему он мне не бекапит, да и не нужно считаю, у тебя часто она ломается что ли?

MOPKOBKA ★★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 2)
Ответ на: комментарий от Csandriel_x64

Он лучший открытый аналог, позволяющий сделать клон. Образ для бэкапа. Официально он платный, но скачать можно…

nicholas_ru
()
Последнее исправление: nicholas_ru (всего исправлений: 1)

После того как я перешёл на ZFS с zfs snap/zfs send и systemd-boot с ядрами в ESP подобные посты вызывают прям облегчение, как же теперь всё хорошо )

GAMer ★★★★★
()
Ответ на: комментарий от nicholas_ru

А, так это слака с нескучными обоями, вообще-то.

yars068 ★★★★★
()

L99 у тебя потому что нельзя тупо копировать сектор с LILO, при накатывании бекапа меняется физическое расположение файла и нужно обновить таблицу блоков. Так что или ставить другой загрузчик или заново ставить LILO, загрузив возвращенную систему другим способом. Например можно загрузить grub с флешки и командами запустить ядро и initrd если есть. После этого ввести команду lilo от рута.

Резервная копия первого сектора нужна только ради таблицы разделов, если она в MBR, а если GPT, то нужно больше секторов, кажется 34. Резервную копию GPT в файл умеет делать gdisk. Ещё можно через sfdisk -d сделать копию таблицы разделов в текстовом виде.

Xenius ★★★★★
()
Последнее исправление: Xenius (всего исправлений: 3)
Ответ на: комментарий от romlejokke

так же распаковывается.

Не, там строка подлинее, а то ACL потеряется, и --numeric-owner могут чудеса возникнуть, если восстановление с другим /etc/passwd.

grub-install --target=x86_64-efi --efi-directory=/boot/efi

У ТС'а нет EFI. А перед этим куча телодвижений по созданию efi-раздела, его форматирования в fat и монтирования /boot/efi.

mky ★★★★★
()

Тоесть первые 512 байт sda и sda1.

Первые 512 байт ФС обычно пустые, там нет суперблока ФС. Это место оставляли под загрузчик, если загрузчик ставили не в MBR, а на раздел, а в MBR ставили «универсальный» загрузчик, загружающий Active-раздел.

Вроде, это давно нигде не используется, даже в тех системах, где все ещё загрузчик в MBR, а пустое место остаётся. То есть смысла в первых 512 байт sda1 нет.

У lilo была «травма» с установкой, если загрузился с другого диска (НЖМД) и для BIOS тот диск стал 0x80. В этом lilo крайне неудобен для резервного восстановления. Загрузился с одного носителя, он стал /dev/sda, восстанавливаешь систему на другой, он в этот момент /dev/sdb. Но в конфиге lilo прописано, что boot=/dev/sda, и нужно править...

И, как я понимаю, ELILO заброшен, так что вам неизбежно придётся уходить с lilo, так как на новых материнках уже только EFI.

В первых 512 байтах sda смысла тоже мало, сейчас диск обычно разбит в GPT, даже если старый BIOS, так что за бэкап таблицы разделов это не считается, а хранящийся там загрузчик (lilo, grub и пр.) превязаны к остальному содержимому диска и в виде этих 446 байт неработоспособны. Для бэкапа таблицы разделов есть

sfdisk, sgdisk, но это мало когда нужно в случае пофайлового бекапа системы. Восстановление обычно на новый диск, который лучше разбить заново, так как скорее всего будет другой размер.

mky ★★★★★
()

Сейчас софта, который пишет кучу ненужных файлов, выше крыши. Проще все исключения записать в файл и использовать опцию --exclude-from. У меня там, помимо прочего:

.cache
.mypy_cache
.cargo
.pyenv
.virtualenvs
.mozilla
node_modules

Зачем тратить время и место бэкапа на то, что можно легко восстановить и без бэкапа.

По той же причине, не вижу смысла бэкапить, например, суперблок. Если у меня полетела система, я установлю базовую заново, и поверх накачу уже бэкап своих файлов.

Для бэкапа предпочитаю не велосипедить, а использовать borg. Там и шифрование, и сжатие, и дедупликация из коробки. Можно хранить кучу бэкапов за последний год, которые занимают не сильно больше места.

Chiffchaff
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.