понедельник, 11 декабря 2017 г.

Перенос Linux Mint c HDD большего объема на меньший жесткий диск SSD

Как-то раз на работе стал медленно работать жесткий диск с системой Linux Mint.
Админы поставили новый ssd, однако систему на него не перевели, не хватило квалификации.
Пришлось мне, веб-программисту, заниматься самостоятельно задачей перевода системы,  установленной на hdd Linux Mint на ssd.

Сначала я попробовал скопировать систему на новый ssd с помощью программы dd.
Однако выяснилось, что данная программа копирует диск посекторно, то есть фактически клонирует диск.
Ошибка была в том, что исходный hdd имеет объем 460 ГБ, а диск назначения ssd  -  240 Гб.
Данных на hdd на 70 Гб. Тем не менее, поскольку утилита dd пытается скопировать hdd посекторно на ssd, программа завершается с ошибкой.
Погуглив, понял, что нужно создать загрузочный раздел на ssd диске, а в другой раздел на этом же диске скопировать все файлы с hdd.


1. Устаналиваем редактор разделов жестких дисков:

sudo apt-get install gparted

2. Создаем раздел grub_bios объемом 1 МБ для установки загрузчика GRUB в GPT для BIOS.
(Отличная инструкция приведена вот здесь https://losst.ru/ustanovka-zagruzchika-grub )

Внимание! Если у вас в системе используется вместо BIOS UEFI загрузчик, или вы используете в качестве таблицы разделов не GPT, а MBR, то вам данный способ установки загрузчика не подойдет.

Остальную часть диска я перевел в файловую систему ext4 . Эта часть и будет содержать скопированную с hdd систему Linux Mint.


x
































3. Инсталлируем загрузчик grub в специальный раздел на ssd

 sudo grub-install /dev/sda

4. Монтируем новый раздел ssd и копируем все файлы с hdd на этот раздел (за исключением файлов устройств, процессов, временных файлов — новая система прекрасно загрузится и будет работать без них)


mkdir /mnt/sda2

mount /mnt/sda2 /dev/sda2

sudo rsync -aAXv /* /mnt/sda2/ --exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/var/tmp/*,/run/*,/mnt/*,/media/*,/lost+found}


5. После перезагрузки системы видим меню, где можно выбрать с какого раздела загружать Linux Mint. Появился новый раздел - /dev/sda2.
Выбираю загрузиться с данного раздела и grub показывает ошибку.


No such device guid …
нет такого раздела
сначала нужно загрузить ядро

Понятно, что несмотря на копирование системы и создание загрузочного раздела, grub не находит файлы системы в новом разделе.

6. Загружаюсь в старую систему на hdd, выполняю команду

sudo update-grub 

Утилита находит систему в разделе /dev/sda2 и обновляет список загрузки


После перезагрузки Linux Mint на новом разделе ssd /dev/sda2 успешно загрузилась, стала работать быстрее и стабильней.

Надеюсь эта последовательность действий сбережет время и нервы читателю. Поскольку Linux Mint и Ubuntu имеют много общего, думаю этот способ подойдет и для Ubuntu.
Каталог блогов Blogolist