Vaya, necesito runlevel 1

10

Así que tengo un error en un script en mi directorio init.d y en la línea de fondo ... No puedo arrancar completamente el pi.

¿Cómo puedo iniciar en el nivel de ejecución 1 (modo de usuario único) para poder solucionar el error?

Deac Karns
fuente
1
Consulte este enlace para ver varias opciones raspberrypi.org/phpBB3/viewtopic.php?f=28&t=16185
Steve Robillard

Respuestas:

16

Esa no es exactamente una forma de ingresar al nivel de ejecución 1, pero hay una opción de arranque de "modo seguro" en el firmware de Raspberry Pi. Para habilitarlo, debe insertar un puente entre los pines 5 y 6 en el encabezado P1 (GPIO) al arrancar.

Pasadores Safemode

Si hace esto, el gestor de arranque ignorará el config.txtarchivo (excepto la avoid_safe_modeopción que se puede utilizar para deshabilitar esta función) e intentará arrancar kernel_emergency.img(si está disponible) en lugar de hacerlo kernel.img.

El valor predeterminado kernel_emergency.imgtiene una initramfscompilación de emergencia especial y se iniciará en este sistema operativo basado en busybox para que pueda solucionar los problemas en su sistema operativo manualmente (o cambiar los parámetros de inicio del núcleo para ejecutar el nivel de ejecución 1 en el próximo inicio). Recuerda ejecutar syncantes de apagar el puesto rebooto shutdownlos comandos no funcione.

Krzysztof Adamski
fuente
Eso es exactamente lo que estaba buscando.
Deac Karns
5
  • Pulsa shift cuando comiences.
  • Presiona "e" para editar la configuración
  • pestaña a cmdline.txt
  • agregar al final de la línea

    init=/bin/sh

  • presione ok, luego Esc para arrancar ... lo iniciará en una línea de comando

    # /etc/init.d/mountall.sh (esto hará algo)

    # mount -n -o remount,rw / (esto volverá a montar / para que pueda hacer cambios)

  • ahora debería poder editar la configuración init.d ......

  • cuando reinicie de nuevo ... mantenga presionada la tecla shift y elimine init = / bin / sh
Mike Sandler
fuente
¡Excelente! Había encontrado instrucciones para iniciar sh, pero me faltaba el material de montaje que necesitaba. ¡Gracias!
Richard Turner
3

Varias de las otras respuestas aquí ahora son incorrectas:

  • El método de pin de puente GPIO se eliminó del sistema operativo anterior, por lo que solo funciona ahora si está utilizando una imagen NOOBS

  • La mudanza de Raspbian Jessie a systemd rompe el init=/bin/shtruco. Cuando haces esto, se queja,can't access tty: job control turned off

Afortunadamente, hay una solución que funciona, que en realidad brinda acceso real para un solo usuario: agregue un espacio y un 1al final cmdline.txt, justo después del rootwaitparámetro.

El menú de arranque Hold-Shift no existe con la imagen del sistema operativo Raspbian Jessie, por lo que tendrá que hacerlo editando /boot/cmdline.txtdesde otra computadora si no está usando la imagen NOOBS.

Warren Young
fuente
2

No pude encontrar una manera de forzar el pi para que se inicie en el nivel de ejecución 1, así que encendí un disco vivo de fedora que tenía y usé el terminal para eliminar el script en cuestión del directorio /etc/init.d

Deac Karns
fuente
1

Si desea acceder y cambiar los archivos de partición Linux de la tarjeta SD desde Windows, puede hacerlo con una de estas utilidades .

avra
fuente
¡Bienvenidos! Por favor haga el recorrido y visite el centro de ayuda . Si bien esto puede responder teóricamente la pregunta, es preferible incluir aquí las partes esenciales de la respuesta y proporcionar el enlace para referencia. De hecho, estamos aplicando esta política : edite para que la respuesta se mantenga por sí sola en caso de que el enlace se rompa en el futuro. Si no se edita dentro de las 48 horas, se convertirá a Wiki de la comunidad.
Jacobm001
1
  1. Arrancar en runlevel 1

    $ sudo init 1
    
  2. Después de arrancar en el nivel de ejecución 1

    $ passwd
    

NOTA: el nivel de ejecución 1, cambiar el archivo /etc/inittabde id:2:initdefault:algo similar como:id:1:initdefault:

Lowreno
fuente
2
Sin embargo, ¿es eso realmente arrancar en el nivel de ejecución 1? Quiero decir, difícilmente se puede hacer si la máquina no se inicia en primer lugar, ¿verdad?
Bex
No, ciertamente no lo es. Lo que es, es cambiar el nivel de ejecución en un sistema en ejecución.
Crujiente Barnacle