Как скопировать изображение с SD-карты на eMMC, используя команды Linux?

Вопрос или проблема

Я пытаюсь записать кастомный образ с моей SD-карты (mmcblk0) на eMMC (mmcblk1) моего BeagleBone.

NAME         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
mmcblk0      179:0    0 14.9G  0 disk
├─mmcblk0p1  179:1    0   96M  0 part
├─mmcblk0p2  179:2    0  3.5G  0 part /
└─mmcblk0p3  179:3    0  9.8M  0 part
mmcblk1      179:8    0  3.6G  0 disk
mmcblk1boot0 179:16   0    2M  1 disk
mmcblk1boot1 179:24   0    2M  1 disk

Я пытаюсь выполнить эту команду, но мне пишут, что на eMMC не осталось места –

sudo dd if=/dev/mmcblk0 of=/dev/mmcblk1 bs=4M status=progress
3825205248 bytes (3.8 GB, 3.6 GiB) copied, 306 s, 12.5 MB/s
dd: error writing '/dev/mmcblk1': No space left on device
913+0 records in
912+0 records out
3825205248 bytes (3.8 GB, 3.6 GiB) copied, 306.278 s, 12.5 MB/s

Но образ, который я хочу скопировать, в общей сложности меньше 3.6GB –

df -h
Filesystem      Size  Used Avail Use% Mounted on
udev             10M     0   10M   0% /dev
tmpfs           100M  4.2M   96M   5% /run
/dev/mmcblk0p2  3.4G  2.8G  454M  87% /
tmpfs           249M     0  249M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           249M     0  249M   0% /sys/fs/cgroup
/dev/mmcblk0p1   96M   31M   66M  32% /boot/uboot
/dev/mmcblk0p3  9.8M   18K  9.8M   1% /usb_drive

Размер моей SD-карты почти 15GB, и, скорее всего, поэтому говорится, что на устройстве нет места. Оно пытается скопировать все 15GB. Я также попытался отдельно скопировать только mmcblk0p2 на mmcblk1, убрал SD-карту и попытался загрузиться с eMMC, используя команду –

sudo dd if=/dev/mmcblk0 of=/dev/mmcblk1 bs=4M status=progress

Но это не работает. Светодиоды пользователя вообще не загораются. Как сделать так, чтобы образ загружался с eMMC? Спасибо.

Используйте fdisk, чтобы подтвердить, что разделы находятся в начале mmcblk0. Возможно, вам потребуется использовать gparted, чтобы их перестроить и сделать так.

Монтируйте / только для чтения, чтобы не получить несовместимую копию.

Используйте лимитированный по размеру dd, который охватывает часть mmcblk0, содержащую таблицу разделов и сами разделы, или просто позвольте ему дойти до конца.

.

Ответ или решение

Для успешной передачи образа с SD-карты на eMMC устройства BeagleBone с использованием команд Linux, следует учесть несколько важных аспектов для предотвращения ошибок, таких как недостаток места на устройстве. Далее приведена пошаговая инструкция, как это сделать.

Шаг 1: Анализ текущей ситуации

Основной проблемой является недостаток пространства на eMMC (mmcblk1), когда вы пытаетесь клонировать весь диск mmcblk0, который имеет размер 14.9 ГБ. Однако сам образ, который вы хотите скопировать, не превышает 3.6 ГБ. Это говорит о том, что важно выбрать только те разделы, которые Вы хотите передать.

Шаг 2: Проверка структуры разделов

  1. Используйте fdisk: Необходимо убедиться, что таблица разделов на mmcblk0 находится в начале устройства. Это критически важно для корректной передачи.

    sudo fdisk -l /dev/mmcblk0

    Проверьте начало и размер каждого раздела.

Шаг 3: Подготовка к копированию

  1. Переведите файловые системы в режим только для чтения: Это предотвратит неисправности во время копирования.

    Например, если ваш активный раздел / на mmcblk0p2, выполнить:

    sudo mount -o remount,ro /

Шаг 4: Уменьшение раздела (при необходимости)

  1. Уменьшите размер раздела: В случае, если root-раздел занимает больше места, чем доступно на eMMC, вы можете уменьшить его. Это можно сделать с помощью установленной программы, такой как gparted, или через командную строку с resize2fs.

Шаг 5: Копирование образа

  1. Копирование раздела: Используйте dd для копирования конкретного раздела.

    sudo dd if=/dev/mmcblk0p2 of=/dev/mmcblk1 bs=4M status=progress

    Пожалуйста, убедитесь, что используете правильный идентификатор раздела для источника.

Шаг 6: Проверка конфигурации загрузчика

  1. Настройка загрузчика (U-Boot): Чтобы eMMC загрузился, возможно, потребуется настроить загрузочную секцию. Вероятно, что необходимо также перенести загрузочную запись. Проверьте конфигурацию U-Boot и убедитесь, что она соответствует вашему новому расположению образа.

Шаг 7: Тестирование

  1. Извлечение SD-карты и перезагрузка: Перезагрузите систему без SD-карты и проверьте, загружается ли она с eMMC. Обратите внимание на индикаторы, такие как светодиоды, чтобы убедиться, что загрузка происходит корректно.

Проделав все шаги корректно, вы сможете без проблем перенести систему с SD-карты на eMMC. Если у вас возникнут какие-либо проблемы, убедитесь, что все шаги были выполнены в надлежащем порядке, и проверьте журналы ошибок для дополнительной информации.

Оцените материал
Добавить комментарий

Капча загружается...