Клонирование SD-карты 4 ГБ на SD-карту 8 ГБ
Мне нужна вся система, все запланированные данные, настройки и все, что у меня есть на SD-карте (linux) с 4 ГБ конвертирования на другую SD-карту. Как я могу это сделать? У моего ноутбука есть Ubuntu.
Обе карты в моем ПК.
Старая карта (4 ГБ): / dev/mmcblk0
Новая карта (8 ГБ): / dev/sda1
2 ответа
Какая файловая система?
Для ext вы можете создать 8-гигабайтный раздел, затем использовать DD, чтобы скопировать 4-гигабайтный раздел сверху, а затем использовать resize2fs, чтобы расширить его, чтобы заполнить пространство.
Там могут быть аналогичные утилиты для других файловых систем.
Возможно, вам не нужна таблица разделов 4G, раздел 4G и файловая система 4G на вашей карте 8G, но это то, что вы получите, когда будете использовать dd. Это должно работать, если только у вас нет плохих блоков на 8G, которые dd будет считать хорошими. Чтобы использовать дополнительное пространство, вам нужно будет расширить раздел, изменить размер файловой системы и, возможно, затем отредактировать файл /etc/fstab для новых UUID. Альтернативой является разбиение диска 8G так, как вы этого хотите, установка размера root и принятие решения о том, действительно ли вам нужен swap. Отформатируйте разделы с нужной вам файловой системой - возможно, нет журналирования на SD-карте, поэтому ext2 или ext4 без журналирования. Скопируйте файлы с помощью любой программы копирования, которая может копировать атрибуты файла и не переходить по ссылкам (посмотрите на переключатели параметров). tar прекрасно работает со следующим:
cd /mnt/4g
sudo tar -cf - * |(cd /mnt/8g;sudo tar -xpBf -)
Получите новые UUID с
sudo blkid
Отредактируйте /etc/fstab с новыми UUID. Установите grub на диск 8G (предположим, это sdc)
sudo grub-install --boot-directory=/mnt/8g/boot /dev/sdc
Плохие блоки на целевой карте следует распознавать и избегать, поэтому вы получаете работающую систему без идеальной карты.