5

Я представил 16 ГБ SD-карту с помощью команды dd. Однако на карте не более 4 ГБ данных на 2 разделах (FAT32 и ext3).

Я хотел бы перенести это изображение на SD-карту 8 ГБ. Как мне уменьшить изображение?

2 ответа2

6

Предполагая Linux, что-то вроде этого может быть сделано:

  1. Прикрепите изображение к устройству цикла, используя losetup . Не монтируйте разделы.

    0 GB                              8 GB                             16 GB
    |--------fat32--------|--------------------ext3--------------------|
    
  2. Используя gparted , уменьшите первый раздел до размера менее 50% от исходного размера.

    0 GB                              8 GB                             16 GB
    |--fat32---|          |--------------------ext3--------------------|
    
  3. Переместите второй раздел на только что созданное свободное пространство, уменьшите до <50%.

    0 GB                              8 GB                             16 GB
    |--fat32---|---------ext3---------|                                |
    
  4. Убедитесь, что второй раздел заканчивается до 8 ГБ.

  5. Отсоединить петлевое устройство.

  6. Обрежьте файл изображения до 8 ГБ.

Примечание. Как правило, сначала необходимо уменьшить файловую систему, а затем настроить размер раздела в соответствии с файловой системой. Gparted делает это за вас за один шаг "Изменение размера", но другие инструменты могут этого не делать.

0

Во-первых, вы не можете просто сжать образ диска. Внутри происходит слишком много сложных вещей.

Я собираюсь предложить вам смонтировать образ dd, а затем либо скопировать файлы в вашу новую файловую систему, либо продолжить исследования по сокращению ваших конкретных файловых систем, а не диска.

Прежде всего, у вас есть копия исходной таблицы разделов?

Если нет, попробуйте:fdisk -l -u /path/to/image

Тогда, надеюсь, вы можете использовать значения в приведенном выше, чтобы сделать что-то вроде:

dd if=/path/to/image of=/path/to/output bs=BLOCKSIZE skip=STARTBLOCK count=TOTALBLOCKS

(замена вышеуказанных столиц по мере необходимости)

Оттуда смонтируйте образ:

mount -o loop /path/to/output /path/to/mountlocation

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .