Войти

Показать полную графическую версию : [решено] Восстановление системы из бэкапа tar


Страниц : [1] 2

VladDV
07-03-2011, 03:47
Доброго времени суток!

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

1) Таром заархивировал весь корень, кроме /sys, /proc, /tmp, /dev, /mnt, /media и папки с оракловыми данными.
2) Через dd сделал бэкап бутсектора.
3) Создал виртуальную машину с одним жестким диском, загрузился с System Rescue CD.
4) Восстановил бутсектор, обновил информацию о разделах. Появился sda1 и sda2. Первый небольшой, 100Мб, 2й - оставшаяся часть диска.
5) На каждом из разделов создал ФС Ext3.
6) Примонтировал sda2, распаковал архив в его корень.
7) Примонтировал sda1, перенес с sda2 папку /boot (хочу, чтоб /boot лежал на отдельном разделе).
8) Отредактировал файл fstab так, чтобы корень мапился на /dev/sda2, а бут на /dev/sda1 (до этого в этом файле были ссылки на тома LVM).
9) Отредактировал файл grub.conf (заменил ссылку на том LVM на /dev/sda1).
10) Создал на sda2 недостающие папки /sys, /proc, /tmp, /dev.

После перезагрузки система повисает на загрузчике (появляется слово GRUB и все, дальше висит).

Что не так делаю?

Invite
07-03-2011, 13:41
После редактирования grub.conf grub-install запускали?

Kent
07-03-2011, 19:00
В /boot/grub/device.map ещё загляните.

VladDV
09-03-2011, 04:46
В /boot/grub/device.map сейчас прописано следующее:

(hd0) /dev/sda

После того, как запустил grub-install /dev/sda, выдало ошибку:

does not have any corresponding bios drive

Тогда выполнил следующее (нашел рекомендации в гугле):

#grub
>find /boot/grub/stage1
(hd0,0)
>root (hd0,0)
>setup (hd0)
>quit

После перезагрузки появилось меню граба, но ссылалось на /dev/VolGroup/Vol... Зашел в /boot/grub/menu.lst, исправил указанную строку на /dev/sda1. Теперь перезагружаюсь и получаю ошибку:

Error 15: File not found

Выше ошибки указана загрузка с ядра /vmlinuz-2.6.18-128el5, я проверял в папке /boot этот файл есть.

VladDV
10-03-2011, 03:23
Поборол ошибку Error 15: File not found. Оказалось, что в файле /boot/grub/menu.lst к путям ядра нужно было добавить /boot (конечно не понимаю, почему на рабочем сервере работает без /boot, а тут нужно добавлять). Сейчас имею следующее: система стартует, пытается грузиться, вылетает ошибка Volume group "VolGroup00" not not found. Дальше еще ряд ошибок, вытекающих из этой и в конце концов - Kernel panic :( Где еще может присутствовать завязка на этот Volume Group???


----

Все, сдаюсь :( Распаковал initrd-2.6.18....imz, поправил пути в файле init, запаковал обратно и загрузился с него. Получил:

kernel panic not syncing vfs unable to mount root fs on unknown-block 0 0

Гугл говорит массу вариантов, из-за чего может быть проблема.. Просто уже перестал понимать суть.

Invite
11-03-2011, 00:23
А ядро сами компилировали? Покажите еще menu.lst
Не проще будет систему по-новой поставить и накатить архив сверху?
Сдается мне или команда в грубе неправильная или в initrd поддержки ФС нету.

VladDV
11-03-2011, 02:17
А ядро сами компилировали? »
Нее, мы есчо не умеем :)


Покажите еще menu.lst »


# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
# initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
#hiddenmenu
title Enterprise Linux Restore (2.6.18-128.el5)
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-128.el5 ro root=/dev/sda1 rhgb quiet
initrd /boot/initrd-restore.img
title Enterprise Linux (2.6.18-128.el5)
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-128.el5 ro root=/dev/sda1 rhgb quiet
initrd /boot/initrd-2.6.18-128.el5.img
title Enterprise Linux Restore (2.6.18-128.el5)
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-128.el5 ro root=/dev/sda1 rhgb quiet
initrd /boot/initrd-restore.img


Не проще будет систему по-новой поставить и накатить архив сверху?»

Оно то может и проще, только сдается мне, что после того, как накачу бэкап, получится та же ситуация, ведь я снова подменю все файлы с указателями на LVM, в т.ч. initrd. Да и вообще хотелось бы научиться восстанавливаться с live cd, чтобы можно было это быстро сделать когда действительно произойдет авария. И наконец мне нужно получить копию сервера со всеми "нюансами", чтобы испытывать изменения по ораклу.

или в initrd поддержки ФС нету»
и на рабочем, и на тестовом сервер ФС - Ext3, поддержка не может быть не включена. Разве что устройства какие.

BuGfiX
11-03-2011, 02:36
Попробуйте пересобрать initrd.
mv /boot/initrd-restore.img /boot/initrd-restore.img.old
mkinitrd /boot/initrd-restore.img `uname -r`
Делать это нужно загрузившись в виртуалку с того-же System Rescue CD и примонтировав диски.

VladDV
11-03-2011, 02:48
В System Rescue CD не найдена команда mkinitrd. В каком live cd обычно есть эта команда?

BuGfiX
11-03-2011, 07:22
Она есть в дистрибутиве, который вы восстанавливаете из бэкапа. Забыл упомянуть что нужно сделать chroot, т.е. схема такая:
Загружаетесь с SRCD
Монтируете разделы, скажем в /mnt, не забыв про /proc, /sys, /dev.
Делаете chroot /mnt.
Пересобираете initrd.
Выходите из chroot
Отмонтируете разделы
Перезагружаетесь

Invite
11-03-2011, 09:13
root (hd0,0) »
указывает на sda1, а у вас корень на sda2
initrd /boot/initrd-restore.img »
это что за инитрд такой?

VladDV
11-03-2011, 09:32
Выполнил. Только вместо `uname -r` пришлось подставить номер версии с рабочего сервера, т.к. там выдало ошибку "не найден модуль для данной версии". Теперь ошибка Unable to access resume device /dev/sdb. Я так понял, что система не может подгрузить своп. Диск sdb я и планировал отдать под своп. Выполнял команду mkswap /dev/sdb. В fstab прописано:

/dev/sdb swap swap defaults 0 0

Видимо своп нужно как-то включить, раньше я делал это через swapon, но сейчас если сделать chroot, то папка /dev пустая.

---

указывает на sda1, а у вас корень на sda2 »
вот тут видимо моя ошибка, я подумал, что команда root должна указывать на раздел с /boot.

это что за инитрд такой? »
Это когда я изменял файл init в нем, то решил не править оригинал, а сделать ее копию, и обозвал initrd-restore.imz

VladDV
14-03-2011, 08:52
Цитата Invite:
указывает на sda1, а у вас корень на sda2 »
вот тут видимо моя ошибка, я подумал, что команда root должна указывать на раздел с /boot. »

Все таки я был прав - команда root (hd0,0) должна указывает на раздел с /boot.

Invite
14-03-2011, 09:16
Все таки я был прав - команда root (hd0,0) должна указывает на раздел с /boot. »
согласен, так до конца и не понял логику груба

kernel /boot/vmlinuz-2.6.18-128.el5 ro root=/dev/sda1 »
а вот здесь должно быть sda2

VladDV
14-03-2011, 09:41
а вот здесь должно быть sda2 »

Ага, уже поправил, забыл написать про это. Все равно не грузит. Не подключает своп, а также не может создать /dev /proc /sys и т.п. Такое ощущение, что не видит дисков. Есть мысль, что это из-за vmware, так как диски сказевые.

Invite
15-03-2011, 08:58
Где еще может присутствовать завязка на этот Volume Group??? »
примонтируйте корень и grep -rl 'VolGroup' /куда_смонтировали/etc

VladDV
16-03-2011, 02:29
grep -rl 'VolGroup' /куда_смонтировали/etc »

Уже не актуально, но прием полезный, спасибо.

VladDV
16-03-2011, 08:07
В гугле я часто встречаю совет, что если переношу линукс на vmware, необходимо включить опции ядра для поддержки SCSI/IDE. Опять же гугл говорит - для включения опций ядра необходимо использовать команду make menuconfig или make xconfig. Но каждая из этих команд мне выдает "make: *** нет правила для сборки цели". Я нашел файлик config в директории /boot, там как раз перечислены опции ядра. Но в самом начале сказано - руками не править. Как мне добавить нужные опции из под system rescue cd?

ruslandh
16-03-2011, 08:26
В гугле я часто встречаю совет, что если переношу линукс на vmware, необходимо включить опции ядра для поддержки SCSI/IDE. Опять же гугл говорит - для включения опций ядра необходимо использовать команду make menuconfig или make xconfig

Эти рецепты годны только для дистрибутивов, типа Слакваре или Gentoo, где все пакеты собираются из исходников.

Invite
16-03-2011, 08:45
необходимо включить опции ядра для поддержки SCSI/IDE »
если ядро стандартное, поддержка там включена по умолчанию.
нет правила для сборки цели »
не установлены исходники ядра
это вы все на рабочей машине запускаете или с лив-сд грузитесь и потом chroot делаете?
Как мне добавить нужные опции из под system rescue cd? »
ядро можно скомпилировать на другой машине, а потом перенести

на каком этапе сейчас тормозит загрузка?
какая команда сейчас при нажатии клавиши Е в меню загрузки груба?




© OSzone.net 2001-2012