Solución del arranque de ubuntu despues de actualizar version

Iniciado por WHK, 27 Agosto 2016, 22:44 PM

0 Miembros y 1 Visitante están viendo este tema.

WHK

Hola, desde hace un tiempo he tenido un problema bastante específico con el aranque de Ubuntu y es que despues de actualizar de versión ya no arranca el modo gráfico pero cuando inicia el menú del grub (antes del arranque del sistema operativo) y elijes el kernel con opción "(upstart) arranca sin problemas.

En este post explicaré como solucionar algunos problemas más comunes que se tienen cuando actualizas tu distribución, todo lo que explicaré es una recopilación de muchas fuentes, muchas preguntas y muchas pruebas en mi pc que finalmente he logrado que todo funcione como reloj sin la necesidad de tener que formatear y reinstalar todo nuevamente.

Resumen
En resumen para los que no quieran leer todo el post debo decir que el problema es una combinación de muchos otros problemas:

* Librerías de Virtualbox no se eliminan al ser desinstalado
* Módulos del kernel de Virtualbox dejan de ser compatibles con la version del kernel actualizada junto a la nueva distribución.
* Montaje automático de discos NTFS o ExFat

Esto desencadena otra serie de problemas como por ejemplo que el arranque del kernel no finalice debido a que el módulo de virtualbox no existe y tampoco es capaz de automontar un disco con problemas de arranque (inicio rápido de windows)

Detalles

El primer problema que vemos es que no inicia ubuntu en modo gráfico sino que solo inicia en modo terminal (tty1):



Para comprender porque sucede esto lo que haremos es simplemente reiniciar el sistema y observar los mensajes de errores de carga:



En base a esto comenzaremos a solucionar de manera muy fácil cada uno de estos problemas.

Problema 1: Error al cargar los módulos del kernel de linux

El error de la carga del sistema nos dice:

Citar[FAILED] Failed to start Load Kernel Modules. See 'systemctl status systemd-modules-load.service' for details.



Cuando dejamos que inicie normalmente el sistema operativo este por lo menos iniciará en modo terminal y esto es bueno porque podremos observar los problemas que hubo en la carga, si iniciamos con upstart no veremos estos logs.

Despues que iniciamos sesión en modo terminal ejecutaremos el comando que nos recomendó el sistema:

Citarsystemctl status systemd-modules-load.service



El sistema nos dice que la carga de un módulo falló y si nos fijamos bien el comando específico que falló fue:

/lib/systemd/systemd-modules-load

Por lo tanto probamos aver que nos arroja:

$ sudo /lib/systemd/systemd-modules-load
Failed to insert 'vboxvideo': No such device


Ajamm! el módulo que nos da el problema es el video de Virtualbox, asi que trataremos de solucionarlo:

$ sudo  dpkg-reconfigure virtualbox
* Unloading VirtualBox kernel modules...   [ OK ]
* Loading VirtualBox kernel modules...      * No suitable module for running kernel found
                                                             [fail]
invoke-rc.d: initscript virtualbox, action "restart" failed.


Como falló intentaremos solucionar esto de otra manera:

$ sudo modprobe vboxdrv
modprobe: FATAL: Module vboxdrv not found in directory /lib/modules/4.4.0-34-generic


Entonces comprendí que claramente el módulo instalado por Virtualbox era compatible hasta ese momento para la versión del kernel cuando se instaló y por lo tanto claramente no es compatible con el nuevo kernel por lo cual las opciones a seguir son varias: reinstalar o eliminar virtualbox.

En mi caso para evitar problemas y asegurarme  que todo ande bien procedí a desinstalar virtualbox :

$ sudo apt-get purge virtualbox
$ sudo apt-get autoremove
$ sudo apt-get autoclean


Ahora probamos reiniciar el sistema y nos encontramos que el sistema continúa con el mismo problema y es porque el sistema aun está intentando cargar el mismo módulo de virtualbox a pesar de ya haber sido desinstalado, asi que procedemos a purgar manualmente virtualbox:

Editamos el archivo "/etc/modules" con cualquier editor, yo usé nano:
$ sudo nano -w /etc/modules

Buscamos y eliminamos la línea donde dice "vboxvideo", guardamos y cerramos el editor. Debiera quedar masomenos así el archivo final:

# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.

