Перенос работающей системы Ubuntu на другой диск

На тесте использую систему Ubuntu Server 14.04.5 LTS.

И так, на работающей системе переключимся на root пользователя:

sudo -i

Проверим какие диски подключены:

fdisk -l

В моем случае первый используется диск /dev/sda (автоматически разбит системой при установке) и /dev/sdb — новый не размеченный:

/dev/sdb1 * Linux
/dev/sdb2 Расширенный
/dev/sdb5 Linux своп / Solaris
/dev/sdb

Разобьем новый диск /dev/sdb аналогично установленному /dev/sda:

sfdisk -d /dev/sda | sfdisk --force /dev/sdb

Форматируем основной раздел и swap на новом диске:

mkfs.ext4 /dev/sdb1
mkswap /dev/sdb5

Создадим пустую директорию, смонтируем в неё первый основной раздел нового диска:

mkdir /newhdd
mount /dev/sdb1 /newhdd

Посмотрим какие есть директории и скопируем в новый раздел всю информацию:

ls /
cp -ax /bin/ /boot/ /etc/ /home/ /lib/ /lib64/ /opt/ /root/ /sbin/ /tmp/ /usr/ /var/ /initrd.img vmlinuz /newhdd
cd /newhdd
mkdir /dev /proc /srv /sys /mnt
chmod 777 /tmp

После копирования посмотрим UUID разделов нового диска:

lsblk -o NAME,UUID
blkid

Изменим UUID старых разделов на новые в файле /newhdd/etc/fstab.

И на последок выполним команды в терминале для обновления grub:

mount /dev/sdb1 /newhdd
mount --bind /dev /newhdd/dev
chroot /newhdd
update-grub
exit

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

Кстати однажды скопировал всю информацию кроме директории lib64 и при выполнении chroot отображалась ошибка:

chroot: failed to run command ‘/bin/bash’: No such file or directory

Смотрите также мою статью:
Резервное копирование Linux в архив и восстановление из него

Вливайтесь в общение

4 комментария

Добавить комментарий для MaximОтменить ответ

  1. А можно ли скопировать ubuntu с данными, но на разделы других размеров? В связи с тем, что новый диск большего размера.

  2. Для Ubuntu16 пришлось еще /run скопировать

  3. спасибо БОЛЬШУЩЕЕ за статью! Только здесь нашел решение
    «chroot: failed to run command ‘/bin/bash’: No such file or directory»

  4. По-моему Ваша команда # mkdir /dev /proc /srv /sys /mnt должна вывалиться эксепшеном.
    А эта # chmod 777 /tmp на мой взгляд не принесет должного результата.
    Вероятно Вы хотели написать что-то подобное # mkdir dev proc srv sys mnt? и затем т.к. мы находимся уже в папке newhdd после команды # cd /newhdd — # chmod 777 tmp