пятница, 19 сентября 2008 г.

Перенос Linux на другой HDD

Честно говоря, мне еще ни разу не приходилось переносить операционную систему с одного жесткого диска на другой. Обычно смена HDD сопровождалась кардинальной сменой всего железа и я, в целях эксперимента, менял дистрибутив. Но случай все-таки представился - на рабочем месте возникла необходимость целиком перенести Ubuntu на другой компьютер, сменив при этом и жесткий диск. Мой случай, правда, оказался одним из самых простых, но думаю вам хоть станет понятно в каком направлении плясать.

Учитывая тот факт, что Ubuntu установлена на IDE жестком диске, а перенести я ее хочу на SATA, манипуляции пришлось производить на компьютере с SATA-контроллером.

Создание разделов на новом диске

Подключив оба диска, я загрузил рабочую Ubuntu. Далее нужно разбить новый жесткий диск. Для этого можно порекомендовать fdisk, cfdisk или графический аналог. Чем проще таблица разделов - тем меньше манипуляций. Не забудьте определить раздел под SWAP. Рекомендовано к использованию:
fdisk /dev/sda
Форматирование нужных разделов

Для этого можно взять консоль или, опять же, жутко краснея и стесняясь, воспользоваться графическим аналогом. Мне от этой жуткой болезни помогла команда:
mkfs.ext3 /dev/sda5
и т.д. для других разделов
Монтирование новых разделов

В общем как вы это сделаете - неважно, важен результат. А в результате у нас должны быть размечены и отформативарованы разделы под перенос данных. Остается их смонтировать.
sudo mkdir sda5
sudo mount -t ext3 /dev/sda5 sda5
и т.д. для других разделов

Перенос данных

У меня случай простой - раздел с Linux всего один и именно его надо перенести.
sudo cp -ax / sda5
Пока что, позевывая, можно отойти попить чаю. Все зависит от объема информации, но думаю минут 15-20 у вас точно будет. Ту же процедуру нужно повторить и для остальных разделов.

Теперь стоит заглянуть в /etc/fstab на новом жестком диске и /boot/grub/menu.lst на предмет соответствия всех разделов и путей к ним. Меня вот повеселило, что Ubuntu при установке не прописал по человечески "/dev/sda5", а завернул что-то брутальное типа "UUID-4565421-54565-...". Но я вылечил эту дурость.

Спасительный круг

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

Отмонтировать, выключится, вынять старый жесткий диск, загрузится в какой-нибудь LiveCD. Хотя зачем в какой-нибудь? Ведь диски с Ubuntu, благодаря Canonical, есть даже в любом селении Монголии.

Установка загрузчика

С некоторых пор я считаю, что лучше GRUB искать ничего и не стоит, да и нормальной альтернативы не вижу, так что дальнейшая методика только для него.
sudo grub
ждемс....
root (hd0,4)
setup (hd0)
Вот и все. Можно загрузится с нового жесткого диска, а если вам не повезло и загрузчик не установлен, то можно снова вернутся в LiveCD, если загрузчик сработал, но ошибка с путями то можно либо вернутся в LiveCD и скорректировать их, либо вписать напрямую в коммандной строке GRUB и скорректировать уже в загрузившейся полноценной системе.

Песни и пляски

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

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

Kane комментирует...

Насколько я понял, сменилось всё железо компьютера. Как к этому отнеслась система?

Никита комментирует...

Все прошло нормально, но конечно гарантии нет никакой, что не предется переустанавливать, особенно это важно, если сменяемый тип процессора отличен от первоначального. Также возможны проблемы и с материнской платой

Анонимный комментирует...

Имею дистрибутив на переносном жестком диске - используется на 3 РАЗНЫХ компах. Единственное - нужно на каждом компе устанавливать дрова под видюху (на одном ati, на втором nvidia, и на ноуте intel) и менять конфиги иксов. А еще не плохо было-бы написать про swap и hibernate. Описать конфигурирование uwsusp.conf и resume в initramfs-tool и сборке нового initrd.img.

Анонимный комментирует...

А вот здесь http://inf.by/linux/210/ написана эта же статья, только дата публикации более ранняя...

Анонимный комментирует...

Для учтановки загрузчика на новый диск не обязательно использовать Livecd или кудато перезагружаться.
Выход следующий (расположение разделов для данной статьи):
sudo grub-install --root-directory=sda5 /dev/sda
sudo grub-install --root-directory=sda5 /dev/sda
--recheck

NeAndryxa комментирует...

У меня при смене матери стал затык с дровами под сата контролер, убунта не видит сата, еще не решал руки не дошли