LINUX.ORG.RU
решено ФорумAdmin

Восстановление из бэкапа с помощью dd

 , , ,


0

2

Добрый день,

Прошу помощи в вопросе по восстановлению сервера.

Суть проблемы: после обновления ядра для Ubuntu Server 12.04 - система перестала загружаться.

Перед самой процедурой обновления был сделан бэкап следующей командой:

dd bs=8192K conv=sync,noerror if=/dev/sda1 | gzip > /media/data/Backup/sda1Backup.img.gz

Сейчас пытаюсь восстановить таким образом:

gunzip -c /media/data/Backup/sda1Backup.img.gz | dd of=/dev/sda1 conv=sync,noerror bs=8192K

Весь процесс восстановления завершается так:

dd: writing `/dev/sda1': No space left on device 0+2385 records in 2384+0 records out 20000461824 bytes (20 GB) copied, 810.674 s, 24.7 MB/s

Почему не хватает места, если размер раздела не изменился? Подскажите что делать?

Потому что в процессе копирования последний неполный блок был дополнен 0x00 до 8M.
Восстанавливай с параметрами dd bs=512 и без conv, он там не нужен, будет долго, но гарантированно правильно.
Ошибка 'No space left' останется, но её нужно будет проигнорировать.

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

А ещё можно включить моск, и весь объём кроме хвоста писать большими блоками, а хвост посекторно. Ну или сначала добыть моск.

anonymous ()

Clonzilla, это тебе на будущее

GoNaX ★★★ ()

и еще - глупо делать бакапы, не имея доказательства того, что сможешь с них восстановиться

Bers666 ★★★★★ ()

Это сообщение можно игнорировать. Откройте файл 16-ричным редактором и загляните в конец: места не хватает тем нулям, которые образовались при создании бекапа с опциями sync,noerror,bs=8M.

AITap ★★★★★ ()

Спасибо вам всем за комментарии! Восстановить раздел удалось этой командой:

dd if=/media/data/Backup/sda1Backup.img.gz | gunzip | dd of=/dev/sda1

В итоге получилась такая картинка:

1575172+1 records in

1575172+1 records out

806488412 bytes (806 MB) copied, 12422 s, 64.9 kB/s

dd: writing to `/dev/sda1': No space left on device

39063403+0 records in

39063402+0 records out

20000461824 bytes (20 GB) copied, 12429.5 s, 1.6 MB/s

В результате ОС на сервере не загружается (мигает только курсор на чёрном фоне). При помощи загрузки с SystemRescueCd и просмотре информации о восстановленном разделе в GParted, удалось понять, что что-то случилось с файловой системой. Сообщение выглядит так: Unable to detect file system.

Можно как-нибудь починить файловую систему?

RockTeam ()

Подскажите что делать?

Распакуй бекап в файл, подмонтируй его, а потом разбирайся с содержимым: проверить, что монтируется, что читается. Потом файлы можешь и руками перебросать на новосозданную ФС.

i-rinat ★★★★★ ()
Ответ на: комментарий от darkenshvein

А подскажите как bacula снимет образ lvm-тома, раздела и т.п.?

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

бакапы на dd это неправильно.

Аргументируйте, если не трудно, с учетом того, что автор производит бэкап раздела.

petav ★★★★★ ()
Последнее исправление: petav (всего исправлений: 1)
Ответ на: комментарий от i-rinat

Спасибо, хорошая идея. Буду так и делать, если нет другого варианта. Просто скопировать всё содержимое подмонтированного раздела или как-то иначе? Потом вероятно придется ещё grub устанавливать после такой процедуры.

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

dd с работающей системы таит опасности неконсистентности данных и опасностей больше чем более активна система была в этот момент.

Понятие неконсистентности копии означает то, что вместо единого массива данных, отражающих состояние оригинала в один момент времени, копия состоит из нескольких частей, отражающих состояние соответствующих частей оригинала в разные моменты времени.

(c) Резервное копирование — виртуальные клоны против неконсистентных кентавров

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

Загрузчика скорее всего нет, или все таки есть?

if=/dev/sda1

Главная загрузочная запись (англ. master boot record, MBR) — код и данные, необходимые для последующей загрузки операционной системы и расположенные в первых физических секторах (чаще всего в самом первом) на жёстком диске или другом устройстве хранения информации.

(c) Главная загрузочная запись

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

А со старого ядра ума не хватило загрузиться?

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

Прошу прощения не совсем в тему въехал. Загрузчик должен быть диск тот-же самый. По делу. Думаю его надо обновить, я про загрузчик. Он сейчас у автора новое ядро грузит, а dd старое все развернуло.

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

Просто скопировать всё содержимое подмонтированного раздела или как-то иначе?

Обычно используют cp -a

