Estoy tratando de comprender el contenido del archivo de imagen ISO de una distribución de Linux y cómo se lleva a cabo el proceso de instalación. Aquí estoy hablando específicamente de CentOS 6.4 en su versión mínima.
Entonces ISOLINUX se activa y aparece el menú. Luego presioné instalar.
Carga el kernel y el sistema de archivos initrd.
Mis preguntas son:
¿Cómo se llama a Anaconda ?
¿Cuál es el papel del archivo images / install.img? (¿Quién llama / montarlo?)
¿Anaconda instala paquetes / *. Rpm? Si quisiera agregar uno allí, ¿puedo instalarlo?
Respuestas:
Soy uno de los autores / mantenedores de Anaconda. Podría entrar en demasiados detalles sobre cómo se inicia el instalador, pero intentaré ser breve.
(Tenga en cuenta que esto solo se aplica a RHEL / CentOS 6.xo Fedora 14 y anteriores; el instalador se reescribió casi por completo entre Fedora 15, 16 y 17, por lo que las cosas son muy diferentes ahora).
En
initrd.img
los medios de instalación es lo que llamamos la imagen stage1 . Contiene un programa llamadoloader
, cuyo único trabajo es encontrar y cargarimages/install.img
.install.img
es la imagen de stage2 . Aquí es donde realmente vive Anaconda : es una imagen de squashfs que contiene el sistema de archivos raíz del instalador.Hay muchas formas diferentes de encontrar el cargador
install.img
, pero cuando arranca desde DVD es simple: el cargador se da cuenta del DVD instalador, lo monta y lo montaimages/install.img
como su sistema de archivos raíz.Una vez que se monta la imagen de stage2, el cargador inicia Anaconda, que luego inicia Xorg y pone un shell
tty2
y todas esas cosas buenas, y el instalador realmente comienza.No, no solo instala todo allí. Utiliza el
comps.xml
archivo (inrepodata/
) para decidir qué grupos de paquetes están disponibles (y qué paquetes están en esos grupos); así es como se completa la interfaz de usuario de selección de paquetes.Si agrega algo al
Packages/
directorio (como si intenta crear una imagen de DVD personalizada) y desea que sea instalable, deberá usarlocreaterepo
para regenerar elrepodata/
directorio. Eso le permitirá instalar sus paquetes a través de kickstart, al menos.Si necesita que aparezcan en la interfaz de usuario, también deberá editar
comps.xml
.fuente
Cuando arrancas desde el CD, obtienes el gestor de arranque ISOLINUX, y eso carga el kernel de Linux y el disco RAM inicial. Eso inicia Anaconda, que carga sus diversas piezas, como install.img. Anaconda se encarga de instalar los diversos paquetes, etc.
La forma más fácil de hacer que Anaconda instale paquetes adicionales (o realice una configuración adicional) es escribiendo un script kickstart. Un script kickstart le dice a Anaconda qué paquetes instalar, cómo configurar el sistema operativo, etc. Para decirle a anaconda que use un script kickstart particular, puede escribir "install ks = http://example.com/my_kickstart.ks " en el indicador ISOLINUX. Luego descargará ese archivo kickstart (de un servidor web en este ejemplo) y lo usará para saber qué paquetes instalar.
Más detalles sobre los scripts de kickstart están disponibles en http://fedoraproject.org/wiki/Anaconda/Kickstart
fuente
Cuando inicia el CD de instalación, carga el Kernel y el initrd tal como lo mencionó. Esto básicamente carga un sistema Linux mínimo en la memoria de su computadora. Anaconda se ejecuta como un servicio en el arranque y se inicia el programa. Anaconda luego encuentra sus HD y los monta como / mnt / sysimage. Anaconda instala Paquetes / *. Rpm desde el CD de instalación y puede agregar un RPM al directorio de Paquetes y luego volver a grabar la iso, pero Anaconda aún no sabría que necesita ser instalado. En cuanto a piratear a Anaconda para que el programa busque el RPM, no tengo una respuesta.
fuente