lp
# vboxvideo


Nótese que vboxvideo está comentado con un signo gato.

Ahora si volvemos a reiniciar y ya no veremos el mismo error de la carga de módulos del kernel :D


Problema 2: journal falla porque no es capaz de crear el archivo de logs

El error de la carga del sistema nos dice:

Citar[FAILED] Failed to start Create Volatile Files and Directories. See 'systemctl status systemd-tmpfiles-setup.services'



La solución es tan fácil como eliminar el directorio de logs de journal service para que este vuelva a crearlos con sus nuevos permisos correspondientes:

$ rm -rf /var/log/journal
$ rm -rf /run/log/journal


Luego de esto reinicias el sistema y ya no debiera volver a aparecer ese mensaje de error.


Problema 3: Error al iniciar el servicio pNFS

El error de la carga del sistema nos dice:

Citar[DEPEND] Dependency failed for pNFS block layout mapping daemon.



Esto se soluciona creando una mascara del servicio:

$ sudo systemctl mask nfs-blkmap.service

Con esto ya no debiera volver a aparecer ese error.


Problema 4: No se monta el directorio raiz en modo de escritura

Todo lo que hemos solucionado hacia atrás era solo parte del problema, aun nos daremos cuenta que no podemos ingresar al modo gráfico.

Lo que haremos para ver que sucede es iniciar manualmente el modo gráfico y ver que nos arroja:

$ startx



Este error es muy común y se debe porque no tenemos montado el directorio raiz en modo de escritura, solo está en modo lectura y eso se debe a una configuración del mismo grub.

Hagamos una prueba, remontaremos la partición del directorio raiz del sistema y luego de eso iniciaremos el gestor gráfico:

$ sudo mount -o remount,rw /
$ startx


Al hacer esto nos daremos cuenta que nos apareció el login de ubuntu y podremos acceder normalmente al sistema.

Ahora, haremos que esto se haga de manera automática reparando el archivo de inicio:

Lo que haremos es editar el archivo "/etc/default/grub" con permisos de root, podemos hacerlo por ejemplo:

sudo gedit /etc/default/grub

O también usando vi o nano desde el terminal.

Buscamos las siguientes líneas:

CitarEOF
 fi
 if test -d /sys/firmware/efi && test -e "${linux}.efi.signed"; then
   sed "s/^/$submenu_indentation/" << EOF
   linux   ${rel_dirname}/${basename}.efi.signed root=${linux_root_device_thisversion} ro ${args}
EOF
 else
   sed "s/^/$submenu_indentation/" << EOF
   linux   ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args}

Pueden haber mas lineas que sean similares pero lo importante es encontrar las que digan "ro", estas hay que reemplazarlas por "rw" (read write), guardas cambios y actualizamos el grub:

$ sudo update-grub

Luego reiniciamos el sistema (puedes reiniciar con el comando "reboot") y listo! ahora nuestro sistema inicia sin problemas.


Recomendaciones adicionales

Adicionalmente a esto también es recomendable realizar una serie de pasos y mantenciones para asegurarnos que tenemos todo en regla y que no nos aparecerán otros problemas adicionales que impidan iniciar normalmente el sistema:


1: Limpiar el sistema, actualizar todo y buscar dependencias no instaladas:
Hay algunos problemas conocidos en que el sistema no arranca despues de una actualización porque no se instalaron correctamente algunas dependencias.

$ sudo apt-get update
$ sudo dpkg --configure -a
$ sudo apt-get dist-upgrade
$ sudo apt-get -f install



2. Reinstalar "systemd-sysv"
Hay algunos problemas con "systemd-sysv" que impiden que el sistema arranque despues de una actualización, por este motivo procedemos a realizar una reinstalación:

$ sudo apt-cache policy systemd-sysv
$ sudo apt-get install --reinstall systemd-sysv


3. Eliminando los mimetypes
Hay algunos problemas cuando quieres hacer cambios específicos en algunos softwares que modifican el mimetype del sistema y arrojan una cantidad infinta de warnings de tipo "Unknown media type in type ...", esto se soluciona desinstalando el paquete con problemas:

$ sudo mv -vi /usr/share/mime/packages/kde.xml /usr/share/mime/packages/kde.xml.bak
$ sudo update-mime-database /usr/share/mime
$ sudo apt-get remove chemical-mime-data



