Rose debug info
---------------

Перенос linux на другой диск на примере debian/ubuntu

Навеяно статьей про перенос freebsd на другой диск. Будем делать тоже самое но на linux. В linux все несколько сложнее.

Для начала нужно подсоединить новый диск и загрузится. В системе должны присутствовать 2 диска, первый с нашей системой, а второй пустой. Второй мы можем разметить по своему усмотрению или же скопировать разметку с первого диска(если второй диск идентичен первому). Как скопировать разметку можно прочесть здесь. Как разметить вручную думаю разберётесь сами, благо мануалов в интернете полно. После создания разметки разделы надо отформатировать примерно так.

# mkfs.ext4 /dev/sdb1

Затем примонтируем его в /mnt

# mount /dev/sdb1 /mnt

Теперь нам нужно создать дампы разделов, в данном случае нужно создать только дамп sda1. Установим утилиты dump/restore.

# apt-get install dump

И создаем дамп раздела в файл /mnt/root.img

# dump -0f /mnt/root.img /

Создание дампа в /mnt/root.img возможно когда на разделе используется менее 50% от /dev/sdb1. Иначе на разматывание дампа места не хватит. В остальных случаях нужно создавать дамп в другом месте, но не в разделе корня, чтобы дамп не мотал сам себя. Можно использовать раздел другой тачки примонтированный по sshfs, я проверял это прекрасно работает.
Переходим в /mnt и разматываем дамп.

# cd /mnt
# restore -rf /mnt/root.img

Как видим раздел перенесся на /dev/sdb1. Если у нас /boot на отдельном разделе, то переносим его аналогично.

Теперь нам нужно установить загрузчик.

# grub-install --root-directory=/mnt /dev/sdb

Затем если требуется правим /mnt/etc/fstab и меню grub в /mnt/boot/grub/grub.cfg.

# nano /mnt/etc/fstab
# nano /mnt/boot/grub/grub.cfg

Тут немного поясню зачем проверять и править эти файлы. У меня например в этих файлах были прописаны uuid разделов, и если мы уберем старый диск то ОС соответственно не загрузится, т.к у новых разделов у нас другие uuid. Я вместо uuid прописал реальные устройства корня и свопа /dev/sda1 и /dev/sda3. Все устройства sdb, станут у нас sda после извлечение первого диска.

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

P.S. Утилиты dump и restore не ограничиваются переносом ОС с одного диска на другой. Таким образом можно переносить linux вообще на другую тачку с другим железом и дисками. Процедура почти такая же за небольшими изменениями.

  1. На первой тачке создаем дамп ОС;
  2. Загружаем вторую тачку с livecd;
  3. Размечаем и форматируем диски;
  4. Копируем туда дамп c первой тачки(по scp, например);
  5. Разворачиваем дамп с помощью restore;
  6. Устанавливаем загрузчик;
  7. Загружаемся.
Поделиться
Отправить
Запинить
2015   centos   debian   dump   Linux   restore   ubuntu
3 комментария
BashOrgRu 2015

Есть же clonezilla.

Петр Аникин 2015

Ну ни кто же не спорит, что clonezilla есть. Так же есть и пофайловое копирование с накатыванием загрузчика, так же возможно перетащить систему с помощью dd. Это один из способов, не более.

Debian79 2016

В Debian 7.9 пишу команду:

dump 0auL -f /backup/BackOS /dev/sda1

выдает ошибку:
| DUMP: You can’t update the dumpdates file when dumping a subdirectory
| DUMP: The ENTIRE dump is aborted.

Что не так? Дамп на живой системе делается, где /backup/BackOS -второй примонтированный при установке HDD, а /dev/sda1 — корневой раздел root.

Петр Аникин 2016

Делайте вот так:

dump -0aLuf /backup/BackOS.img /
Radjah 2020

когда на разделе используется менее 50%

Можно добавить -z9, тогда дамп будет сжимать.

Не знаю, был ли такой ключ на момент написания поста.

Петр Аникин 2020

Спасибо за информацию.