Я хотел бы создать собственный образ Raspberry Pi на основе Raspbian Lite, который уже настроен с правильной локалью, часовым поясом и т. Д. К сожалению для меня, текущие выпуски образов Raspbian автоматически изменяют размер файловой системы, а затем перезагружаются.
Я хочу избежать хлопот по уменьшению размера файловой системы , предотвращая когда-либо изменение размера. Как мне отредактировать изображение после записи, чтобы временно отключить автоматическое изменение размера файловой системы?
Отредактированный для уточнения эффектов должен быть обратимым; то есть я хочу, чтобы мой настроенный образ расширялся при первой загрузке.
raspbian
raspi-config
patricktokeeffe
источник
источник
raspi-config
загрузки, который запускается при первой загрузке, и его легко отключить. Я могу посмотреть, но мне придется загрузить новое изображение, последнее, что у меня есть, с мая. Возвращайтесь через несколько часов.Ответы:
Существует механизм, состоящий из двух частей, который несет ответственность за это на Распбиане; Скорее всего, лучшая идея - позаботиться об обеих частях, если они включены.
Во-первых, оригинал
/boot/cmdline.txt
включает это:Обращаясь к сценарию с этим путем в корневом разделе, который будет использоваться в качестве процесса инициализации при загрузке. Без этого бита значение по умолчанию будет встроено в ядро
/sbin/init
, которое в Raspbian является символической ссылкой/lib/systemd/systemd
.После удаления этой части
cmdline.txt
система должна нормально загрузиться.Что на самом деле делает этот скрипт, так это изменяет размер раздела на SD-карте. Это отличный процесс от изменения размера файловой системы в разделе 1, что и происходит дальше.
Таким образом, система немедленно перезагружается в обычном режиме (то есть через systemd), и
init.d
сценарий запускается на раннем этапе, который должен быть удален из второго раздела:И символическая ссылка на него, которая также должна быть удалена:
Вы можете сохранить копию для последующего использования, если хотите, но
raspi-config
можете создать ее заново для вас (она встроена вraspi-config
скрипт оболочки). Если он действительно работает, он удаляет себя, так что это больше не повторится.Он также изменяет размер файловой системы во вновь измененном разделе.
Не должно быть никакого вреда, если только одна или другая часть случается; в первом случае вы получите файловую систему, которая не заполняет увеличенный раздел, во втором ничего не произойдет, потому что файловая система уже заполняет раздел.
Если вы позже используете
raspi-config
для расширения файловой системы, он сразу же изменяет размер раздела, а затем устанавливает скрипт инициализации (как уже упоминалось).Редактировать
cmdline.txt
первый раздел просто на любом компьютере, так как это раздел VFAT. Для удаленияinit.d
файла требуется система, которая может обращаться к файловым системам ext4 и редактировать их.Вместо этого обе задачи можно выполнить с самим файлом изображения перед записью карты; смонтировать и изменить образ Raspbian в системе GNU / Linux см. здесь . Есть параллельная Q & A для Windows .
Это также обратимо, но вам нужно будет вернуть обе части механизма, как только что описано, так как первая не включает автоматическую постановку второй.
источник
init=/usr/lib/raspi-config/init_resize.sh
от/boot/cmdline.txt
работ на Ubuntu Mate тоже кажется вполне достаточным. У меня есть изображение помощника ubuntu размером 4 ГБ, которое было перенесено на SD-карту емкостью 32 ГБ, и оно содержит размеры разделов при исходном размере изображения. Также/etc/init.d/resizefs_once
и/etc/rc3.d/S01resizefs_once
не существует после первой загрузки на Ubuntu Mate.cmdline.txt
и,init.d
иrc3.d
файла, и ссылки при следующей загрузке изменить все размеры самостоятельно, или мне придется запускатьraspi-config
и запускать его вручную?cmdline.txt
. Я загрузил образ Raspbian с помощьюsystemd-nspawn
и все еще получал журналы ошибок, пытаясь изменить размер после удаленияcmdline.txt
объекта.