Бэкап системы linux tar

Бэкап системы linux tar

Основой этой работы послужила статья: Статья
К сожалению, указанная статья, если следовать её рекомендациям, у меня привела к ошибкам в создании архива. Возможно, это связано с тем, что в современных дистрибутивах Линукса, — а я делал бэкап на Cinnamon 19.2, — изменились правила работы команды tar. В частности, команда tar у меня не восприняла ключ -C, вместо этого создав архив с именем «-С». Кроме того, упаковка и распаковка архива пошла в неправильные папки, что тоже создало определённые проблемы, с которыми мне помогли разобраться здесь на форуме.
Теперь и я хочу поделиться данной практической наработкой. Возможно, эти описания кому-то станут полезными и сэкономят новичкам часы работы.
Итак, как говорится, поехали!

Прежде всего загружаемся с установочного диска CD/DVD Линукса (после загрузки на Рабочем столе должен находиться ярлык «Install Linux Mint»).
Здесь, как мне тоже советовали, можно пойти в программу «Диски» установочного диска Линукс и провести бэкап, не заморачиваясь командами терминала и командой tar. Команда «Диски» находится по этому пути: Menu (аналог кнопки «Пуск» в Windows) —> Preferences —> Disks. Далее там можно сделать бэкап нужного раздела диска. Но здесь есть один нюанс. Как выяснилось (у меня во всяком случае так), бэкап получается итоговым размером с раздел диска. То есть, если у вас Линукс стоит, например, на разделе размером 25 Гигабайт, а занимает только 6 Гигабайт, то итоговый размер бэкапа будет 25 Гигабайт. Если у вас размер жёсткого диска позволяет создавать такие бэкапы, можете воспользоваться этим, без сомнения, более простым способом создания бэкапа и восстановления из него. Я же в этой статье покажу путь создания и восстановления из бэкапа меньшего размера, чем даже размер Линукса.
Допустим, нужный раздел, где будет храниться бэкап системы Линукс у нас уже создан. Пусть сам Линукс — это /dev/sdaX, а дополнительный раздел (для бэкапа) — это /dev/sdaY. Вместо X и Y поставьте те номера, которые относятся к вашей системе. У меня, например, /dev/sdaX — это /dev/sda7, а /dev/sdaY — это /dev/sda6. У вас это могут быть другие номера разделов диска.
Если раздел для хранения бэкапа не создан, его предварительно нужно создать программой Menu —> Administration —> GParted установочного диска Линукс и отформатировать в той же файловой системе, в которой отформатирован раздел с установленным Линуксом, например, в ext4.

Читайте также:  Mozilla firefox linux ubuntu

Создаём в корневом разделе загруженного liveCD две папки: корневую, к которой примонтируем наш Линукс, который требует бэкапа, и бэкаповскую, к которой примонтируем дополнительный логический диск, на который будем писать файл бэкапа. Делаем это так.
Запускаем терминал.

Эта команда создаёт сразу две папки: /mnt/root и /mnt/backup. В команде текст «/mnt/» нужно писать без пробелов. Пароль для sudo он не просит, в liveCD его вводить, вообще говоря, не требуется.
Монтируем оба раздела. Корневой раздел на всякий случай монтируем с опцией (-о) «read-only»:

sudo mount /dev/sdaX /mnt/root -o ro sudo mount /dev/sdaY /mnt/backup
cd /mnt/root && sudo tar -cvzpf /mnt/backup/mintarchive.tar.gz *

