Как скопировать больший диск на меньший диск?

Есть два диска 128G и 16G. На диске два раздела - загрузочный и данных.
Как перенести один диск на другой?
Я пробовал
dd if=/dev/sdBIG of=/dev/sdSMALL bs=64K conv=noerror,sync
Но система после копирования и загрузки ругается на испорченный второй раздел и требует чтобы я все починил.
# e2fsck -fy /dev/mmcblk0p2
e2fsck 1.43.3 (04-Sep-2016)
The filesystem size (according to the superblock) is 27563520 blocks
The physical size of the device is 845824 blocks
Either the superblock or the partition table is likely to be corrupt!
Abort? yes

если ответить no то он на каждый блок требует подтверждения
Error reading block 1048608 (Invalid argument) while getting next inode from scan. Ignore error? yes
Force rewrite? yes
Error reading block 1048609 (Invalid argument) while getting next inode from scan. Ignore error? yes
Force rewrite? yes
...

пробую сделать resize - не дает
resize2fs -f /dev/mmcblk0p2 845824
resize2fs 1.43.3 (04-Sep-2016)
Resizing the filesystem on /dev/mmcblk0p2 to 845824 (4k) blocks.
resize2fs: Can't read a block bitmap while trying to resize /dev/mmcblk0p2
Please run 'e2fsck -fy /dev/mmcblk0p2' to fix the filesystem
after the aborted resize operation.

Что делать?
  • Вопрос задан
  • 1377 просмотров
Пригласить эксперта
Ответы на вопрос 3
15432
@15432
Системный программист ^_^
Acronis True Image такое точно умеет (если структура разделов позволяет)
Через dd не получится, т.к. целевой диск имеет меньший размер
Ответ написан
Комментировать
xotkot
@xotkot
хорошо есть и хорошо весьма
Я пробовал
dd if=/dev/sdBIG of=/dev/sdSMALL bs=64K conv=noerror,sync
Но система после копирования и загрузки ругается на испорченный второй раздел и требует чтобы я все починил.

dd копирует весь диск побайтово и естественно будет ругаться на то что не может уместить 128G в 16G.
dd просто тупо перенёс начальные 16G из 128гигового диска(sdBIG) в 16G(sdSMALL), поэтому у вас не только второй раздел будет повреждён(я так понял первый раздел у вас меньше 16G) но и данные на нём так же будут повреждены.

Если итоговый раздел меньше чем исходный то вместо dd лучше использовать rsync.
В начале на sdSMALL создаёте нужные разделы с учётом того чтобы туда уместились все переносимые данные. Далее можно из живой системы или примонтировав нужный раздел перенести данные:
# rsync -aAXv --exclude={...} /откуда /куда
--exclude - папки которые исключаем при переносе
Как я понимаю первый раздел у вас корень, если так, то перенос из живой системы будет выглядеть примерно так:
# rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /куда

и на последок незабываем сделать корневой (первый) раздел загрузочным и при необходимости подправить загрузчик и fstab
Ответ написан
@GermSerg
Уточните - какого размера разделы на большом диске,и что именно вы пытаетесь перенести?ВЕСЬ диск 128ГБ на 16 Г?Или вам РАЗДЕЛ с одного диска на другой перенести нужно?В общем,уточните)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы