Видео смотреть бесплатно

Смотреть 365 видео

Официальный сайт filipoc 24/7/365

Смотреть видео бесплатно

Username 21.11.2009 20:15

Tips & tricksОбсудим бэкап установленной системы с помощью dd

Сегодня exelens поднял вопрос, как сохранить полностью бэкап системы в виде образа на флешку, для последующего быстрого восстановления на случай. Решение пришло довольно быстро - воспользоваться утилитой dd. Не думаю, что более-менее опытные юзеры найдут тут что-то интересное, причем что подобная тема не раз поднималась на welinux, однако отдельного поста, посвященного проблеме не было до сих пор. Поэтому решил поднять эту тему, заодно интересно будет послушать какие-нибудь необычные и красивые варианты решения.

Итак, первое, что приходит на ум - скопировать весь рут-раздел (допустим, /dev/sda1)

1
dd if=/dev/sda1 of=backup.img



Решение очевидно, но понятно, что в данном случае нужно иметь раздел под / достаточно маленький, чтобы уместился на флешку. Другое дело, что раздел может быть достаточно большим, но данных на нем, ну гига на 4. Как выцепить нужные данные?
Второй вопрос, который следует из метода создания, как ужать образ? Не думаю, что простое сжатие каким-нибудь zip'ом или lzma поможет - образы плоховато сжимаются. Отличный вариант - попробовать ужать до применения команды dd, однако как это сделать и как разжать данные с той же флешки? Собственно вот две проблемы, на которые я бы хотел обратить внимание и узнать ваше мнение.

В любом случае, кроме всего что я написал выше, необходимо и забэкапить MBR на отдельный образ:

1
dd if=/dev/sda of=mbr.img bs=512 count=1



Очевидно, что затем, при восстановлении, необходимо будет воспользоваться dd аналогично, но с обратными входами-выходами:

1
2
dd if=mbr.img of=/dev/sda
dd if=backup.img of=/dev/sda1



Вообщем, жду каментов


Тэги: бекап
+ 3 -
Похожие Поделиться

xtavras 21.11.2009 20:23 #
+ 1 -
что то типа такого уже поднимал, там есть другие варианты.
Username 21.11.2009 20:29 #
+ 0 -
ну да, мне интересно, как бы получше это сделать
muhas 23.11.2009 11:53 #
+ 0 -
к тому же тонкости по бекапу mbr (таблица разделов и собственно bootstrap)
обсуждались тут в комментах

но повторюсь на всякий случай
Восстановить только bootstrap:
dd if=bootsector.img of=/dev/sda bs=1 count=446

Восстановление только таблицы разделов:
dd if=bootsector.img of=/dev/sda skip=446 seek=446 bs=1 count=64
Juev 21.11.2009 21:18 #
+ 1 -
dd это слишком радикально... достаточно сжать директории корня в tar.bz2, с исключением ряда каталогов типа dev tmp и так далее... архив получается меньше самой системы, правда на его создание придется потратить время... но все же...
Username 21.11.2009 23:20 #
+ 0 -
да в том-то и дело, что без каталогов этих. Бубна при разворачивании потребуется оочень много. Да и опять же, медленно будет
zivot_je_cudo 22.11.2009 01:22 #
+ 0 -
Исключай только proc, sys, tmp. Бубна не потребуется, у себя разворачиваю систему за пять минут, только пользуюсь dar\'ом.
Username 22.11.2009 02:52 #
+ 0 -
це шо такое - dar?
zivot_je_cudo 22.11.2009 02:57 #
+ 1 -
Как тар, только поумнее, специально для системных бэкапов. Умеет инкременты, диффы, разбивку на слайсы, очень хорошо сжимает.
l1feh4ck3r 22.11.2009 04:47 #
+ 2 -
С Вас обзорная статейка ;)
zivot_je_cudo 22.11.2009 01:21 #
+ 0 -
dev не надо исключать о.о
muhas 23.11.2009 11:59 #
+ 0 -
при udev вроде можно, вот при devfs нельзя было. хотя не уверен


зы. а про clonezilla все забыли? такой опенсорсный аналог Acronis, Norton Ghost и т.д

В отличие от dd, которая копирует и свободное место, в сlonezilla входят несколько утилит, обрабатывающих поток данных до утилиты dd, полностью игнорируя свободные блоки. К тому же получаемый образ – это образ созданный с помощью утилиты dd , и архиватора (опционально) с которым можно работать на любой UNIX системе, и привязки к клонзиле для восстановления образа нету.
Cucumber 21.11.2009 21:36 #
+ 1 -
Я пробовал как-то dd. Кстати рекомендую использовать опцию bs, иначе дня два будет идти копирование.
Пробовал я тупо скопировать все данные одного винта на другой, аналогичный. Все копируется, но система с бекапа не грузиться. Потом я подумал что вероятно надо было активность разделу выставить.
Я решил проблему загрузившись с диска ubuntu и используя gparted. Ctrl+C Сtrl+V и все дела.
hayao 21.11.2009 22:14 #
+ 3 -
Вместо dd
можно так:
rsync -arvu / --exclude=/proc --exclude=/lost+found --exclude=/mnt --exclude=/sys --exclude=/media --exclude=/dev --exclude=/home --exclude=/tmp .
на сменном носителе

