Перенос разделов с помощью dd
Вчера один мой знакомый заинтересовался в покупке старенького компьютера, за которым я до недавнего времени работал и не успел до конца перенести всю систему на новый ноутбук. Дабы не торопиться и не пихать весь старый хлам на новую машину я решил просто скопировать старую систему на отдельный винчестер для дальнейших разбирательств. Итак, у меня были 60Гб (/dev/hda) винчестер со старой системой, который надо было освободить для продажи с компьютером и 200Гб (/dev/hdb) винчестер куда надо было перенести файлы. Далее я напишу, что я сделал, чтобы скопировать рабочую систему. Может быть, кому-то окажется полезным.
Для начала с помощью fdisk я удалил все разделы на большом винчестере и создал там копии разделов со старого т.е. маленький /boot, swap и большой / (root). Для новых разделов я указывал те же самые начальные и конечные сектора, что были в выводе fdisk для разделов старого винчестере. Единственное замечание, что новый root раздел я сделал больше, так чтобы он занял всё место на 200Гб винчестере.
Далее, командой dd я скопировал содержимое разделов /boot и /
swap раздел я не копировал, просто сделал mkswap /dev/hdb3. Т.к старый root раздел был меньше нового root раздела, я обработал файловую систему на новом разделе следующим образом:
Для /dev/hdb1 я тоже сделал на всякий случай e2fsck.
Заключительным шагом была установка grub загрузчика. Я запустил grub --no-floppy и выполнил следующие команды:
Результатом этих действий стала работающая на новом винчестере старая gentoo система :-)
Для начала с помощью fdisk я удалил все разделы на большом винчестере и создал там копии разделов со старого т.е. маленький /boot, swap и большой / (root). Для новых разделов я указывал те же самые начальные и конечные сектора, что были в выводе fdisk для разделов старого винчестере. Единственное замечание, что новый root раздел я сделал больше, так чтобы он занял всё место на 200Гб винчестере.
Далее, командой dd я скопировал содержимое разделов /boot и /
dd if=/dev/hda1 of=/dev/hdb1
dd if=/dev/hda3 of=/dev/hdb3
swap раздел я не копировал, просто сделал mkswap /dev/hdb3. Т.к старый root раздел был меньше нового root раздела, я обработал файловую систему на новом разделе следующим образом:
e2fsck -f /dev/hdb3
resize2fs /dev/hdb3
Для /dev/hdb1 я тоже сделал на всякий случай e2fsck.
Заключительным шагом была установка grub загрузчика. Я запустил grub --no-floppy и выполнил следующие команды:
root (hd1,0)
setup (hd1)
quit
Результатом этих действий стала работающая на новом винчестере старая gentoo система :-)






Comments
Любопытно :) А что насчет других дистрибутивов? Например, дебиан... Мне кажется, переносится точно так же. Или нет?
Думаю, в debian тоже есть команда dd ^__^ То что я описал, это просто пример действий. Обычно, когда пытаешься повториь чей-то алгоритм на своей системе, что-то идёт не так, но всё равно легче, когда перед глазами есть решение, которое для кого-то работало.
Если будешь потом приводить полученную систему в рабочее состояние, напиши :) Интересно знать, сколько геморроя будет... Логика подсказывает, что чем больше разница в "железе" между старым и новым компом, тем оного геморроя больше. Когда я переносил систему (примерно тот же случай), я не заморачивался особо и просто перенес документы из /home на "свежую" систему. Но все-таки интересно, можно ли вот так вот будет переселить операционку в новый дом :)
Забавная опечатка :)
of=/def/hdb3
Спасибо, питон съел мой моск :-)
Во времена администрирования alt linux переносил с винта на винт обычной командой cp, с изменением геометрии разделов. Только для /dev пришлось в мануале ключ подсмотреть, чтобы он не читал из них информацию (дошло после первого же /dev/hda :D )