¿Otros problemas similares al actualizar la distribución?, recomendaciones

Cuando actualizas una distribucin debes tener mucho cuidado, antes de hacerlo debes deshabilitar tus drivers privativos como los de nvidia, intel, etc ya que cuando actualizas y tienes un nuevo kernel estos drivers dejan de ser compatibles, por lo tanto cuando terminas y reinicias el sistema puedes terminar con un kernel panic:



Por esto cuando puedes iniciar por lo menos con "upstart" lo primero que debes hacer es deshabilitar tus drivers privativos desde el gestor de actualizaciones en la pestaña que dice "controladores restringidos":



Otro problema muy común es la actualización de componentes gráficos que en muchas ocasiones arrojan problemas debido a configuraciones antiguas, para evitar esto basta con reinstalar cada componente o purgar y luego instalar, por ejemplo en mi caso al actualizar "libgdk-pixbuf" a traves de las actualizaciones automáticas mi sistema dejó de dar video, por lo cual tuve que iniciar en modo tty1 (presionando Alt+Control+F1 después de loguearse sin importar que no se vea nada), esto iniciará el modo consola y luego procedemos a reinstalar el paquete afectado:

apt-get -y reinstall libgdk-pixbuf2.0-0 libgdk-pixbuf2.0-common libgdk-pixbuf2.0-common && reboot

Reiniciamos y solucionado!. Ahora, ¿cómo podemos saber exactamente que version estamos utilizando?:

whk@machine:~$ sudo apt list --installed | grep libgdk
[sudo] password for whk:

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

libgdk-pixbuf2.0-0/xenial-updates,xenial-security,now 2.32.2-1ubuntu1.4 amd64 [instalado]
libgdk-pixbuf2.0-common/xenial-updates,xenial-updates,xenial-security,xenial-security,now 2.32.2-1ubuntu1.4 all [instalado]
libgdk-pixbuf2.0-dev/xenial-updates,xenial-security,now 2.32.2-1ubuntu1.4 amd64 [instalado, automático]


Este problema se viene arrastrando desde hace muchos años y me ha sucedido hoy (2018). Esto es parte de un largo bug de ubuntu.

Otro problema muy común es que la tarjeta de red deja de ser compatible por lo cual cuando terminas la actualización y te encuentras con que solo puedes acceder al terminal tambien te das cuenta que no le puedes hacer ping a google, entonces ejecutas "ifconfig" para ver la configuración de red y no aparece "eth0", cuando eso sucede es porque tu driver de la tarjeta de red ya no es compatible.

Entonces, ¿que puedo hacer?: que tu tarjeta de red no le funcione el driver no quiere decir que tu chip de wifi tampoco lo sea, en muchas ocasiones si pero no siempre, en ese caso debes buscar documentación sobre como habilitar tu wifi manualmente desde "iwconfig".

Cuando no puedes habilitar ninguno de los dos lo que yo hago es buscar el modelo del notebook (laptop) o pc y le busco el driver oficial y se lo paso via usb pendrive, para esto debo montar manualmente la partición del usb y luego acceder al archivo e instalarlo, si es un .deb lo instalo con "dpkg -i archivo".

También es recomendable mantener siempre la última versión del kernel instalado y eliminar las versiones viejas. Cuando actualizas la distribución de tu sistema operativo este por lo general viene con nuevas versiones del kernel pero estas no se eliminan de manera automática, para esto puedes usar "Ubuntu Tweak" en la sección de limpieza:



Esto es bueno porque también eliminarás problemas de carga de módulos con otros kernels.

Otro punto a considerar es que si no tienes problemas con virtualbox si los puedes tener con algún otro sistema de virtualización como kvm, en este sentido desinstala y luego lo vuelves a instalar cuando tengas todo funcionando, tus configuraciones y maquinas virtuales al igual que con virtualbox no serán eliminados.

Si usas Java, después de actualizar tu sistema operativo debes reconfigurar la ruta por defecto:
$ sudo update-alternatives --config java

Y seleccionar la versión que estás usando, en mi caso es Java7:
root@machine:/# sudo update-alternatives --config java
Existen 3 opciones para la alternativa java (que provee /usr/bin/java).

 Selección   Ruta                                     Prioridad  Estado
