poweroff
se queja de que no puede conectarse a systemd a través de DBus (por supuesto, no está vivo). Yo sync
seguí por kill $$
, pensando que la EPI 1 muriendo sería señalar el kernel para de apagado, pero que causó un kernel panic. Luego sostuve el botón de encendido para forzar el apagado.
¿Cuál es la forma más adecuada de apagarse en este escenario?
init=/bin/bash
pista / implicación, es ambiguo si systemd está instalado o no. Me refería a que no hay ningún sistema en ejecución . En cualquier caso, al no tener systemd en ejecución, pensé que el conjunto de herramientas systemd sería inútil y que las respuestas usarían otros medios como los de sysrq.Respuestas:
Desmonta los sistemas de archivos que montaste. El sistema de archivos raíz es un caso especial; para esto puedes usar
mount / -o remount,ro
. En Linux,umount /
también funciona porque se convierte efectivamente al comando anterior.Dicho esto, no necesita preocuparse por desmontar demasiado, a menos que
sync
se supone que es suficiente, y el sistema de archivos se reparará muy rápidamente en el próximo arranque.Lo anterior es la parte importante. Después de eso, también puede apagar convenientemente el hardware usando
poweroff -f
. O reiniciar conreboot -f
.Hay un
systemd
equivalente de específico depoweroff -f
:systemctl poweroff -f -f
. Sin embargo,poweroff -f
hace lo mismo ysystemd
admite este comando incluso si se ha creado sin compatibilidad SysV.Técnicamente, recuerdo que mi disco duro USB fue documentado como un requerimiento de "eliminación segura" de Windows o equivalente. Pero este requisito no es seguro en caso de falla de energía, y Linux no lo hace durante un apagado normal de todos modos. Es mejor interpretar que significa que no debe mover el disco duro mientras está girando, incluso intentando desconectarlo. Un apagado total debería detener el giro de la unidad. Probablemente pueda escuchar, sentir o ver si no se detiene :-).
fuente
sync()
es suficiente para ext2. Se quejará de estar sucio, pero en realidad no se habrá dañado, excepto por la información resumida. Generalmente considero que init = / bin / bash o cualquier equivalente local es una situación de emergencia.fsck.mode=skip
derecho?fsck.mode=skip
arrancar normalmente después de un desmontaje sucio!Simplemente ejecutaré debajo de dos comandos:
Asumiendo que la llave mágica esté habilitada en el núcleo
fuente
Ok, entonces se me ocurrió que tenía la opción de hacerlo
exec init
. A partir de ahí, probablemente podría hacerlo más tardepoweroff
. Sin embargo, me pregunto si hay mejores alternativas.fuente
exec init 0
. Eso no funcionará con todos los sistemas init, pero los mismos pasarán por una secuencia de apagado.Efectivamente, debe llamar a reinicio (2) syscall.
Dos formas de hacer esto:
Ejecutar
reboot -f
opoweroff -f
, esto debería llamarreboot(2)
directamente.Si está en la terminal virtual de Linux real (no en el emulador de terminal GUI), presione Ctrl+ Alt+ Delete.
Tenga en cuenta que el método abreviado de teclado puede ser desactivado por algún programa de espacio de usuario (generalmente init), cuando se desactiva el método abreviado enviará una señal a init en su lugar.
Todos los comandos anteriores se deben realizar después de desmontar todos los discos o volver a montarlos como de solo lectura, y ejecutar la sincronización, de lo contrario, puede perder datos no escritos. Si su shell es el único proceso en ejecución, la sincronización puede ser suficiente.
fuente
Puede usar las teclas Magic SysRq ( https://en.wikipedia.org/wiki/Magic_SysRq_key ) para apagar su computadora.
Para cerrar correctamente, puede usar lo siguiente (formulario de cotización Wikipedia):
Pero sustituyendo la última B con O (por azerty / qwerty) por "power O ff"
fuente