---------------------------------------------------------------
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
---------------------------------------------------------------
Склонировать надо на новый диск /dev/sdb, на котором создать ту же таблицу разделов, но размер каталогов может быть другим, в данном случае раздел /dev/sdb7 был меньше.
---------------------------------------------------------
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
---------------------------------------------------------
Берем привычный инструмент и клонируем:
dd if=/dev/sda of=/dev/sdb bs=1M
После этого практически все программы работы с разделами (sfdisk, cfdisk, parted(gparted)) отказались работать с /dev/sdb, ссылаясь на неправильную таблицу разделов, показывающую верхнюю границу разделов выше физического размера целевого винта /dev/sdb. Остался только верный и надежный fdisk, честно показавший все данные по разделам, даже некорректные:
# fdisk -l /dev/sdb
Справиться с проблемой помогло удаление целиком расширенного раздела /dev/sda4, сохранение таблицы на диск (w), и последующее создание тех же самых разделов (n) указанием начального и конечного цилиндров:
# fdisk /dev/sdb
> n
Номера цилиндров вводить те же самые, что и на исходном диске:
# fdisk /dev/sda
> p
Теперь gparted показывал диск. Мало того, после просмотра оказалось, что вся инфа, переписанная с исходного диска командой dd в самом начале, находится на месте и после удаления расширенного раздела никуда не делась. Цветом явно выделялись области с данными. Осталось только грохнуть недо-раздел /dev/sdb7 и заново создать его в новых границах. А после банальным копированием с сохранением прав перенести данные с /dev/sda7 на /dev/sdb7:
# cp -r -p/* /
Раздел монтировался по label, который забыли указать при создании раздела. Но не беда:
# tune2fs -L label /dev/sdb7
Кстати, желательно после каждой работы с разделами и винтами перечитывать их командой:
# partprobe
Также необходимо в /etc/fstab в опциях монтирования разделов вместо relatime указать noatime для уменьшения износа SSD-дисков.