Потом вероятно придется ещё grub устанавливать после такой процедуры.

Да.

i-rinat ★★★★★ ()

После выполнения следующей команды удалось удивить файловую систему, все директории и фалы до ЧП.

fsck.ext4 -v /dev/sda1

При загрузке с этого диска на экране вижу сообщение:

error: the symbol `grub_xputs` not found

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

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

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

Я понял что Вы имели ввиду, но уже постфактум.

petav ★★★★★ ()

В «Advanced options» сначала выбрал «Restore MBR». Затем запустил Boot Repair ещё раз и в «Advanced options» выбрал «Reinstall GRUB».

В результате после этих манипуляций, и загрузке с диска теперь BIOS выводит сообщение: Missing operating system.

Вопрос: стоил ли ещё раз пробовать развернуть образ раздела из dd на второй диск, и в Boot Repair попробовать выбрать «Recommended repair» или есть другие варианты?

Вообще не понятно, если dd скопировал весь раздел, то почему теперь невозможно его быстро и просто восстановить? Многие рекомендовали использовать именно dd, как альтернативу Acronis True Image. За три года ни разу не приходилось восстанавливаться из бэкапа. А вот теперь случилась проблема.

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

Многие рекомендовали использовать именно dd, как альтернативу Acronis True Image.

Многие не любят думать, но любят поорать о своей «крутости». dd это очень низкоуровневый механизм, а с такими надо хорошо понимать что делаешь.

За три года ни разу не приходилось восстанавливаться из бэкапа. А вот теперь случилась проблема.

При использовании неизвестного средства очевидно надо было хотя раз попробовать как оно работает.

Насколько я понял раздел ты восстановил, он монтируется и файлы ты видишь. Значит надо только восстановить загрузчик. Кстати, если бы ты делал образ всего накопителя, то загрузчик восстановился бы.

В общем читай про восстановление grub. Выше дали правильную ссылку, если не получилось то разбирайся что не так.

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

Многие не любят думать, но любят поорать о своей «крутости». dd это очень низкоуровневый механизм, а с такими надо хорошо понимать что делаешь.

Именно!

petav ★★★★★ ()

Вопрос: бэкап при помощи dd нужно делать на размонтированном разделе?

То есть команду {dd bs=8192K conv=sync,noerror if=/dev/sda1 | gzip > /media/data/Backup/sda1Backup.img.gz} нужно запускать не работающей ОС, раздел которой мы собираемся забэкапить?

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

Попробую ещё раз, как вы описали, только перед пунктом 1 думаю проделать операцию описанную здесь: http://www.novell.com/support/kb/doc.php?id=7009629

Думаю, после этой процедуры не придётся ещё раз раздел восстанавливать.

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

Если я не знаю что такое LVM snapshot, то значит теперь получается, что у меня не правильный бэкап, и дальше можно не тратить время восстановлением. Верно?

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

Верно?

Я бы так категорично не говорил. Равновероятностно. Все зависит от активности системы в момент бэкапа. Пока, что у Вас проблема с grub.

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

Попробую ещё раз образ на диск развернуть и починить GRUB. Позже напишу, что из этого получится.

Спасибо большое за помощь!

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

я тут решил опробовать dd, сделал бэкап, примонтировал созданный образ флэшки и итог:
-не хватает 1 папки
-все русские буквы теперь вопросики
Есть варианты как вылечить второе и избежать первого?

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

Не подскажу, предпочитаю копировать файлы или tar.

Может быть кодировку при монтировании можно указать.

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

чем именно mount -o loop отличается от того что я бы развернул на флэшке эти кракозяблики.

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

Полное восстановление из бэкапа провалилось! Восстановил файловую систему, восстановил GRUB, но ОС не загружается по причине не полного бэкапа. Всё-таки нужно было размонтировать диск перед тем, как выполнять dd.

Директории proc у меня нет на диске: http://webfile.ru/6373578

Теперь видимо придётся устанавливать систему с диска заново, но хорошо, что конфигурационные файлы сохранились.

Правильно я понимаю, что с моим бэкапом тут уже ничего не сделать?

На будущее мне нужно использовать clonezilla в качестве альтернативы Acronis True Image?

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

использовать clonezilla

Возможны варианты, но пожалуй стоит попробовать. Но главное — проверить как происходит восстановление.

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

тут уж Вам решать

Всё-таки нужно было размонтировать диск перед тем, как выполнять dd

или

использовать clonezilla в качестве альтернативы Acronis True Image

Название у него страшное ))

petav ★★★★★ ()

Большое спасибо всем, кто давал советы по делу и помогал мне! Буду устанавливать ОС заново, настраивать и восстанавливать всё частями в зависимости от того, что всё-таки удалось скопировать при помощи dd.

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

RockTeam ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.