Bien, si alguien quiere jugar a ser dios y hacer milagros, estoy deprimido.
Entonces, me dieron la tarea de hacer un script que encontrara archivos que tenían más de 6 meses, los comprimí y luego los eliminé. En mi camino al hacer el script de tihs ejecuté esto:
find / -type f -mtime -400 ! -mtime -180 | xargs gzip blablabla
Y eso le dio a CADA ARCHIVO UNA extensión .gz. Ahora lo deshice tan pronto como me di cuenta, pero ya era demasiado tarde. Al completar el comando, ninguno de mis comandos bash funcionaría porque la variable $ PATH se vació sola. Intenté muchas cosas antes de darme cuenta de cuál era el problema.
Después de descomprimir todo, todavía no puedo arrancar. Logré llegar al rescate de grub, después de lo cual seguí las instrucciones en línea para:
root (hd0,0)
setup (hd0)
kernel (hd0,0)/boot/vml[...]
initrd (hd0,0)/boot/initrd.im[...]
Después de lo cual mi Linux arranca parcialmente pero me da los siguientes errores:
Begin : Running /scripts/init-bottom ... mount : mounting /dev on /root/dev failed : No such file or directory
mount: mounting /sys/ on /root/sys failed: No such file or directory
mount: mounting /proc on /root/proc failed : No such file or directory
Target filesystem doesn't have requrested /sbin/init.
No init found. Try passing init= bootarg.
Intenté reparar el sistema de archivos, arranqué desde 3 LiveCDs / discos de rescate diferentes, ejecuté la reparación de arranque desde 2 dicsc diferentes. Forcé fscks ...
Realmente no tengo ideas y NECESITO que este servidor arranque al menos para poder recuperar mis bases de datos SQL. Estoy desesperado por ayuda, incluso pagaré si es necesario.
He estado al acecho en los foros durante 3 días seguidos todo el día para encontrar una posible solución y todavía estoy en el mismo punto ... ¿Ayuda por favor?
because of version differences,
reinstalar con la misma versión exacta.we have corruption issues,
Sus datos pueden estar corruptos. Reparar el sistema para que sea de arranque, no lo ayudará si los datos han sido destruidos. Si su comando gzip comprimió los archivos de su base de datos mientras la base de datos estaba siendo usada, parece inevitable.Respuestas:
Esto dependerá de si los sistemas de archivos están reparados lo suficiente para que pueda montar esas particiones desde un LiveCD. No te molestes en intentar arrancar el sistema todavía. Primero, monte las particiones y descomprima todos los archivos .gz. Esto le dará copias de trabajo de init y binarios del sistema. Luego puede usar grub para reparar el sector de arranque. Luego, inicie en modo de usuario único y fsck el sistema de archivos nuevamente. Si eso funciona, tendrás un sistema en ejecución. También tendrá un montón de archivos descomprimidos (como páginas de manual) que realmente deberían comprimirse, pero es mejor que tener un sistema que no se pueda arrancar.
Si no puede montar las particiones desde un LiveCD, desafortunadamente no tiene suerte. Nada recuperará su sistema en ese punto.
fuente
Lo primero que probaría es ejecutar un entorno LiveCD e intentar descomprimir todo, con la esperanza de que el sistema vuelva a un estado de arranque. Nota: Me preocuparía la posible corrupción de datos si se interrumpiera el proceso original de gzip.
De lo contrario, trataría de migrar la base de datos a un nuevo sistema como lo han sugerido otros, pero como ha encontrado, puede haber problemas de dependencia y configuración intensivos en mano de obra que deberán resolverse individualmente.
fuente
El consenso general aquí, de que solo debe montar el disco en un sistema que funcione y rescatar sus archivos, no está mal. Es lo más sensato que hacer. Pero la otra forma es más divertida y muy educativa. Aprendí mucho mientras luchaba para salir de situaciones desordenadas donde otras personas simplemente se habrían dado por vencidas y reinstaladas desde cero. (Sin embargo, no en un servidor del que dependen otras personas ...)
De todos modos, hasta ahora tienes un initramfs (initrd) que se ejecuta. Ese es un buen comienzo. ¿Pero no puede completar la transferencia a init porque init es ahora
init.gz
tal vez? Para avanzar, sería útil saber exactamente qué distribución de Linux tiene, para que podamos buscar qué herramientas están disponibles en sus initramfs para uso de emergencia.Parece que los mensajes de error que presentó podrían provenir de initramfs de Debian. Si es Debian, entonces debería haber recibido un
(initramfs)
indicador de shell en la siguiente línea después del último error. Si lo hiciste, deberías investigar qué sucede con esas monturas fallidas. está/root/dev
faltando? (/root
es donde se debe montar su raíz normal fs durante la ejecución de initramfs)Si no obtuvo el indicador de shell, lo que vino después
No init found. Try passing init= bootarg.
será interesante. Incluso si no fuera más que un cursor parpadeante, eso es una pista. Si parece totalmente congelado, intente obtener información sobre los procesos que todavía existen utilizando magic sysrq o Ctrl + ScrollLock.Debian initramfs también le permite solicitar un shell en algunos puntos de referencia especiales agregando un
break=
parámetro a la línea de comando del núcleo. Por ejemplo, para obtener un shell antes de laRunning /scripts/init-bottom
línea, usebreak=bottom
.Aparte: no sé cómo el
find
comando podría haber comprimido cada archivo ... me parece correcto con el propósito de seleccionar archivos entre 180 y 400 días de antigüedad.fuente
break=bottom
?) ... sí, en el momento en que está tratando de montar/root/dev
y/root/proc
e/root/sys
,/root
debería ser el verdadero sistema de ficheros raíz. Debe haber habido un mensaje de error anteriormente, sobre no poder montarlo. ¿Incluyó unroot=
parámetro en la línea de comando del núcleo? Mi memoria está un poco borrosa en este punto, pero creo queroot (hd0,0)
simplemente le dice a grub dónde encontrar sus archivos de soporte, y aún necesita decirle al núcleo por separado dónde está la raíz.(initramfs)
inmediato, algo asímount -r /dev/sda1 /root
?cat /proc/partitions
para ver qué discos están disponibles.