Видео ролики бесплатно онлайн

Смотреть зрелые видео

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

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

21.11.09 20:15 Username

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

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

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

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


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

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

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


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


Теги:

xtavras 21.11.09 20:23 # +1
что то типа такого уже поднимал, там есть другие варианты.
Username 21.11.09 20:29 # +0
ну да, мне интересно, как бы получше это сделать
muhas 23.11.09 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.09 21:18 # +1
dd это слишком радикально... достаточно сжать директории корня в tar.bz2, с исключением ряда каталогов типа dev tmp и так далее... архив получается меньше самой системы, правда на его создание придется потратить время... но все же...
Username 21.11.09 23:20 # +0
да в том-то и дело, что без каталогов этих. Бубна при разворачивании потребуется оочень много. Да и опять же, медленно будет
zivot_je_cudo 22.11.09 01:22 # +0
Исключай только proc, sys, tmp. Бубна не потребуется, у себя разворачиваю систему за пять минут, только пользуюсь dar'ом.
Username 22.11.09 02:52 # +0
це шо такое - dar?
zivot_je_cudo 22.11.09 02:57 # +1
Как тар, только поумнее, специально для системных бэкапов. Умеет инкременты, диффы, разбивку на слайсы, очень хорошо сжимает.
l1feh4ck3r 22.11.09 04:47 # +2
С Вас обзорная статейка ;)
zivot_je_cudo 22.11.09 01:21 # +0
dev не надо исключать о.о
muhas 23.11.09 11:59 # +0
при udev вроде можно, вот при devfs нельзя было. хотя не уверен


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

В отличие от dd, которая копирует и свободное место, в сlonezilla входят несколько утилит, обрабатывающих поток данных до утилиты dd, полностью игнорируя свободные блоки. К тому же получаемый образ – это образ созданный с помощью утилиты dd , и архиватора (опционально) с которым можно работать на любой UNIX системе, и привязки к клонзиле для восстановления образа нету.
Cucumber 21.11.09 21:36 # +1
Я пробовал как-то dd. Кстати рекомендую использовать опцию bs, иначе дня два будет идти копирование.
Пробовал я тупо скопировать все данные одного винта на другой, аналогичный. Все копируется, но система с бекапа не грузиться. Потом я подумал что вероятно надо было активность разделу выставить.
Я решил проблему загрузившись с диска ubuntu и используя gparted. Ctrl+C Сtrl+V и все дела.
hayao 21.11.09 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.09 22:27 # +2
я могу посоветовать partimage, более юзерфрендли и сжатие на лету умеет. Также умеет показывать время и предположительные размеры. Вообщем поудобнее, чем dd.

А потом этой же утилитой можно накатывать сбэкапленный образ.
zivot_je_cudo 22.11.09 01:27 # +1
Лучше дд не использовать для бекапа, он слишком глупый.. tar, dar.
Ужать образ на лету - dd if=/dev/sda | bzip2 -9 > sda.bz2
Распаковка - bzcat sda.bz2 > /dev/sda
zivot_je_cudo 22.11.09 01:28 # +0
Так же если винт 100 гб, а данных 30гб, bz2-образ будет меньше 30гб.
Kraplax 23.11.09 15:56 # +0
это вряд ли. Если, конечно, предварительно "обнулить" свободное место, то нули легко сожмутся и тогда проблем не будет.
zivot_je_cudo 23.11.09 16:28 # +0
Че вряд ли? Проверено на практике gzip'ом.
leonder 04.02.10 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.09 02:51 # +0
кстати гениально, че-то я не подумал вывод перенаправить на сжатие :-)
h31 22.11.09 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.09 11:57 # +0
У меня на серверах сделано так 3 диска - 2 соеденены в RAID 5 и 3й RAID 0/ Раз в неделю или месяц бежит dd. В скрипте добавлена смена LABEL на destination disk, и так-же в GRUB добавлена секция для boot с него. И все. В случае если что-то не то с дисками - тупо поднимаюсь с 3го диска.
Kraplax 25.11.09 14:16 # +1
Предпочитаю сначала забить пустое место на разделе нулями, затем их перезаписать нулями. Тогда при сжатии образа пустое место действительно становится "пустым" и сжимается лучше.

Вот мой скрипт для бэкапа системы:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/bin/sh

echo off

echo "Mounting root device..."
mount /dev/sda1 /mnt/misc0 > /dev/null
echo "                                                                  [done]\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 "                                                                  [done]\n"

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

echo "Mounting storage device..."
mount /dev/sdb1 /mnt/storage
echo "                                                                  [done]\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 "                                                                  [done]\n"

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

Посты Комментарии
Последние посты
    Посты Комментарии
    Последние комментарии
      Посты Комментарии
      Изменения
        Посты Комментарии Изменения Черновики Избранное
        Черновики (все)
          Посты Комментарии Изменения Черновики Избранное
          Избранное (всё)
            Посты Комментарии Изменения Черновики Избранное
            Лучшие блоги (все 154)
            Топ пользователей Топ блогов
            Топ пользователей Топ блогов
            Элита (все 3098 из 229 городов)
            Топ пользователей Топ блогов
            welinux.ru

            Смотреть онлайн бесплатно

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


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

            Online video HD

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

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

            Full HD video online

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

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

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