Решил я продать свой винчестер, на котором стояла система. И, соответственно, перенести систему на другой. Покопал инфы на эту тему. Нашёл несколько инструкций, но все они оказались либо неполными, либо с ошибками. Поэтому решил написать свою.
Условия
Итак, было у меня пять винчестеров: четверо нормальных, а на одном система. И было на системном диске два раздела: корневой раздел и раздел подкачки.
Софтовая часть состоит из операционной системы Ubuntu 9.10, загрузочного диска Ubuntu 9.04, файловой системы ext3, загрузчика GRUB 0.97 и программы для управления разделами дисков GParted 0.4.5.
Задача
Нужно перенести систему на другой жёсткий диск и установить загрузчик на него же, поскольку прежний винчестер будет удалён из системы.
Решение
Для начала необходимо загрузить компьютер с загрузочного диска. С помощью программы GParted можно скопировать раздел с вашей системой на другой жёсткий диск. Копируется раздел в неразмеченную область. Процесс занимает довольно много времени, всё зависит от объёма переносимых данных и скорости винчестеров.
Скопировать раздел не достаточно для нормальной работы копии системы. Необходимо настроить загрузчик. Для этого открываем консоль и запускаем командную строку загрузчика:
- sudo grub
Далее, из командной строки загрузчика, получаем наименование жёсткого диска, на который он установлен, командой:
- find /boot/grub/stage1
Результатом будет номер жёсткого диска и номер раздела, например (hd0,4). К какому жёсткому диску относится эта запись можно тут же проверить командой:
- geometry (hd0)
Эта команда покажет вам информацию о жёстком диске hd0: количество цилиндров, головок, секторов; название устройства, например /dev/sdc; и информация о разделах. Эту команду нужно выполнить для каждого своего винчестера чтобы узнать, как их называет загрузчик. Помните, что нумерация дисков начинается с нуля.
После того как вы узнали номер жёсткого диска и раздела, на который перенесли систему, допустим (hd2,4), можно перейти к настройке загрузчика в этом разделе:
- root (hd2,4)
После выполнения этой команды, устанавливаем загрузчик в MBR нужного винта:
- setup (hd2)
После чего нужно выйти из командной строки GRUB:
- quit
Если всё выполнено верно, то теперь возможна загрузка копии вашей системы с другого винчестера.
Далее необходимо отредактировать таблицу монтирования файловых систем — fstab. Для этого нужно смонтировать раздел с новой системой и заменить UUID старго swap–раздела, на UUID нового swap–раздела. UUID можно узнать, например в программе GParted в информации о соответствующем разделе.
Теперь можно выключить компьютер, отключить старый жёсткий диск и загрузиться в копию вашей системы на новом жёстком диске.
У меня на все манипуляции, включая поиск правильного решения, ушло ровно четыре часа.
Подводные камни
При копировании раздела с системой, копируется также и его UUID, что приведёт к путанице. В такой ситуации загрузчик выберет в качестве системного диска для загрузки тот, у которого меньший номер и соответственно больший приоритет.
При описанной выше конфигурации, если не отключить старый жёсткий диск, загрузка будет произведена с него, потому что у него номер (hd0), а у нового — (hd2).
Если вдруг вам повезло и UUID нового раздела получился другим, тогда, как и в случае со swap–разделом, необходимо в fstab заменить UUID старго раздела, на UUID нового раздела.