и потом по файликам легко:
rsync -avu /media/disk/backup/home/user/samiy_nuzniy_fail .
или так:
tar cvpjf backup.tar.bz2 --exclude=/proc --exclude=/lost+found --exclude=/dev --exclude=/media --exclude=/tmp --exclude=/var/cache/apt --exclude=/mnt --exclude=/sys --exclude=/home --exclude=/backup.tar.bz2
в корне

а потом:
tar xvpjf backup.tar.bz2 -C
anjolio 21.11.2009 22:27 #
+ 2 -
я могу посоветовать partimage, более юзерфрендли и сжатие на лету умеет. Также умеет показывать время и предположительные размеры. Вообщем поудобнее, чем dd.

А потом этой же утилитой можно накатывать сбэкапленный образ.
zivot_je_cudo 22.11.2009 01:27 #
+ 1 -
Лучше дд не использовать для бекапа, он слишком глупый.. tar, dar.
Ужать образ на лету - dd if=/dev/sda | bzip2 -9 > sda.bz2
Распаковка - bzcat sda.bz2 > /dev/sda
zivot_je_cudo 22.11.2009 01:28 #
+ 0 -
Так же если винт 100 гб, а данных 30гб, bz2-образ будет меньше 30гб.
Kraplax 23.11.2009 15:56 #
+ 0 -
это вряд ли. Если, конечно, предварительно \"обнулить\" свободное место, то нули легко сожмутся и тогда проблем не будет.
zivot_je_cudo 23.11.2009 16:28 #
+ 0 -
Че вряд ли? Проверено на практике gzip\'ом.
leonder 04.02.2010 22:08 #
+ 0 -
Лечил ноутбук от висты знакомым, и только что установленную и настроенную экспи со всем софтом решил забэкапить, делал это примерно так:

dd if=/dev/sda | bzip2 -9 > /media/second_hdd/windows.bz2

NTFS-раздел общим размером 13 Гб с занятым пространством около 6Гб удалось сжать примерно до 4,7, при этоми на какие-то 50 Мб перевалило за допустимый размер DVD...

Чтобы отслеживать процесс выполнения бэкапа я в другом окне эмулятора терминала запустил что-то такое:

while : ; do pkill -USR1 dd; ls -h /media/second_hdd/windows.bz2; sleep 60; done

В итоге раз в минуту видел строку отчета, сколько инфы было в сумме отправлено программой dd и во что эти данные ужались. Так вот, это я все написал ради одного: Заметил, что когда размер от dd перевалил за сумму занятого места на разделе - размер архива продолжал расти. Тут-то я и подумал, что надо было бы сдеалть дефрагментацию и обнулить "свободное" место, но только подумал, времени было в обрез.

В общем назвались груздем - рассказывайте как обнулять свободное место ;-)
Username 22.11.2009 02:51 #
+ 0 -
кстати гениально, че-то я не подумал вывод перенаправить на сжатие :-)
h31 22.11.2009 14:37 #
+ 0 -
dd if=/dev/sda of=mbr.img bs=512 count=1

Тем самым ты банально затрешь прежнюю таблицу разделов. Потом будешь сильно кусать локти. Вместо всего MBR нужно брать лишь загрузочную область. Сделать это просто - вместо bs=512 использовать bs=446
dd if=/dev/sda | bzip2 -9 > sda.bz2

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

А вот и нет. Если у тебя загрузчик не LILO и ты случайно поломал систему, а потом восстановил её с образа, то MBR можно и не трогать.
slimer 23.11.2009 11:57 #
+ 0 -
У меня на серверах сделано так 3 диска - 2 соеденены в RAID 5 и 3й RAID 0/ Раз в неделю или месяц бежит dd. В скрипте добавлена смена LABEL на destination disk, и так-же в GRUB добавлена секция для boot с него. И все. В случае если что-то не то с дисками - тупо поднимаюсь с 3го диска.
Kraplax 25.11.2009 14:16 #
+ 1 -
Предпочитаю сначала забить пустое место на разделе нулями, затем их перезаписать нулями. Тогда при сжатии образа пустое место действительно становится "пустым" и сжимается лучше.

Вот мой скрипт для бэкапа системы:
#!/bin/sh

echo off

echo "Mounting root device..."
mount /dev/sda1 /mnt/misc0 > /dev/null
echo " \n"


echo "Zeroing free space on root device..."
dd if=/dev/zero of=/mnt/misc0/tmp_zeroer bs=1M
shred -n0 -zu /mnt/misc0/tmp_zeroer
sync
echo " \n"

echo "Unmounting root device..."
umount /dev/sda1
echo " \n"

echo "Mounting storage device..."
mount /dev/sdb1 /mnt/storage
echo " \n"

echo "Backing up the root device..."
dd if=/dev/sda | lzma -cf9 > /mnt/storage/sda_backup-`date -I`.lzma
rm /mnt/storage/backup-latest.lzma
ln -s /mnt/storage/sda_backup-`date -I`.lzma /mnt/storage/backup-latest.lzma
echo " \n"

echo "Unmounting storage device..."
umount /dev/sdb1
echo " \n"

В хорошем качестве hd видео

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн