LINUX.ORG.RU

Восстановление системы на другой диск.

 , ,


0

1

В свете Как полечить HDD (ext4) ? пришлось переезжать на другой диск. Может, временно. Но ничто так не постоянно, как временное.

Рабочая площадка: ноут. Внутри - «новый» диск (чуть меньше в итоге, но объем занятого места должен поместиться) - всего 500, но использовать предполагается порядка 280 гигов. По USB - умирающий друг - 320 гигов. Нужно спасти: OpenSUSE 12.2.

Цель: склонировать разделы с умирающего друга на «новый». Делаю все в Ubuntu 12.04 LTS Live CD, ибо это единственный проверенный (убунту, но не 12.04) дистр LiveCD, в котором доступна dd_rescue (в 12.04, в отличие от любимого для этих целей 9.04, определяется WiFi ноута, можно подключить репы и поставить dd_rescue).

В GParted не видятся разделы старого диска (по USB) почему-то. В fdisk и Nautilus-е - все нормально.

Были разделы на старом: /dev/sdb1 - / - 50 Gb (занято порядка 30 Гб) /dev/sdb2 - swap - 4 Gb /dev/sdb3 - /home - оставшееся (занято порядка 200)

Сделал на новом разделы: /dev/sda1 - swap - 4 Gb /dev/sdb2 - под / - 40 Gb /dev/sdb3 - под /home - остаток

Корень скопировался командой

dd bs=2M if=/dev/sdb1 of=/dev/sda2 
довольно быстро. Я сначала выделил на sda2 места 1-в-1,а потом уже GParted-ом уменьшил до 40 Гб раздел.

Домашняя копировалась долго из-за бэдов:

dd_rescue -b=2M count=XXX /dev/sdb3 /dev/sda3

вместо ХХХ поставил то число блоков, которое дал мне

fdisk -l
для уже сделанного раздела /dev/sda3. Т.е. я, заведомо зная, что на /dev/sdb3 данных меньше, чем я выделил места на /dev/sda3, копировал только то количество блоков, которые поместятся в приемник (может, это неправильно).

В итоге. Загрузка с «нового» диска, естественно (а, может, и не естественно) не идет. повисает на строке

GRUB

Как чинить - я не могу понять, ибо вообще в загрузчиках не бум-бум пока.

Запустился с установочного OpenSUSE 12.2. Выбрал пункт «обновить имеющийся дистрибутив» и... она не увидела то, что у меня получилось в результате копирования! Даже разделов (может, и не должна).

_____

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

ЗЫ. Нужно достаточно срочно, но время на 1-2 копирования разделов еще есть.

★★★★★

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

Т.е. я, заведомо зная, что на /dev/sdb3 данных меньше, чем я выделил места на /dev/sda3, копировал только то количество блоков, которые поместятся в приемник (может, это неправильно)

1. Кто же так «кусками» копирует файловые системы, вы уверены, что данные лежат одной сплошной частью от начала раздела ? Вам нужно копировать файловую систему целиком, а затем уменьшать.

В итоге. Загрузка с «нового» диска, естественно (а, может, и не естественно) не идет. повисает на строке

GRUB

Как чинить - я не могу понять, ибо вообще в загрузчиках не бум-бум пока.

Нужно переустановить загрузчик в mbr жёсткого диска, кроме того у вас сменился порядок разделов.

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

1. Кто же так «кусками» копирует файловые системы, вы уверены, что данные лежат одной сплошной частью от начала раздела ? Вам нужно копировать файловую систему целиком, а затем уменьшать.

Ну... возможно, с домашней я на*** накололся. Буду исправлять как-то... может, на другой диск перезалью сначала. С корнем-то все ровно должно быть. не?

Нужно переустановить загрузчик в mbr жёсткого диска, кроме того у вас сменился порядок разделов.

Да, я логически понимаю, что это так. Но как это сделать?

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

гуглил. везде пишут понятно. пробовал - не взелтало раньше. Может, не судьба была.

С grub попробую разобраться. А что с mbr делать?

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

нууу... надо же его поставить (или как это называется?) ? или оно и так уже «поставилось»

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

вернее... если у меня загрузка идет до строки

GRUB

то, говорит ли это о том, что нужно только сам grub подправить?

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

В google / на wikipedia читать что такое mbr и partition table.

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

Загрузчик grub «разбит» на две части, одна прописана в mbr, вторая читается с определённого раздела с директории boot.

При установке загрузчика в части, которая в mbr прописывается или номер раздела или UUID (идентификатор) файловой системы, указывающий где загрузчику искать свои файлы.

Вы при переносе изменили порядок разделов, ранее у вас корневой раздел, на котором, скорее всего, находятся файлы загрузчика был первым, вы перенесли его на раздел с индексом 2.

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

сделал 1-в-1, как здесь написано. Теперь не зависает на строке

GRUB , а проходит до приглашения самого grub.

Не совсем понимаю, что теперь надо делать... :(

Можете подсобить?

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

написал эту команду в приглашении grub. Результат - очистился экран и опять приглашение...

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

Покажите содержимое этого файла:

cat (hd0,msdos2)/boot/grub/grub.cfg
Это прямо в приглашении grub2.

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

kostik87 ★★★★★
()
Ответ на: комментарий от kostik87
error: unknown filesystem

странно...

bvn13 ★★★★★
() автор топика

Всегда копировал mc, правил fstab и lilo, и за глаза хватало

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

сейчас меняю с лив-сд местами swap и root

bvn13 ★★★★★
() автор топика

ddrescue умеет делать log, что очень помогает.

Самый простой вариант, сделать полную копию с поломанного диска на новый пустой большой диск( вот тут описывал). Если будешь делать напрямую, без создания промежуточного файла образа, то в команду ddrescue, лучше добавить ключ --force (-f). Если копировать будет слишком медленно, можно попробовать добавить ключ «ddrescue --direct». При таком методе копирования, ты получишь полную идентичную копию со старого диска на новый. Примерная команда:

# ddrescue -v -f --direct /dev/sd_bad_usb_320 /dev/sd_good_dsk_500 /tmp/move_320_to_500_2013.log

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

justAmoment ★★★★★
()
Ответ на: ddrescue умеет делать log, что очень помогает. от justAmoment

это все хорошо, если бы не одно НО. На новом 500-гиговом диске вырезаны в скрытые разделы два участка бедовых блоков... Так что, общий неразрывный объем стал меньше 320 гигов... Приходится выкручиваться.

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

Есть прогресс!

Почитал инеты.

В сусе 12.2 нет чистого grub. Есть GRUB Legacy и GRUB2. Именно последний у меня и стартовал все это время.

Я из Rescue DVD сделал

grub2-mkconfig -o /boot/grub/grub.cfg

В результате граб2 опять не видит меню, но! Когда я ему написал

configfile (hd0,msdos3)/boot/grub/grub.cfg
, то он успешно показал меню из одного пункта и загрузил систему!

Вопрос теперь такой: как заставить видеть конфиг без автоматически?

bvn13 ★★★★★
() автор топика
Ответ на: Есть прогресс! от bvn13

нет чистого grub. Есть GRUB Legacy и GRUB2

GRUB Legacy - это первая версия grub, grub-0.97
GRUB2 - это вторая версия grub, grub-1.99 / grub2

У них различная архитектура и разный формат конфигурационных файлов.

Я из Rescue DVD сделал

grub2-mkconfig -o /boot/grub/grub.cfg

Что за Rescue DVD, это LiveCD, если да, то эта команда выполнялась относительно корня LiveCD системы.

Почитайте эту статью https://wiki.archlinux.org/index.php/GRUB2_(Русский)

kostik87 ★★★★★
()

Решение

Не хочу оставлять тред без решения, если я его нашел.

Сделав

# grub2-mkconfig

у меня сделался конфиг /boot/grub/grub.conf

но дефолтным является /boot/grub2/grub.cnf

Я скопировал конфиг и все заработало.

Всем спасибо за помощь!

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