------------------------------------------------------------
* 0            /usr/bin/gij-5                            1050      modo automático
 1            /usr/bin/gij-4.8                          1048      modo manual
 2            /usr/bin/gij-5                            1050      modo manual
 3            /usr/lib/jvm/java-7-oracle/jre/bin/java   1049      modo manual

Press <enter> to keep the current choice[*], or type selection number: 3
update-alternatives: utilizando /usr/lib/jvm/java-7-oracle/jre/bin/java para proveer /usr/bin/java (java) en modo manual
root@machine:/#


Si no lo haces entonces las aplicaciones que usaban java (como android studio) dejarán de funcionar o darán errores comunes de compatibilidad, como por ejemplo:

whk@machine:/opt/android-studio/bin$ ./studio.sh
java version "1.5.0"
gij (GNU libgcj) version 5.4.0 20160609

Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Start Failed: Internal Error. Please report to https://https://code.google.com/p/android/issues

java.lang.reflect.InvocationTargetException
  ...
Caused by: java.lang.RuntimeException: Could not find 'theUnsafe' field in the class sun.misc.Unsafe
  at com.intellij.util.concurrency.AtomicFieldUpdater.getUnsafe(AtomicFieldUpdater.java:44)
  ...14 more



Algunas fuentes

Algunas fuentes desde donde recopilé la información:


Espero que todo esto les pueda dar algunas luces sobre el problema que tengan cuando terminan de actualizar Ubuntu. Si no quieren pasar un buen rato sentado en el escritorio tratando de hacer arrancar ubuntu despues de una actualización entonces descarguen el iso de la nueva versión de ubuntu, respalden y formateen, instalen el SO de cero.

Saludos.

dato000

Fantastico aporte!!!!!!! este deberia estar en post fijos pero a modo universal para sistemas basados en debian, pues es muy común este tipo de problemas luego de una full-upgrade de un SO, yo recientemente pase por este calvario, aunque no tuve que reconfigurar grub, pero pues como cada usuario presenta sus propios problemas, esta wiki de oro deberia ser inmortalizada por su tremenda explicación de excelencia con una claridad impecable.


..

Te mereces una de estas (no puedo poner spoiler así que la dejo así  :silbar: :silbar: :silbar: :silbar:)
http://orig08.deviantart.net/bdff/f/2013/246/c/d/jenny_poussin__powder_baby_blue_lingerie__by_jennypoussin-d6kv8e3.jpg

grande coloso muy buen aporte. Se nota que te tomaste muy en serio esto, debiste haber pasado por un sufrimiento al haber actualizado. Muchas gracias  ;-) ;-)



nata3

Hola todo bien ? ! aui nataly,
ocupo ubuntu hace tiempo, solo que nunca tuve un problema asi .

yo estoy con el "Problema 1: Error al cargar los módulos del kernel de linux"
entiendo todos los pasos , menos los ultimos que indicaste que fueron

" Buscamos y eliminamos la línea donde dice "vboxvideo", guardamos y cerramos el editor. "

no entiendo ya que para desintalar y editar los codigos son complejos y desconocidos para mi
y supongo que para buscar y eliminar tambien se ocupa algun codigo o no ??

no quiero llegar a los pasos de buscar y eliminar sin saber hacerlo y quedar  :-X jejeje

ayudame porfavor ! tengo compartiliado mi pc .. pero no me gusta mucho window y tengo cosas importantes en ubuntu ayayaaaayyyy

besos

buenas tardes ;-)

WHK

#3
Hola, buenas nata3

Pues el problema es que cuando deinstalas virtualbox de la manera tradicional no funciona al 100%, quedan residuos en archivos de configuraciones, especialmente en el archivo de carga del kernel, por eso se edita y se elimina solo si está presente.

Mira, este es mi archivo /etc/modules :
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.

lp
# vboxvideo


Si te fijas, en la última línea de abajo donde dice vboxvideo está comentada, con eso el módulo de video de virtualbox no se carga en el arranque del kernel y de esa manera inicia de manera limpia.

Lo he agregado al primer post.

Saludos.

GlowwormiK

Hello guys,

I am sorry for writing in English on a spanish-speaking forum, but you are the only ones who explain how to deal with my problem! I read your forum with google translate, but I cannot post something from it, because it translates badly.

