Итак Вам необходимо перенести Ubuntu с обычного диска на SSD диск. Сразу оговорюсь, в данной заметке рассматривается пофайловый перенос системы (например, SSD-диск другого объема) а не клонирование образа диска с помощью dd. Также, мы используем только одну точку монтирования (без отдельного монтирования раздела в /home) А теперь нужно перенести Ubuntu на новый диск. Подключаем SSD диск к компьютеру удобным Вам способом. Для нормального переноса файлов нам понадобится загрузочная флешка с Ubuntu. Инструкцию как ее сделать можно легко найти в сети. Загружаемся с флешки и становимся суперюзером выполнив команду sudo -s.
Смотрим как определен SSD диск в системе командой fdisk -l. Мой диск определен вот так:
Диск /dev/sdb: 447,1 GiB, 480103981056 байтов, 937703088 секторов.
Нам необходимо подготовить и отформатировать новый диск. Выполняем команду fdisk /dev/sdx (в моем случае /dev/sdb). Команды, которые поддерживает fdisk, можно просмотреть нажав клавишу m, а затем Enter. Нажимаем n для создания нового раздела. Нас спросят, какой раздел (выберем первичный - буква p), с какого цилиндра будет начинаться раздел (я советую оставить по умолчанию) и необходимый размер раздела (для монтирования только корня 447 - 7 = 440 гигабайт) набрав +440G. Создадим раздел swap размером 7 гигабайт. Он создается таким-же образом только нужно изменить тип раздела. Тип изменяется используя букву t (смотрите подсказки все типы разделов можно посмотреть используя букву L). Выберите тип linux swap. Набрав из главного мено букву p Вы можете посмотреть созданную таблицу разделов. Если все устраивает, запишем ее с помощью буквы w.
Таблица разделов создана. Теперь создадим файловые системы командами, например, mkfs -t ext4 /dev/sdb1 и mkswap /dev/sdb2. Диск подготовлен. Открываем 2 терминала и становимся в них суперюзерами (sudo -s). В первом набираем команду blkid, которая выведет таблицу uuid файловых систем. В втором снова набираем fdisk -l чтобы определиться с буквами дисков. Например у нас /dev/sda1 - раздел с Ubuntu а /dev/sdb1 - раздел на который копируем. Создадим две папки mkdir /mnt/diskDonor и mkdir /mnt/diskAcceptor. Монтируем оба раздела: mount /dev/sda1 /mnt/diskDonor и mount /dev/sdb1 /mnt/diskAcceptor. Переносим данные выполнив команду rsync -avx /mnt/diskDonor/ /mnt/diskAcceptor. Ключ -x у rsync значит не переходить границы файловой системы, так что он не полезет в дебри /dev /proc и т. д. После окончания копирования файлов нужно заменить uuid файловой системы диска и swap (uuid - результат выполнения команды blkid в первом терминале) в файле etc/fstab и boot/grub/grub.cfg (в последнем файле нужно заменить все старые uuid). Теперь нужно пробросить разделы /proc, /sys и /dev в /mnt/diskAcceptor. Выполним команды:
Теперь перейдем в окружающую среду chroot: chroot /mnt/diskAcceptor. Там выполним команды grub-install /dev/sdb (в моем случае диск-акцептор sdb) и update-initramfs -u -k all.
Выйдем из среды chroot выполнив команду exit. Отмонтируем проброшенные файловые системы:
Проверьте внимательно все ли Вы сделали правильно и выключайте систему. Снимаем старый диск и загружаемся. Если Вы все сделали внимательно и ничего не пропустили загрузится новая копия системы.
На этом все.
Желаю Вам удачи.
Автор: Darkeye.
Еще интересное в сети.
Похожие материалы
Комментарии
можно просто слешем обойтись в rsync -avx /mnt/diskDonor/
У автора статьи серъёзная ошибка в тексте!
Единственно что, пришлось вместо:
rsync -avx /mnt/diskDonor /mnt/diskAcceptor
писать:
rsync -avx /mnt/diskDonor/ * /mnt/diskAcceptor
Иначе копируется на новый диск папка diskDonor, а в ней уже необходимые файлы и папки системы.
У меня также, в чем ошибка?
rsync -avx /mnt/diskDonor /mnt/diskAccept or
Получил в каталоге /mnt/diskAccept or ещё один каталог /diskDonor , т.е. путь для копии системы почему-то стал таким:
/mnt/diskAccept or/diskDonor
что это за глюк?
"Переносим данные выполнив команду rsync -avx /mnt/diskDonor /mnt/Acceptor."
Читать как:
"Переносим данные выполнив команду rsync -avx /mnt/diskDonor /mnt/diskAccept or."
RSS лента комментариев этой записи