вторник, 22 июня 2010 г.

Перенос системы на другой физический диск

Эта заметка о том, как я переносил систему на другой жесткий диск.
На днях обнаружил, что жесткий диск начал покрываться битыми секторами. Т.к. ноут на гарантии, понес его в сервис. Но предварительно перекинул систему на винт от старого ноута, которым щас и пользуюсь, и потер все данные на проблемном диске (чтобы ничего не стырили ;))


Для начала я загрузился с LiveCD Ubuntu 10.04 Desktop, открыл консоль и ввел команду:
$ sudo -i
, т.к. в дальнейшем все действия будут проходиться от рута. Хотя тоже самое можно было сделать загрузившись в однопользовательском режиме и перемонтировать все разделы источника в режим read only.
После чего с помощью fdisk и mkfs создал разделы и отформатировал их. Далее скопировал все данные с одного диска на другой:
# rsync -axW --progress --exclude='tmp/' /mnt/sda2 /mnt/sdb2
# rsync -axW --progress --exclude='tmp/' --exclude='temp/' --exclude='cache/' /mnt/sda3 /mnt/sdb3
Рассмотрим подробнее. Первая команда копирует корневой раздел, а вторая - раздел /home. Ключи:
-a - режим архивирования; это значит, что копироваться данные будут рекурсивно, с сохранением прав, времени, атрибутов группы и владельца, а так же будут пересозданы символьные ссылки
-x - не выходить за пределы одной файловой системы, т.е. чтобы не копировались такие каталоги как /sys, /proc, /dev, /home и т.п.
-W - не использовать дифференциальный алгоритм; т.к. файлов на другом диске все равно нет, то и сравнивать нечего, поэтому просто копируем файлы
--progress - показывать ход выполнения операции
--exclude - исключить любые каталоги, с указанным именем
Если у вас в системе есть жесткие ссылки, то добавьте ключ "-H", чтобы пересоздать их на получателе. Правда скорость копирования будет ниже.
После завершения копирования, нужно установить загрузчик. У Ubuntu 10.04 это Grub2. Ставим:
# grub-install --root-directory=/mnt/sdb2 /dev/sdb
# grub-install --root-directory=/mnt/sdb2 /dev/sdb --recheck
Тут первая команда устанавливает Grub2 на новый диск, а вторая просто для проверки, что все прошло успешно. После этого у меня исчез файл "/mnt/sdb2/boot/grub/device.map", не беда:
# echo '(hd0) /dev/sda' > /mnt/sdb2/boot/grub/device.map
Хотя с таким же успехом можно было скопировать этот файл со старого диска.

После этих операций вставил винт в старый ноут и загрузился. Система немного поругалась, что иксы криво настроены, но все прошло хорошо. Причина была в том, что на проблемном ноуте у меня NVidia, а на том, куда переносил систему - Ati.
Еще сбились владелец и группа на некоторых папках в /home. Исправлял так:
$ sudo chown -R user_name:group_name ~/
Вот и все :)





Информация с сайта http://angel2s2.blogspot.com/.

8 комментариев:

  1. Пару замечаний:

    1. Почему сбились права? Такого не должно было быть. Ты же полностью систему переносил! Как вариант, конечно, что-то повредилось из-за битых секторов... Но все равно странно. Сколько раз переносил - ни разу таких проблем не было.

    2. "sudo su" - это, извини, масло масленное. :) Я уже где-то писал об этом. Бредовая конструкция. Конечно ни кто не запрещает ей пользоваться, но все же она очень плоха по многим причинам. Если ты хочешь получить рутовый шелл лучше юзать "sudo -i".

    3. Чет не очень понял чего ты добивался следующей конструкцией:

    # mkdir /mnt/sdb3/user_name
    # chmod 777 /mnt/sdb3/user_name

    очень загадочная вещь. ;)

    ОтветитьУдалить
  2. 1. Сам не знаю, сам удивился. Видать из-за бэдов.

    2. Да, знаю про "sudo -i", просто поздней ночью дело было, голова уже плохо варила. А написал именно так как делал. Щас пофиксю, чтобы правильнее было.

    3. Ай... черт... Мега сенкс!!! Я просто скопировал тогда не содержимое раздела sda3, а его папку user_name, т.е. не правильно сделал. Вот и написал эту же ошибку сюда %) Щас пофиксю.


    Спасибо за замечания :)

    ОтветитьУдалить
  3. Молодой бл% админ!!!!

    Нах Этот весь гем, который еще и неработает норм!?

    Вот вариант сто процентово работающий:

    берете лаёв сд http://rutracker.org/forum/viewtopic.php?t=560432

    грузитесь с этого образа
    только есть момент , сразу зайдите правой кнопкой мыши на Мой Компьютер-свойства-дополнительно- быстродействий - параметры-дополнительно- создать файл подкачки

    кочаете Acronis Migrate Easy v.7.0 http://rutracker.org/forum/viewtopic.php?t=995563

    и там по инструкции делаете клон вашего диска!!!!!!!!!!!!

    и вауля

    Ламеры

    ОтветитьУдалить
  4. 1. Если так переносить форточки, то еще не факт, что они заработают на новом железе (зависит, как правило, от чипсета)
    2. Софт этот весь платный, а пиратку я не уважаю (про бесплатный тоже знаю, не горюй)
    3. Я форточки не юзаю
    4. Это не тру юникс вей
    5. Продолжить?

    Пришли тут бл% в гости ламеры да троли... давненько вас тут не было...

    ОтветитьУдалить
  5. Анонимусов вообще гнать надо поганой метлой, а винламеров, да еще и троллей - не только метлой, но и чем похуже! ;)

    ОтветитьУдалить
  6. В сис. блоке стоит 3 винта, 2 сата и 1 айдишный, на них стоит 3 винды и линукс (убунту).
    На айдишнике две ХР шки стоят, на одном сатовском 7 ка и линукс.

    До установки линукса, я отключал и вынимал айдишный винт, семёрка грузилась без проблем, теперь после установки линукса, такой трюк не проходит, видимо линукс загрузчик держит именно в айдишнике и именно через него всё грузится.

    Собираюсь убрать древний винт(айдишник), вот не знаю как быть с загрузчиком, надеюсь что кто нить из вас сталкивался с подобной проблемой и знает как её решить.

    ОтветитьУдалить
  7. 2Гость: вообще телепатов тут нет. ;) Так что вам придется самому разбираться. Что бы было легче, разберитесь сначала как в системе у вас определяются винты, какие загрузчики в их MBR, в какой последовательности они вызываются. Тогда вам будет ясно, почему у вас не выходит загрузка "как раньше".
    Вообще проще всего выкинув не нужный вам винт, установить в mbr первого винта grub все разруливать им. Тогда будет все нормально грузится. Но опять же: что бы все грамотно сделать нужно понимание что и как работает, что откуда вызывается и как. Судя по вашему вопросу, у вас этого понимания нет, иначе самого вопроса не возникло бы. ;) Почитайте доки, разберитесь. Все будет понятно и просто.

    ОтветитьУдалить
  8. В общем согласен с Olly Cat. Как я понял, у вас загрузчик на ide диске. Поэтому вам надо поставить grub на тот sata диск, на котором пингвин с седьмой форточкой стоят и выставить этот винт первым в настройках bios.

    ОтветитьУдалить