14 votos

¿Cómo configurar un dispositivo de bucle al arrancar?

Quiero configurar un dispositivo de bucle al arrancar. Me pregunto cuál es la mejor manera de hacerlo.

Yo he buscado para él en google. Algunos dice agregar una regla de udev, algunos dice poniendo un scripts en /etc/init.d , algunos incluso modifica el initramfs.

Así que ¿cuál es la mejor manera de hacerlo? ¿Por favor podría darme algunos detalles (acerca de cómo hacerlo)?

Gracias.

7voto

zanfur Puntos 1201

Hay al menos tres "apropiado" maneras de hacer de inicio de las cosas en Ubuntu (suponiendo que no sólo desea montar), muestran a continuación y en orden decreciente de preferencia:

  1. /etc/init/*.conf (Upstart)
  2. /etc/init.d/* (sysvinit)
  3. /etc/rc.local (nivel de ejecución del script de cambios)

También hay la posibilidad de usar las reglas de udev, pero va a ser complicado. Recomiendo en contra de ella. El sysvinit guión es demasiado para una pequeña cosa, así que me centraré en las otras dos opciones. El nivel de ejecución del script de cambios es más simple (aunque menos preferido), así que voy a empezar por ahí.

El /etc/rc.local archivo, simplemente, ejecutado por la /etc/init.d/rc.local sysvinit script, el cual es (por defecto), ejecutado el pasado al cambiar a cualquier normal "en" nivel de ejecución (por ejemplo, cuando inicio normalmente, pero no cuando se apague o ir al modo de recuperación). Para aplicar la configuración del dispositivo de arranque, sólo tiene que añadir esto al final de la /etc/rc.local, suponiendo que el archivo se llama /srv/diskimage y se desea utilizar el /dev/loop0 como el dispositivo de bucle:

losetup /dev/loop0 /srv/diskimage

Eso es realmente todo lo que hay que hacer. Por supuesto, sustituir los nombres de los archivos con lo que funciona mejor en su instalación.

Si usted desea ser un poco más específica acerca de él, usted puede crear un Advenedizo de trabajo para lo que establece una vez que el sistema de archivos de la celebración se ha montado. Un ejemplo sería el siguiente, suponiendo que /srv fue el punto de montaje que contiene su diskimage archivo:

description     "Setup loop devices after filesystems are mounted"

start on mounted MOUNTPOINT=/srv
task
exec losetup /dev/loop0 /srv/diskimage

Este debe ser lo suficientemente simple como para seguir conceptualmente: La primera línea es solo un comentario para los lectores humanos, y las instrucciones para Advenedizo que esperar hasta el /srv sistema de archivos es montado, ejecutar el losetup proceso, y se considera terminado cuando el proceso se cierra con éxito (una "tarea", en contraposición a un servicio que es persistente). Acabo de poner el contenido en un archivo que coincida /etc/init/*.conf. Yo elegiría /etc/init/losetup.conf, a mí mismo.

Las ventajas de Upstart empleos en /etc/rc.local para una cosa tan simple son pequeñas pero importantes. En primer lugar, /etc/rc.local está en desuso, y su uso sólo como un "desordenado sandbox para hacer las cosas", es mal visto por casi todo el mundo en estos días. Entre otras razones para fruncir el ceño sobre su uso, algunos de los programas que hacen uso de ese archivo simplemente sobrescribir el contenido, y es difícil conciliar las diferentes secuencias de comandos que necesita para ir en el mismo archivo. Segundo, Upstart en realidad se encarga de la comprobación de dependencias para usted (asegurarse de que el sistema de archivos es montado en primer lugar), así que si hay un problema para montar el sistema de ficheros que no intente configurar el dispositivo de bucle....pero una vez que ha resuelto y lo montó. Tercero, Upstart es mucho más flexible: se puede, por ejemplo, tienen que ser lo suficientemente inteligente como para encontrar un boleto de dispositivo de bucle, y "emitir" que el dispositivo de bucle para su uso en otros advenedizo puestos de trabajo, de forma similar a cómo se utiliza el "punto de montaje" de la variable en el ejemplo anterior.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: