Показать полную графическую версию : [решено] Восстановление системы из бэкапа tar
Доброго времени суток!
Столкнулся с проблемой восстановления линукса из бэкапа, сделанного таром. Возникла задача перенести рабочий сервер 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 и все, дальше висит).
Что не так делаю?
После редактирования grub.conf grub-install запускали?
В /boot/grub/device.map ещё загляните.
В /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 этот файл есть.
Поборол ошибку 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
Гугл говорит массу вариантов, из-за чего может быть проблема.. Просто уже перестал понимать суть.
А ядро сами компилировали? Покажите еще menu.lst
Не проще будет систему по-новой поставить и накатить архив сверху?
Сдается мне или команда в грубе неправильная или в initrd поддержки ФС нету.
А ядро сами компилировали? »
Нее, мы есчо не умеем :)
Покажите еще 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, поддержка не может быть не включена. Разве что устройства какие.
Попробуйте пересобрать initrd.
mv /boot/initrd-restore.img /boot/initrd-restore.img.old
mkinitrd /boot/initrd-restore.img `uname -r`
Делать это нужно загрузившись в виртуалку с того-же System Rescue CD и примонтировав диски.
В System Rescue CD не найдена команда mkinitrd. В каком live cd обычно есть эта команда?
Она есть в дистрибутиве, который вы восстанавливаете из бэкапа. Забыл упомянуть что нужно сделать chroot, т.е. схема такая:
Загружаетесь с SRCD
Монтируете разделы, скажем в /mnt, не забыв про /proc, /sys, /dev.
Делаете chroot /mnt.
Пересобираете initrd.
Выходите из chroot
Отмонтируете разделы
Перезагружаетесь
root (hd0,0) »
указывает на sda1, а у вас корень на sda2
initrd /boot/initrd-restore.img »
это что за инитрд такой?
Выполнил. Только вместо `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
Цитата Invite:
указывает на sda1, а у вас корень на sda2 »
вот тут видимо моя ошибка, я подумал, что команда root должна указывать на раздел с /boot. »
Все таки я был прав - команда root (hd0,0) должна указывает на раздел с /boot.
Все таки я был прав - команда root (hd0,0) должна указывает на раздел с /boot. »
согласен, так до конца и не понял логику груба
kernel /boot/vmlinuz-2.6.18-128.el5 ro root=/dev/sda1 »
а вот здесь должно быть sda2
а вот здесь должно быть sda2 »
Ага, уже поправил, забыл написать про это. Все равно не грузит. Не подключает своп, а также не может создать /dev /proc /sys и т.п. Такое ощущение, что не видит дисков. Есть мысль, что это из-за vmware, так как диски сказевые.
Где еще может присутствовать завязка на этот Volume Group??? »
примонтируйте корень и grep -rl 'VolGroup' /куда_смонтировали/etc
grep -rl 'VolGroup' /куда_смонтировали/etc »
Уже не актуально, но прием полезный, спасибо.
В гугле я часто встречаю совет, что если переношу линукс на 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, где все пакеты собираются из исходников.
необходимо включить опции ядра для поддержки SCSI/IDE »
если ядро стандартное, поддержка там включена по умолчанию.
нет правила для сборки цели »
не установлены исходники ядра
это вы все на рабочей машине запускаете или с лив-сд грузитесь и потом chroot делаете?
Как мне добавить нужные опции из под system rescue cd? »
ядро можно скомпилировать на другой машине, а потом перенести
на каком этапе сейчас тормозит загрузка?
какая команда сейчас при нажатии клавиши Е в меню загрузки груба?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.