Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Общий по Linux (http://forum.oszone.net/forumdisplay.php?f=9)
-   -   [решено] Восстановление системы из бэкапа tar (http://forum.oszone.net/showthread.php?t=201333)

VladDV 07-03-2011 03:47 1629087

Восстановление системы из бэкапа 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 и все, дальше висит).

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

Invite 07-03-2011 13:41 1629266

После редактирования grub.conf grub-install запускали?

Kent 07-03-2011 19:00 1629419

В /boot/grub/device.map ещё загляните.

VladDV 09-03-2011 04:46 1630424

В /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 1631160

Поборол ошибку 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 1631982

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

VladDV 11-03-2011 02:17 1632028

Цитата:

Цитата Invite
А ядро сами компилировали? »

Нее, мы есчо не умеем :)


Цитата:

Цитата Invite
Покажите еще 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

Цитата:

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

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

Цитата:

Цитата Invite
или в initrd поддержки ФС нету»

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

BuGfiX 11-03-2011 02:36 1632034

Попробуйте пересобрать 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 1632039

В System Rescue CD не найдена команда mkinitrd. В каком live cd обычно есть эта команда?

BuGfiX 11-03-2011 07:22 1632076

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

Invite 11-03-2011 09:13 1632124

Цитата:

Цитата VladDV
root (hd0,0) »

указывает на sda1, а у вас корень на sda2
Цитата:

Цитата VladDV
initrd /boot/initrd-restore.img »

это что за инитрд такой?

VladDV 11-03-2011 09:32 1632131

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

/dev/sdb swap swap defaults 0 0

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

---

Цитата:

Цитата Invite
указывает на sda1, а у вас корень на sda2 »

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

Цитата:

Цитата Invite
это что за инитрд такой? »

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

VladDV 14-03-2011 08:52 1634367

Цитата:

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

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

Invite 14-03-2011 09:16 1634389

Цитата:

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

согласен, так до конца и не понял логику груба

Цитата:

Цитата VladDV
kernel /boot/vmlinuz-2.6.18-128.el5 ro root=/dev/sda1 »

а вот здесь должно быть sda2

VladDV 14-03-2011 09:41 1634405

Цитата:

Цитата Invite
а вот здесь должно быть sda2 »

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

Invite 15-03-2011 08:58 1635156

Цитата:

Цитата VladDV
Где еще может присутствовать завязка на этот Volume Group??? »

примонтируйте корень и
Код:

grep -rl 'VolGroup' /куда_смонтировали/etc

VladDV 16-03-2011 02:29 1635871

Цитата:

Цитата Invite
grep -rl 'VolGroup' /куда_смонтировали/etc »

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

VladDV 16-03-2011 08:07 1635925

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

ruslandh 16-03-2011 08:26 1635937

Цитата:

В гугле я часто встречаю совет, что если переношу линукс на vmware, необходимо включить опции ядра для поддержки SCSI/IDE. Опять же гугл говорит - для включения опций ядра необходимо использовать команду make menuconfig или make xconfig
Эти рецепты годны только для дистрибутивов, типа Слакваре или Gentoo, где все пакеты собираются из исходников.

Invite 16-03-2011 08:45 1635944

Цитата:

Цитата VladDV
необходимо включить опции ядра для поддержки SCSI/IDE »

если ядро стандартное, поддержка там включена по умолчанию.
Цитата:

Цитата VladDV
нет правила для сборки цели »

не установлены исходники ядра
это вы все на рабочей машине запускаете или с лив-сд грузитесь и потом chroot делаете?
Цитата:

Цитата VladDV
Как мне добавить нужные опции из под system rescue cd? »

ядро можно скомпилировать на другой машине, а потом перенести

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

VladDV 16-03-2011 08:52 1635950

Вон оно что... А как же тогда быть? Последнее, чего добился - исправил в файле init вместо resume /dev/sdb значение resume LABEL=SWAP-sdb. Соответственно сделал для sdb метку SWAP-sdb, для sda1 метку /boot, а для sda2 метку /. И в fstab выполнил аналогичные изменения. Теперь выдает одну единственную ошибку:

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)


Причем я уже сделал вторую виртуалку, где диски сделал IDE - картина та же.

---

При нажатии клавиши E первая команда - root (hd0,0)

Invite 16-03-2011 09:01 1635954

что-то мне кажется зря вы полезли init ковырять, по идее и так должно работать. что там в федоре в этом файлике можно посмотреть?
Цитата:

Цитата VladDV
При нажатии клавиши E первая команда - root (hd0,0) »

а дальше?

VladDV 16-03-2011 09:06 1635957

Цитата:

Цитата Invite
а дальше? »

извиняюсь :) к концу рабочего дня мозг плавиться :)

root (hd0,0)
kernel /boot/vmlinuz-2.6.18-128.el5 ro root=/dev/sda2 rhgb quiet
initrd /boot/initrd-restore.img

Цитата:

Цитата Invite
что там в федоре в этом файлике можно посмотреть? »

Это Red Hat, но не суть.. Просто там хранились ссылки на LVM тома, которые пришлось править. А лейблы я решил поставить по образцу чистого редхета, поставленного на виртуалку.

Invite 16-03-2011 10:58 1636036

Цитата:

Цитата VladDV
kernel /boot/vmlinuz-2.6.18-128.el5 ro root=/dev/sda2 rhgb quiet »

quiet стоит убрать rhgb тоже
что в каталоге /boot/grub?

VladDV 16-03-2011 11:14 1636049

Цитата:

Цитата Invite
quiet стоит убрать »

Это уже интересней! Теперь можно увидеть что происходит. Сейчас перед паникой выдается:

No filesystem could mount root, tried: ext2 iso9660

А у меня оба раздела ext3. Может быть из-за этого?

В папке /boot/grub следующее:
Код:

root@sysresccd /root % ls -l /mnt/sda1/boot/grub
total 190
-rw-r--r-- 1 root root    197 Mar  8 10:28 default
-rw-r--r-- 1 root root    80 Mar 10 11:10 device.map
-rw-r--r-- 1 root root  7584 Mar 14 11:58 e2fs_stage1_5
-rw-r--r-- 1 root root  7456 Mar 14 11:58 fat_stage1_5
-rw-r--r-- 1 root root  6720 Mar 14 11:58 ffs_stage1_5
-rw-r--r-- 1 root root    894 Mar 16 18:07 grub.conf
-rw-r--r-- 1 root root  6720 Mar 14 11:58 iso9660_stage1_5
-rw-r--r-- 1 root root  8224 Mar 14 11:58 jfs_stage1_5
-rw-r--r-- 1 root root    917 Mar 16 18:07 menu.lst
-rw-r--r-- 1 root root  6880 Mar 14 11:58 minix_stage1_5
-rw-r--r-- 1 root root  9248 Mar 14 11:58 reiserfs_stage1_5
-rw-r--r-- 1 root root  1330 Jun 11  2007 splash.xpm.gz
-rw-r--r-- 1 root root    512 Mar 14 11:58 stage1
-rw-r--r-- 1 root root 104988 Mar 14 11:58 stage2
-rw-r--r-- 1 root root  7072 Mar 14 11:58 ufs2_stage1_5
-rw-r--r-- 1 root root  6272 Mar 14 11:58 vstafs_stage1_5
-rw-r--r-- 1 root root  8864 Mar 14 11:58 xfs_stage1_5


VladDV 16-03-2011 12:00 1636083

ЗАПУСТИЛ таки!! :) После того, как добился состояния Unable to mount root fs on unknown-block(0,0), исправил файлик /etc/modprob.conf до следующего содержания:

Код:

alias eth0 e1000
alias scsi_hostadapter mtpbase
alias scsi_hostadapter1 mtpspi
alias scsi_hostadapter2 ata_piix

После этого воспользовался советом BuGfiX, и пересобрал initrd. Перезагрузился - и система стартовала. Осталась мелочь - упали иксы.. Но с этим уже завтра буду разбираться.

--

Иксы попросили пароль рута и сбросились до дефолтных настроек. Теперь работают и они :) Всем огромное спасибо!


Время: 06:15.

Время: 06:15.
© OSzone.net 2001-