Наконец-то что-то работает.

Может быть, это ОС Raspberry Pi, или, может быть, Raspbian, или, может быть, NOOBS. Вы не задумываясь прошили его на SD-карту на 32 Гб, а теперь хотите клонировать на другую карту. Только у тебя другая карта всего 16гб.

Это должно работать, если на вашей карте достаточно места, например. если бы вы использовали только 4 ГБ из 32 ГБ, оставив вам целых 28 ГБ свободного места, но аргх! Это не так просто из коробки.

Или, может быть, вы клонируете одну карту 32 ГБ на другую карту 32 ГБ только для того, чтобы обнаружить, что от одного производителя к другому 32 ГБ на самом деле может означать что-то немного другое! И снова не подходит.

Вот, наконец, полные шаги для прошивки большей SD-карты на меньшую, если вы работаете на Mac. От 32 ГБ до 16 ГБ, от 32 ГБ до 8 ГБ, от 16 ГБ до 8 ГБ, от 16 ГБ до 4 ГБ, от 8 ГБ до 4 ГБ — все в порядке.

  1. Вставьте оригинальную SD-карту и сделайте резервную копию. Я использовал ApplePi-Baker v2.2.3 (не беспокойтесь об использовании параметра «Включить изменение размера раздела Linux» — в моем случае он выдавал только ошибки), но это не должно иметь большого значения, вы также можете использовать dd. Предположим, изображение называется backup.img. В моем случае это был образ размером 32 ГБ.
  2. Далее мы будем следовать этим инструкциям до буквы, чтобы уменьшить изображение: сначала установите инструмент pishrink:
curl -LO https://github.com/lisanet/PiShrink-macOS/archive/master.zip
unzip master
cd PiShrink-macOS-master
make
sudo make install

Затем уменьшите изображение:

pishrink backup.img backup_small.img

Это может занять некоторое время.

3. Вставьте меньшую SD-карту (у меня это было 16 Гб) и прошейте ее маленьким образом backup_small.img. Опять же, я использовал PiBaker. Не беспокойтесь об использовании параметра «Включить изменение размера раздела Linux» — в моем случае он выдавал только ошибки.

4. Загрузите карту в свой Raspberry Pi.

5. Проверьте, сколько свободного места вы используете:

df -Bm

Вы обнаружите, что он не занимает всю карту, например. для моей карты на 16 ГБ она была ограничена ~ 3 ГБ и заполнена на 94%:

Запустите sudo raspi-config, выберите Advanced options, а затем Expand filesystem. Он попросит вас перезагрузиться — сделайте это.

Вы увидите в журнале, что файловая система изначально была 3,8 ГБ:

который затем увеличивается до полного размера диска, для меня 14,3 ГБ:

Позже вы можете снова проверить после перезагрузки с помощью df -Bm и убедиться, что это сработало:

Поздравляю! Вы успешно запекли образ SD-карты большего размера на карту меньшего размера. Удачного взлома.