Мне нужно изменить образ Raspbian для использования с Raspberry Pi в коммерческих условиях. Таким образом, мне не придется впоследствии изменять значения по умолчанию для каждого отдельного пи. Я хочу установить клавиатуру по умолчанию в США, отключить автоматический вход в систему и загрузиться в командной строке, а не в графическом интерфейсе. Можно ли модифицировать образ с этими настройками перед прошивкой каждой карты? Если да, то как?
Изменить образ Debian для raspberry pi
Ответы:
Самый простой способ — заставить один Raspi вести себя именно так, как вы хотите (называемый золотым мастером), затем выключить его, вытащить карту и сделать что-то похожее на следующее на SD-карте вашего ПК. читатель (из которого я предполагаю, что вы испекли первую карту):
sudo dd if=/dev/<sddevice> bs=1k | gzip -c > myProduct-1.0-master.bin.gz
Затем просто запеките это изображение на карту №2, №3...#n, используя:
zcat myProduct-1.0-master.bin.gz | sudo dd of=/dev/<sddevice> bs=1k
NB о размерах карт: всегда убедитесь, что ваша золотая мастер-карта ЗНАЧИТЕЛЬНО Меньше, чем ваши целевые карты (в идеале в 2 раза, например, 8 вместо 16 ГБ). Причины этого двояки:
- Если обе карты имеют размер «8 ГБ», цель может быть немного меньше исходной (в этом случае вы получите усечение файловой системы и, возможно, странности тонким и непредсказуемым образом).
- Контроллеры SD-карт имеют ЧРЕЗВЫЧАЙНО ПРИМИТИВНОЕ выравнивание износа, и dd'ing над кучей нулей полностью побеждает его (что означает, что карты могут умереть, если вы, например, выполняете кучу журналов). Сохранение большого количества неиспользуемого пространства означает, что у вас есть пустые ячейки, которые можно использовать для выравнивания износа (обратите внимание, что современные твердотельные накопители имеют гораздо более сложное выравнивание износа и по большей части не страдают от этой проблемы).
Не так давно я создал продукт, который делал именно это: мастером была полноразмерная карта на 8 ГБ, а мишенями были все микрокарты на 16 ГБ. Мы помещали мастер в массовый копировальный аппарат, затем мишени и нажимали большую кнопку дублировать. Поскольку у карт был разный хранилище, у нас было около 50% нехватки ресурсов (что давало нам много места на уровне износа), а поскольку карты были разных физических размеров, мы никогда не смешивали их вверх :-)
(Да, я до смешного консервативен в вопросе выравнивания износа — по моему мнению, нет ничего хуже, чем смерть встроенной карты в полевых условиях и необходимость ползать через черт знает что, чтобы заменить деталь за 8 долларов, которая не должна была выйти из строя в процессе эксплуатации. первое место...)
Также стоит создать файл VERSION на вашем мастере, чтобы при обновлении продукта вы знали, какая версия установлена (вы можете отредактировать /etc/issue, чтобы отобразить это в приглашении для входа в систему, или просто отредактируйте любой другой произвольный текстовый файл) .
Можно создавать образы с нуля для RasPi с более жестко контролируемым дистрибутивом ОС, но если вы настраиваете только пару файлов, самый простой способ — это то, что я описываю.
Да, и не забудьте сохранить эти версионные образы в безопасном месте, например, git LFS (например, https://git-lfs.github.com/).
- Внесите все необходимые изменения на Raspberry Pi.
- Выясните, где SD-карты монтируются на вашем компьютере. В Linux это будет что-то вроде /dev/sdb, в Mac — что-то вроде /dev/rdisk2.
- Возьмите свой образ pi, вставьте его в компьютер и сделайте образ диска
dd if=/dev/<sd_path> of=~/raspi.img bs=1m
- Покажите свои другие карты:
dd if=~/raspi.img of=/dev/<sd_path> bs=1m