Me gustaría construir una imagen interna de Raspberry Pi basada en Raspbian Lite que ya esté configurada con la ubicación, zona horaria, etc. correctas. Desafortunadamente para mí, las versiones actuales de imágenes de Raspbian cambian automáticamente el tamaño del sistema de archivos, luego reiniciar.
Quiero evitar las molestias de reducir el tamaño del sistema de archivos al evitar que ocurra el cambio de tamaño. ¿Cómo editaría la imagen después de la grabación para deshabilitar temporalmente el cambio de tamaño automático del sistema de archivos?
Editado para aclarar los efectos debe ser reversible; es decir, querré que mi imagen personalizada se expanda en el primer arranque.
raspbian
raspi-config
patricktokeeffe
fuente
fuente
raspi-config
se ejecuta en el primer arranque, y sería fácil de deshabilitar. Puedo echar un vistazo pero tendré que descargar una nueva imagen, la última que tengo es de mayo. Vuelve en unas horas.Respuestas:
Hay un mecanismo de dos partes que se hace responsable de esto en Raspbian; probablemente la mejor idea es cuidar ambas partes si están habilitadas.
El primero es que el original
/boot/cmdline.txt
incluye esto:En referencia a una secuencia de comandos con la ruta de acceso en la partición raíz, el cual será utilizado como el init proceso en el arranque. Sin ese bit, sería un valor predeterminado en el núcleo
/sbin/init
, que en Raspbian es un enlace simbólico/lib/systemd/systemd
.Al eliminar esa parte de
cmdline.txt
, el sistema debería arrancar normalmente.Lo que ese script realmente hace es cambiar el tamaño de la partición en la tarjeta SD. Este es un proceso distinto del cambio de tamaño del sistema de archivos en la partición, 1 que es lo que sucede a continuación.
La forma en que sucede es que el sistema se reinicia de inmediato normalmente (es decir, a través de systemd) y
init.d
se configura un script para que se active temprano, lo que debe eliminarse de la segunda partición:Y el enlace simbólico, que también debe eliminarse:
Puede guardar una copia para su uso posterior si lo desea, pero
raspi-config
puede crearla nuevamente (está incrustada en elraspi-config
script de shell). Si realmente se ejecuta, se elimina a sí mismo, por lo que no volverá a suceder.Lo que también hace es cambiar el tamaño del sistema de archivos en la partición recientemente redimensionada.
No debe hacerse daño si solo ocurre una u otra parte; en el primer caso terminas con un sistema de archivos que no llena la partición ampliada, en el segundo no pasará nada, porque el sistema de archivos ya llena la partición.
Si luego usa
raspi-config
para agrandar el sistema de archivos, cambia el tamaño de la partición de inmediato, luego configura el script de inicio (como ya se mencionó).Editar
cmdline.txt
en la primera partición es simple en cualquier computadora ya que es una partición VFAT. Eliminar elinit.d
archivo requiere un sistema que pueda acceder y editar los sistemas de archivos ext4.Ambas tareas pueden realizarse en el archivo de imagen en sí antes de grabar la tarjeta; para montar y modificar una imagen Raspbian en un sistema GNU / Linux, consulte aquí . Hay un Q&A paralelo para Windows .
Esto también es reversible, pero deberá volver a colocar ambas partes del mecanismo como se acaba de describir, ya que la primera no incluye la puesta en escena automática de la segunda.
fuente
init=/usr/lib/raspi-config/init_resize.sh
de/boot/cmdline.txt
funciona en ubuntu mate también y parece suficiente por sí sola. Tengo una imagen ubuntu mate de 4 gb flasheada en una tarjeta sd de 32 gb y contiene los tamaños de partición en el tamaño de imagen original. También/etc/init.d/resizefs_once
, y/etc/rc3.d/S01resizefs_once
existen Dont tras el primer inicio en ubuntu Mate.cmdline.txt
einit.d
yrc3.d
archivo y enlace permiten que el siguiente arranque para cambiar el tamaño por sí mismo o le tengo que correrraspi-config
y correr de forma manual?cmdline.txt
. Arranqué la imagen de Raspbian usandosystemd-nspawn
y aún obtuve registros de errores al intentar cambiar el tamaño después de eliminarcmdline.txt
Sin embargo, .