Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Восстановление из бэкапа с помощью dd  (Прочитано 4610 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн RockTeam

  • Автор темы
  • Новичок
  • *
  • Сообщений: 37
    • Просмотр профиля
Добрый день,

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

Суть проблемы: после обновления ядра для 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

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

Оффлайн rayanAyar

  • Старожил
  • *
  • Сообщений: 1027
  • Да пребудет с вами совпавшая контрольная сумма
    • Просмотр профиля
Re: Восстановление из бэкапа с помощью dd
« Ответ #1 : 09 Февраля 2013, 18:47:59 »
Из-за conv=sync
Имхо можно ничего не делать. Восстановление все равно должно сработать.

Оффлайн Vitsliputsli

  • Старожил
  • *
  • Сообщений: 1293
    • Просмотр профиля
Re: Восстановление из бэкапа с помощью dd
« Ответ #2 : 09 Февраля 2013, 18:52:16 »
Вы же используете sync, вот он и синхронизировал.
Т.е. при создании бекапа он читает по 8192K за раз, в конце файла считает только 1973K. Но у вас стоит sync и установлено кол-во байт на запись 8192К, он и запишет 8192К = 1973К данных + 6219К нулей.


Пользователь решил продолжить мысль 09 Февраля 2013, 18:53:39:
Да, работать все равно должно, эти нули все равно не запишутся на диск.

Оффлайн RockTeam

  • Автор темы
  • Новичок
  • *
  • Сообщений: 37
    • Просмотр профиля
Re: Восстановление из бэкапа с помощью dd
« Ответ #3 : 09 Февраля 2013, 20:10:07 »
Спасибо вам за комментарии! Смутила меня ошибка записи, а выходит, что нужно было вставить диск обратно в сервер, и проверить: запустится или нет.

Сейчас уже жду когда отработает команда:

dd if=/media/data/Backup/sda1Backup.img.gz | gunzip | dd of=/dev/sda1
Позже по завершении - напишу о результатах.

Пользователь решил продолжить мысль 09 Февраля 2013, 21:54:12:
В итоге получилась такая картинка:

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.

Можно как-нибудь починить файловую систему?
« Последнее редактирование: 09 Февраля 2013, 21:54:12 от RockTeam »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28512
    • Просмотр профиля
Re: Восстановление из бэкапа с помощью dd
« Ответ #4 : 09 Февраля 2013, 22:42:03 »
Ничего нельзя сделать. Созданный вами архив изначально нерабочий.
Указание "sync" было большой ошибкой.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн RockTeam

  • Автор темы
  • Новичок
  • *
  • Сообщений: 37
    • Просмотр профиля
Re: Восстановление из бэкапа с помощью dd
« Ответ #5 : 09 Февраля 2013, 23:42:44 »
Ничего нельзя сделать. Созданный вами архив изначально нерабочий.
Указание "sync" было большой ошибкой.

Почему нет? В TestDisk вижу все директории, вероятно должен быть способ. Но мне уже понятно, что в будущем придётся делать бэкапы другим способом.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28512
    • Просмотр профиля
Re: Восстановление из бэкапа с помощью dd
« Ответ #6 : 10 Февраля 2013, 01:40:51 »
Если видите все директории, тогда попробуйте распаковать образ на другой диск и прогнать fsck.
Если состояние файловой системы покажется удовлетворительным, возможно, проблема в побитом загрузчике.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн RockTeam

  • Автор темы
  • Новичок
  • *
  • Сообщений: 37
    • Просмотр профиля
Re: Восстановление из бэкапа с помощью dd
« Ответ #7 : 10 Февраля 2013, 11:20:46 »
Диск сейчас подключен к компьютеру. Вот как это выглядит в GParted (http://webfile.ru/6368222). Думаю, что до загрузчика мы ещё не дошли.

Сейчас буду пробовать распаковывать на другой диск, как вы написали.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28512
    • Просмотр профиля
Re: Восстановление из бэкапа с помощью dd
« Ответ #8 : 10 Февраля 2013, 15:09:30 »
Простите, а сами диски одинаковой геометрии? Я имею в виду размер физического кластера.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн RockTeam

  • Автор темы
  • Новичок
  • *
  • Сообщений: 37
    • Просмотр профиля
Re: Восстановление из бэкапа с помощью dd
« Ответ #9 : 10 Февраля 2013, 22:03:16 »
Да, геометрия дисков одинаковая. После выполнения следующей команды удалось удивить файловую систему.

fsck.ext4 -v /dev/sda1
При загрузке с этого диска на экране вижу сообщение:

error: the symbol `grub_xputs` not found

Пользователь решил продолжить мысль 11 Февраля 2013, 18:48:19:
Попробую "починить" grub, как описано здесь: https://help.ubuntu.com/community/Boot-Repair

Напишу позже что получилось.
« Последнее редактирование: 11 Февраля 2013, 18:48:19 от RockTeam »

Оффлайн RockTeam

  • Автор темы
  • Новичок
  • *
  • Сообщений: 37
    • Просмотр профиля
Re: Восстановление из бэкапа с помощью dd
« Ответ #10 : 12 Февраля 2013, 10:05:13 »
В "Advanced options" сначала выбрал "Restore MBR". Затем запустил Boot Repair ещё раз и в "Advanced options" выбрал "Reinstall GRUB".

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

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

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

Пользователь решил продолжить мысль 12 Февраля 2013, 10:59:08:
Вопрос: бэкап при помощи dd нужно делать на размонтированном разделе?

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

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Восстановление из бэкапа с помощью dd
« Ответ #11 : 12 Февраля 2013, 21:40:25 »
Вопрос: бэкап при помощи dd нужно делать на размонтированном разделе?
Вообще-то, да. =)
Пробуйте починить через fsck.

Многие рекомендовали использовать именно dd, как альтернативу Acronis True Image.
dd — простой низкоуровневый инструмент.
Альтернативой тому, что вы написали, полагаю, является clonezilla.
« Последнее редактирование: 12 Февраля 2013, 21:42:23 от ArcFi »

Оффлайн RockTeam

  • Автор темы
  • Новичок
  • *
  • Сообщений: 37
    • Просмотр профиля
Re: Восстановление из бэкапа с помощью dd
« Ответ #12 : 12 Февраля 2013, 22:52:18 »
Полное восстановление из бэкапа провалилось! Восстановил файловую систему, восстановил GRUB, но ОС не загружается по причине не полного бэкапа. Всё-таки нужно было размонтировать диск перед тем, как выполнять dd.

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

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

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

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28512
    • Просмотр профиля
Re: Восстановление из бэкапа с помощью dd
« Ответ #13 : 13 Февраля 2013, 00:45:12 »
Можно не размонтировать - для этого есть опция remount
I.e.
mount / -o remount,ro

На будущее, для бэкапов:

dd if=/dev/whatever bs=4096*16 iflag=direct
ВСЁ!
Если бэкапите на реальный раздел другого диска - добавить "... of=/dev/wherever oflag=direct".
Восстанавливать из архива, естественно, с oflag=direct так же.
« Последнее редактирование: 13 Февраля 2013, 00:48:18 от AnrDaemon »
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн RockTeam

  • Автор темы
  • Новичок
  • *
  • Сообщений: 37
    • Просмотр профиля
Re: Восстановление из бэкапа с помощью dd
« Ответ #14 : 13 Февраля 2013, 10:13:11 »
Большое спасибо всем, кто давал советы по делу и помогал мне! Буду устанавливать ОС заново, настраивать и восстанавливать всё частями в зависимости от того, что всё-таки удалось скопировать при помощи dd.

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

 

Страница сгенерирована за 0.022 секунд. Запросов: 21.