I have the same problem after updating my Ubuntu from 14.10 to 16.04. Your forum is the only one that suggests a solution that works! Thank you SOOOO MUCH!!! I had a problem like problem 1 with package it87 and I fixed it as you described. Problems 2 and 3 didn't appear, so I skipped them.

Then I followed your instructions for problem 4. I also have this problem with graphic mode. So I opened my grub file, but it contains no lines like you described. It is actually very short:
Citar
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"


As you see, almost everything is under comment marks.

I don't know it it was always so short or if I ruined it by this system update. But what do I need to do now? Should I insert the lines you suggest with "rw"? Should I leave it as it is? How do I fix the graphic mode than?

I am extremely happy for any suggestions or help! Thank you all very much in advance and please excuse me for my english once more, I hope I am not being too rude!

GlowwormiK

nata3

HOLA WHK!!

muito o brigada !! Gracias me costo entender , pero ahora, entiendo porque editaste y eliminaste. jejeje.

me lanse a solucionar mi Problema que es el Problema 1 ::) ! mas no llegue muy lejos  :-[

porque cuando codifique $sudo /lib/systemcl/systemd-modules-load , para ver que arrojaba.

Fue muy triste porque mi modulo con problemas no era el mismo al tuyo :(  :xD
me arrojo un mensaje diciendo, que un modulo no fue encontrado MIRA:

" Failed to find module 'rtc' ".

¿ Tu crees que deba solucionar el error, de la misma manera que nos enseñaste ?

bueno, el modulo 'rtc' , debe ser un modulo que se encargue del arranque y dice que no lo encuentra mas nose si sea asi.

Tu problema fue con el virtualbox que decia que no se inserto y que no habia dispositivo

" Failed to insert 'vboxvideo': No such device " .

despues de ver eso ...  para mi ojo es un mensaje similar solo que no el mismo modulo .

porfavor  me ayudas ?
gracias

Saludos desde rio de janeiro.

MinusFour

Cita de: GlowwormiK en 23 Noviembre 2016, 22:25 PM
Hello guys,

I am sorry for writing in English on a spanish-speaking forum, but you are the only ones who explain how to deal with my problem! I read your forum with google translate, but I cannot post something from it, because it translates badly.

I have the same problem after updating my Ubuntu from 14.10 to 16.04. Your forum is the only one that suggests a solution that works! Thank you SOOOO MUCH!!! I had a problem like problem 1 with package it87 and I fixed it as you described. Problems 2 and 3 didn't appear, so I skipped them.

Then I followed your instructions for problem 4. I also have this problem with graphic mode. So I opened my grub file, but it contains no lines like you described. It is actually very short:
As you see, almost everything is under comment marks.

I don't know it it was always so short or if I ruined it by this system update. But what do I need to do now? Should I insert the lines you suggest with "rw"? Should I leave it as it is? How do I fix the graphic mode than?

I am extremely happy for any suggestions or help! Thank you all very much in advance and please excuse me for my english once more, I hope I am not being too rude!

GlowwormiK

There are plenty of other English communities out there for both Ubuntu and Linux in general, you'll get better support there (as the majority speaks Spanish here).

Newer distros got `update-grub` split under:


/etc/grub.d/


If you open your the grub.cfg (/boot/grub/grub.cfg/) you'll see similar lines to what WHK posted. And you'll see something like:


### BEGIN /etc/grub.d/10_linux ###
....
### END /etc/grub.d/10_linux ###


This points out that whatever is in between these lines, the file in between is responsible for creating the chunk of lines. If grub is truly mounting the root filesystem with 'ro' (read only) then you'll have to check that file (pointed out in the grub.cfg) and change it to 'rw' (read write). It's most likely the file specified above but it might be different for your distribution.

At any point, "ro" doesn't make your filesystem read only for the whole session. If it finds an error it won't remount it with 'rw'. So if your permissions are in order then you have an underlying problem with your filesystem and needs to be checked.

The 'rw' change on the grub configuration file removes this safety precaution, but it'd be better if you'd fix your filesystem. See if:

Código (bash) [Seleccionar]

fsck -a


Helps you solve your problem (no 'rw' change needed).

MinusFour

Por cierto, lo que se debe hacer es usar DKMS con el driver de virtualbox, de esa forma el driver se auto compila para nuevos kernels (como cuando hagas un upgrade).