Этой команды нет в исходной статье, из-за чего упаковка и распаковка происходила в неправильные папки. Здесь мне тоже подсказали, как делать уважаемые форумчане. Мы переходим в папку /mnt/root и всё содержимое оттуда («звёздочка») отправляем в архив mintarchive.tar.gz, находящийся в папке /mnt/backup.
Перед cd писать sudo не надо, так как sudo не воспринимает команду cd, а перед tar писать sudo надо!, иначе некоторые файлы не смогут добавиться в архив с выдачей сообщения “Permission denied”. (Проверить потом, все ли файлы и папки добавились в архив, можно в терминале с помощью меню “Search / Find” Ctrl+Shift+F и искать по фразе или по куску фразы “Permission denied”).
Бэкап 6,7 Гигабайт Линукса у меня выполняется порядка 16 минут и в результате имеет объём в районе 2,1 Гигабайт (сжатие в три раза). Узнать время выполнения можно, щёлкнув затем правой кнопкой на архиве бэкапа, и вычислив в свойствах файла разницу между значениями времени Modified и Created. Также можно использовать в терминале команду date перед началом архивирования и сразу после него (эта команда выдаёт дату и время).
Ключ -p здесь обозначает сохранение владельцев и прав доступа к файлам. Ключ -c — это создание архива (в отличие от ключа -x, распаковки архива). Ключ -v — вывод всех добавляемых файлов на экран. Ключ -z — тип создаваемого архива (tar.gz). Ключ -f — нужен для упаковки файлов в файл. Находил информацию, что без этого ключа tar будет брать данные из потоков консоли (stdin, stdout), но что это вообще такое и к чему приведёт tar без -f на практике, не вникал. Проще этот ключ поставить, раз он нужен.
Когда бэкап выполнился (в терминале появится снова приглашение ввода), делаем возврат в Домашнюю папку и отмонтирование смонтированных разделов:

Читайте также:  Запуск линукс через grub

После этого папки в liveCD root и backup должны быть пустыми, а сам архив-бэкап системы должен находиться на дополнительном диске бэкапов Линукса, который для этого создавался и форматировался. Этот архив можно скопировать на всякий случай даже на раздел Windows и хранить его там (у меня две системы на компьютере: Windows XP и Линукс). Но для восстановления бэкапа, его следует предварительно скопировать на дополнительный диск Линукса (на /dev/sdaY).

Теперь посмотрим на то, как делается восстановление из бэкап-архива.
Загружаемся с установочного диска Линукс. Копируем бэкап-архив оттуда, где мы его храним, на дополнительный логический раздел Линукс /dev/sdaY (если этого файла архива там нет).
Создаём в терминале точки монтирования для корневого раздела и раздела, на котором хранится бэкап-архив:

sudo mount /dev/sdaY /mnt/backup -o ro

Здесь можно пойти в программу GParted, которая есть на установочном диске liveCD и отформатировать старый раздел с Линуксом /dev/sdaX. Но это может привести к непредсказуемым последствиям, с которыми я столкнулся, когда сделал это: от падения выборщика загрузки GNU GRUB до неясных ошибок, типа «Адрес не является папкой» из-за того, что при форматировании меняется шестнадцатеричный код раздела UUID, а дальнейшая смена этого кода в файле /etc/fstab, как написано в указанной в начале статье, недостаточна для восстановления работоспособности Линукса. В каких ещё файлах хранится UUID и где его следует поменять ещё — непонятно. Поэтому мне был предложен более прогрессивный вариант с удалением старых файлов Линукса. Поэтому ничего форматировать не нужно.
Примонтируем раздел со старыми (которые нужно заменить бэкап-архивными) файлами Линукса к /mnt/root:

sudo mount /dev/sdaX /mnt/root

Эта команда удаляет всё. Выполняется быстро (у меня примерно за 1 минуту).
Ключи команды: -f — усиленное (forced) удаление, то есть удалить всё, не задавая никаких вопросов; -r — удаляет каталоги и их содержимое рекурсивно; -d — удаляет пустые каталоги; -v — выводит на экран список удалённого.
Проверить потом, всё ли удалено, можно в окне папки /mnt/root, или введя для /mnt/root в терминале команду ls.
Теперь распаковываем содержимое архива на место:

cd /mnt/backup sudo tar --preserve-permissions --same-owner --directory=/mnt/root -xvf mintarchive.tar.gz

Команде tar здесь даны указания сохранить разрешения и владельцев файлов и каталогов; распаковать содержимое архива в папку /mnt/root.
Распаковка архива с чистым Линуксом у меня заняла примерно 6 минут.
Делаем в терминале размонтировку всех смонтированных разделов, предварительно вернувшись в Домашнюю папку, так как после распаковки архива находимся в /mnt/backup:

Читайте также:  Невозможно скопировать файл linux

Перезагружаем компьютер. Во время перезагрузки DVD-ROM отдаёт диск liveCD, и мы заходим в Линукс. GNU GRUB не слетел. Менять UUID не надо. Несколько часов работы на обновлённом бэкапом Линуксе казусов не выявили.
Надеюсь, что эта информация кому-нибудь из новичков будет полезна. Спасибо за внимание!

Источник

Оцените статью
Adblock
detector