domingo, 18 de octubre de 2015

Enrutar paquetes desde un interface de red privada hacia Internet

Queremos habilitar el acceso a internet desde un equipo conectado a un interface de otro equipo que tiene dos interfaces. Es decir, el equipo conectado a Internet, tiene dos interfaces de red, uno conectado a Internet y otro conectado a una red interna formada por un solo equipo. El equipo conectado a Internet hará de router para otro equipo conectado a su otro interfaz.

El equipo que hará de router tiene Fedora 22 y debe enrutar los paquetes que le llegan desde un interface conectado a una red interna hacia Internet.

En el equipo Fedora 22, el interface conectado a Internet es em1 y el interface conectado a la red interna es p2p1.

Lo primero es configurar el interfaz de red (egiga0) del equipo al que queremos proporcionar acceso a Internet:



Y su tabla de rutas:


Para añadir la ruta por defecto:

route add -net 0.0.0.0 gw 192.168.249.5 dev egiga0

El gateway de la ruta por defecto (0.0.0.0) se corresponde con la IP del interfaz del equipo Fedora: 192.168.249.5. Con el comando

ifconfig -a

vemos la configuración de los interfaces en el equipo Fedora que nos va a hacer de router:


El router estándar doméstico conectado a Internet ha asignado la IP dinámica 192.168.20.5 al interface em1 que tiene acceso a Internet.

La tabla de rutas del equipo Fedora que hará de router se muestra con el comando:

route -n

o también con:

ip route show


Vemos que la red privada 192.168.249.0 está asignada al interfaz p2p1. La configuración de este interface está en el archivo:

cat /etc/sysconfig/network-scripts/ifcfg-p2p1


Ahora que los interfaces están configurados en los dos equipos, creamos la reglas para el enrutamiento en el equipo Fedora 22 que hará de router:

iptables -t nat -A POSTROUTING -o em1 -j MASQUERADE
iptables -A FORWARD -i em1 -o p2p1 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i p2p1 -o em1 -j ACCEPT

Falta habilitar el enrutamiento en el equipo Fedora con:

echo 1 > /proc/sys/net/ipv4/ip_forward

Esto configura el enrutamiento de forma temporal, es decir, al reiniciar el equipo que hace de router, habrá que habilitarlo nuevamente.

Para habilitarlo de forma permanente es necesario editar /etc/sysctl.conf

sábado, 26 de septiembre de 2015

Desinstalar dropbox en Fedora 22

Cómo desinstalo Dropbox de la cuenta de root únicamente:

Primero detengo la ejecución de Dropbox con:

su -

dropbox stop

elimino todos los archivos del directorio

rm -rf /root/Dropbox

los archivos ocultos también:

rm -rf /root/.dropbox*
rm /root/.dropbox-dist/

y también me aseguro de que no está configurado en el autostart. Si lo está, lo eliminamos

ls -lisa /root/.config/autostart

sábado, 19 de septiembre de 2015

PulseAudio Multiband Equalizer

Para instalar el control de volumen pavucontrol:

sudo dnf install pavucontrol

también tengo instalado ladspa con idea de modificar mi voz en vivo mientras hablo por Skype.

El ecualizador multibanda de pulseaudio se instala en Fedora con:

sudo dnf install pulseaudio-equalizer

Al instalarlo también se instala ladspa-swh-plugins

Los plugins se han instalado en /usr/lib64/ladspa

Por defecto el ecualizador aparece deshabilitado. Es necesario habilitarlo con:

pulseaudio-equalizer enable-config

y se reinicia pulseaudio con:

pulseaudio -k

Para ver la configuración de pulseaudio se usa:

pulseaudio --dump-conf

Cuando se cambia la configuración preset o se cambia los valores de las frecuencias y pulsamos en apply settings, la reproducción del sonido se interrumpe y para reanudarla hay que ir al Volume Control. El sonido se silencia automáticamente de manera inexplicable.

Para comprobar los plugins y ver la configuración se usa:

analyseplugin /usr/lib64/ladspa/pitch_scale_1193.so

Cargo algunos filtros para hacer la voz durante una conferencia con Skype más nítida. Los pasos se indican aquí.


Se podría utilizar para modificar la voz mientras se habla por Skype usando el TAP pitch Shifter plugin.


domingo, 30 de agosto de 2015

Openwrt Kamikaze resetar router WRT54GL

Si olvidas la contraseña de root, la única opciøn es resetear el router.

Para hacerlo, con un punzón o la punta de un bolígrafo haces presión en el botón de reset de la parte posterior mientras conectas el cable de alimentación.

La luz de PWR parpadea, manten pulsado el botón hasta que se ilumine la luz de DMZ. Ahora parpedearán las dos al mismo tiempo.

Puedes acceder al router usando Telnet a la dirección 192.168.1.1 desde cualquiera de los puertos LAN y también el WAN.

Para restablecer el acceso SSH, primero hay que configurar un nueva contraseña. Usamos el comando passwd en un terminal conectado mediante Telnet.

root@openwrt:~$ passwd
Changing password for root
New password:
Retype password:
Password for root changed by root
root@openwrt:~$
En mi caso, a pesar de establecer la contraseña con passwd, no pude conectar con SSH. Cualquier intento de conexión con putty responde con Connection refused.

Intento reiniciar el firewall en el router desde Telnet con:
/etc/init.d/firewall restart
Sin embargo, al ejecutarlo devuelve una lista de errores:

iptables table 'filter': Table does not exist (do you need to insmod?)
iptables table 'nat': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded

Ejecuto el comando lsmod, algunos módulos están cargados pero faltan 'filter' y 'nat'

Cargo los siguientes módulos:
insmod ip_tables
insmod ip_conntrack
insmod iptable_filter
insmod ipt_state
reinicio el firewall y ahora al intentar conectar usando Putty no aparece Connection refused pero tampoco se conecta.

Reinicio el router desenchufándolo y volviéndolo a enchufar.

Ahora se puede acceder usando SSH y Telnet. Para deshabilitar el acceso por Telnet  vuelvo a establecer la contraseña con el comando passwd. Esto deshabilita Telnet y habilita el acceso mediante SSH.

Esta es la lista de módulos cargados con Luci en ejecución:


Para volver a habilitar Telnet, ejecutamos el comando:

telnetd

Para deshabilitarlo y que no vuelva a ejecutarse después de reiniciar el router, usamos:

/etc/init.d/telnet stop
/etc/init.d/telnet disable

Desde un equipo conectado a un puerto LAN se puede escanear los puertos del router para saber si Telnet está habilitado o no.


El puerto 23 no aparece, Telnet no se está ejecutando.



martes, 18 de agosto de 2015

Mi configuración para conseguir conky transparente

Copio mi configuración para conseguir que conky se muestre transparente:

own_window yes
own_window_class Conky
own_window_argb_visual yes
own_window_type normal
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
own_window_argb_value 0

domingo, 26 de julio de 2015

Interfaz de red: mismo UUID para diferentes interfaces

Con una tarjeta dual ethernet 82571B Gigabit Ethernet Controller el archivo de configuración de los interfaces aparecen con idéntico UUID y MAC para los dos interfaces de la tarjeta.

/etc/sysconfig/network-scripts/ifcfg-p2p1 y /etc/sysconfig/network-scripts/ifcfg-p2p2 tienen el mismo UUID y MAC.

Para averiguar la MAC exacta de cada uno de los interfaces, ejecutamos el comando:

lshw -class network


Deshabilitamos el interface con:

cd /etc/sysconfig/network-scripts
su -
./ifdown-eth ifcfg-p2p1

Editamos la configuración y cambiamos la MAC y el UUID. Para generar un nuevo UUID se puede usar el comando:

uuidgen p2p1

Guardamos los cambios y habilitamos el interface:

/ifup-eth ifcfg-p2p1

con  ifconfig se puede comprobar si el interface tiene la correcta configuración MAC y UUID.


domingo, 7 de junio de 2015

Extender el tamaño de un disco vmdk

Para extender el tamano de un disco vmdk de VirtualBox se usa el comando VBoxManage. Este comando se usa para extender discos vdi entonces es necesarios convertir primero el disco a vdi para extenderlo y despues volverlo a convertir a vmdk:
vboxmanage modifyhd wsWin7.vmdk --resize 40960
este comando devuelve el error:
VBoxManage: error: Could not find file for the medium '/home/nicas/Downloads/wsWin7.vmdk' (VERR_FILE_NOT_FOUND)
VBoxManage: error: Details: code VBOX_E_FILE_ERROR (0x80bb0004), component Medium, interface IMedium, calleensISupports
VBoxManage: error: Context: "OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDevType, enmAccessMode, fForceNewUuidOnOpen, pMedium.asOutParam())" at line 178 of file VBoxManageDisk.cpp
Para crear un clon con transformando de vmdk a vdi se usa:
vboxmanage clonehd wsWin7.vmdk wsWin7.vdi --format vdi
Una vez clonado es posible extender el tamaño a 40GB =  40 x 1024 = 40960
vboxmanage modifyhd wsWin7.vdi --resize 40960
Después podemos conectar el disco vdi directamente a la VM y sustituirlo por el vmdk o volverlo a convertir a vmdk con vboxmanage.
Una vez extendido el tamaño con vboxmanage es necesario extender la partición del disco en el sistema operativo huésped.

sábado, 6 de junio de 2015

VMDK: inconsistency between grain table and backup grain table

Al actualizar Fedora 18 a Fedora 20, la versión instalada de VirtualBox-4.2-4.2.18 debe actualizarse a VirtualBox-4.3-4.3.28. Sin embargo, la instalación del rpm no va bien porque hay muchos paquetes que entran en conflicto con los de la versión anterior.

Elimino con yum autoremove todos los paquetes de la versión anterior.

rpm -aq VirtualBox
yum list | grep virtualbox
yum autoremove VirtualBox-4.2.x86_64
yum autoremove VirtualBox-4.3.x86_64

y lo vuelvo a instalar siguiendo los pasos de aqui.

Para ver las operaciones que se han seguido con yum con un paquete en concreto (por ejemplo firefox) se usa el comando:

yum history list firefox

Después de instalarlo, VirtualBox se ejecuta sin problemas. Descargo e instalo las Extensiones.

Sin embargo, cuando se intenta ejecutar cualquier VM tanto Windows como Linux, aparece el mensaje de error siguiente:

Failed to open a session for the virtual machine CentOS-6.4-i386-minimal.

VMDK: inconsistency between grain table and backup grain table in '/path/al/disco/disco.vmdk' (VERR_VD_VMDK_INVALID_HEADER).

VD: error VERR_VD_VMDK_INVALID_HEADER opening image file '/path/al/disco/disco.vmdk' (VERR_VD_VMDK_INVALID_HEADER).

Failed to open image '/path/al/disco/disco.vmdk' in read-write mode (VERR_VD_VMDK_INVALID_HEADER).

Failed to attach driver below us! VMDK: Invalid image file header. (VERR_VD_VMDK_INVALID_HEADER).

AHCI: Failed to attach drive to Port0 (VERR_VD_VMDK_INVALID_HEADER).

Result Code: NS_ERROR_FAILURE (0x80004005)
Component: Console
Interface: IConsole {8ab7c520-2442-4b66-8d74-4ff1e195d2b6}

Si creo una maquina virtual nueva e intento instalar Windows 7, la instalacion no se completa y la VM no se puede arrancar porque dice que el archivo winload.exe esta corrupto.


Windows Failed to start. a recenent hardware or software change may be the cause. to fix this problem: (boot from the cd and repair windows) (doesnt actually say that but thats what it tells you to do)

File: /windows/system32/winload.exe

Status: 0xc0000221

Info: the file is possibly corupt. its header checksum does not match the computed checksum.

Ni siquiera intentando una reparacion del bootloader con el disco original de Windows funciona. El error aparece al arrancar la VM con Windows y no deja seguir.

Soluciono el problema eliminando el controlador SATA/AHCI donde encuentra conectado el disco que contiene el sistema por un controlador IDE. Simplemente conecto el disco que contiene el sistema operativo invitado al controlador IDE donde normalmente se encuentra el CDROM/DVD. Un único controlador IDE contiene los dos dispositivos. Se puede ver el mismo procedimiento aquí.


No sé muy bien porque no funciona el controlador SATA ni el SCSI.

sábado, 16 de mayo de 2015

Actualizacion de Fedora 18 a Fedora 20

Al intentar conectar GNOME Online Accounts con Google aparece un error indicado que la API oauth 1.0 ya no esta disponible para validación desde el 20 de Mayo de 2015. Se requiere que la aplicación que está usando para validar se migre a la versión de la API oauth 2.0.

Aquí empieza el problema porque no es posible autentificar en dos pasos con GNOME 3.6 por lo que es necesario actualizar a la versión 3.8. En lugar de actualizar GNOME únicamente decido actualizar todo el sistema para pasar de Fedora 18 a Fedora 19.

El procedimiento utiliza fedup para automatizar el proceso. Primero actualizo a la ultima versión todo el sistema con:

sudo yum clean all
sudo yum update

y compruebo que fedup está en la última versión: 0.8

Comienzo la actualización ejecutando:

sudo fedup --nogpgcheck --network 20

Es importante indicar --nogpgcheck de lo contrario el proceso se detiene al finalizar la descarga de los paquetes y no continua porque no puede realizar la verificación pgp.

El proceso de preparación termina con los siguientes siguientes errores:

WARNING: problems were encountered during transaction test:
broken dependencies
kde-l10n-British-4.10.5-1.fc18.noarch requires kde-l10n-4.10.5-1.fc18.noarch
kmod-nvidia-3.11.10-100.fc18.x8664-1:319.60-3.fc18.3.x8664 requires kernel-3.11.4-101.fc18.x8664, kernel-3.11.9-100.fc18.x8664, kernel-3.11.10-100.fc18.x8664
speech-dispatcher-python-0.7.1-8.fc18.x8664 requires speech-dispatcher-0.7.1-8.fc18.x8664
libusb-static-1:0.1.3-11.fc18.x8664 requires libusb-devel-1:0.1.3-11.fc18.x8664
package conflicts
Traceback (most recent call last):
File "/bin/fedup", line 236, in <module>
main(args)
File "/bin/fedup", line 216, in main
for line in s.formatdetails():
AttributeError: 'ProblemSummary' object has no attribute 'format_details'

Ejecuto el siguiente comando de comprobación:

sudo yum check

y no devuelve ningún error. Por tanto, decido eliminar los paquetes que están causando conflictos:

sudo yum remove kde-l10n-British-4.10.5-1.fc18.noarch
sudo yum remove kmod-nvidia-3.11.10-100.fc18.x86_64
sudo yum speech-dispatcher-python-0.7.1-8.fc18.x86_64

este último también elimina la dependencia: orca.x86_64 0:3.6.3-1.fc18

sudo yum libusb-static-1:0.1.3-11.fc18.x86_64

Vuelvo a ejectuar fedup. Sigue apareciendo el mismo error de package conflicts aunque todos los problemas de broken dependencies han desaparecido. El problema es que dice package conflicts pero no dice que paquete esta causando el conflicto:

El log file muestra lo siguiente: /var/log/fedup.log

[    43.002] (II) fedup:message()   1:PacketTracer-5.3.3-1.i586
[    43.002] (II) fedup:message()   1:v8-3.17.6.14-2.fc18.x8664
[    43.002] (DD) fedup.yum:yumpluginforexc() checking traceback files: ['/bin/fedup', '/bin/fedup']
[    43.002] (DD) fedup.yum:yumpluginforexc() plugin path is ['/usr/share/yum-plugins', '/usr/lib/yum-plugins']
[    43.002] (II) fedup:<module>() Exception:
Traceback (most recent call last):
File "/bin/fedup", line 236, in <module>
main(args)
File "/bin/fedup", line 216, in main
for line in s.formatdetails():
AttributeError: 'ProblemSummary' object has no attribute 'format_details'

Por ello elimino también el paquete PacketTracer

sudo yum remove PacketTracer

y vuelvo a ejectuar fedup.:

sudo fedup --nogpgcheck --network 20

Ahora muestra el mismo error package conflicts

el ultimo archivo que se ve en la lista de packages without updates es:

1:v8-3.17.6.14-2.fc18.x86_64

En el archivo /var/log/fedup.log aparece:

[    42.966] (II) fedup:message()   1:v8-3.17.6.14-2.fc18.x8664
[    42.966] (DD) fedup.yum:yumpluginforexc() checking traceback files: ['/bin/fedup', '/bin/fedup']
[    42.966] (DD) fedup.yum:yumpluginforexc() plugin path is ['/usr/share/yum-plugins', '/usr/lib/yum-plugins']
[    42.966] (II) fedup:<module>() Exception:
Traceback (most recent call last):
File "/bin/fedup", line 236, in <module>
main(args)
File "/bin/fedup", line 216, in main
for line in s.formatdetails():
AttributeError: 'ProblemSummary' object has no attribute 'format_details'
[    42.966] (II) fedup:<module>() /bin/fedup exiting with unhandled exception at Thu May 14 19:58:28 2015

Elimino v8, al eliminarlo tambien se eliminan las dependencias chromium. Los paquetes eliminados son:

Removing:

v8          x86_64    1:3.17.6.14-2.fc18                     @fedora-chromium-stable

Removing for dependencies:

chromium    x86_64   27.0.1453.93-1.fc18                     @fedora-chromium-stable

Vuelvo a ejecutar fedup y de nuevo sigue el error:

[    42.971] (DD) fedup.yum:yumpluginforexc() checking traceback files: ['/bin/fedup', '/bin/fedup']
[    42.971] (DD) fedup.yum:yumpluginforexc() plugin path is ['/usr/share/yum-plugins', '/usr/lib/yum-plugins']
[    42.972] (II) fedup:<module>() Exception:
Traceback (most recent call last):
File "/bin/fedup", line 236, in <module>
main(args)
File "/bin/fedup", line 216, in main
for line in s.formatdetails():
AttributeError: 'ProblemSummary' object has no attribute 'formatdetails'
[    42.972] (II) fedup:<module>() /bin/fedup exiting with unhandled exception at Thu May 14 20:09:22 2015

Añado en el archivo /etc/yum.conf la siguiente linea:

pluginpath=/usr/lib/yum-plugins

Y vuelvo a ejecutar fedup, el error sigue siendo parecido:

[    50.074] (DD) fedup.yum:yumpluginforexc() checking traceback files: ['/bin/fedup', '/bin/fedup']
[    50.074] (DD) fedup.yum:yumpluginforexc() plugin path is ['/usr/lib/yum-plugins']
[    50.074] (II) fedup:<module>() Exception:
Traceback (most recent call last):
File "/bin/fedup", line 236, in <module>
main(args)
File "/bin/fedup", line 216, in main
for line in s.formatdetails():
AttributeError: 'ProblemSummary' object has no attribute 'formatdetails'
[    50.074] (II) fedup:<module>() /bin/fedup exiting with unhandled exception at Thu May 14 20:24:24 2015

Parece que el problema pudiera estar conectado con los plugins de yum puesto que fue el ultimo modulo que se ejecuto antes del Exception. Por ello modifico el archivo /etc/yum.conf y cambio la linea plugins=0 por plugins=1

El resultado es el mismo, sigue el error sin indicar cual es el paquete que tiene conflicto. Restablezco el valor de plugins en el archivo /etc/yum.conf

También elimino el paquete Skype porque la versión instalada es Skype.4.3.0.37-fc16 y no tiene actualización. También elimino Ushare por el mismo motivo.

A pesar de los errores, decido reiniciar el sistema. Al reiniciar, junto con la opción de arranque existente aparece una nueva opción: System Upgrade (fedup).

Al seleccionarla comienza el arranque y se detiene al intentar montar el sistema de ficheros, ya que mi sistema es RAID y al parecer, requiere renombrar las entradas de los dispositivos montados en el /etc/fstab.

Se muestra el mensaje:

* Warning -- SELinux targeted polity relabel is required.
Relabeling could take a very long time, depending on file
** system size and speed of hard drives.

[ OK ] Started Recreate Volatile Files and Directories.

Después de un largo rato, es posible pensar que el sistema esta colgado, el inicio continua y se detiene mostrando el mensaje Starting GDM:

Started GNOME Display Manager

Elimino todos los archivos de configuración xorg de /etc/X11 y /etc/X11/xorg.conf.d moviendolos a ~/Documents/Configuration sin embargo, sin los archivos en /etc/X11/xorg.conf.d el sistema no arranca por lo que muevo de nuevo los archivos a su lugar de origen. Los archivos en /etc/X11/xorg.conf.d son:

00-anaconda-keyboard.conf

00-avoid-glamor.conf

10-Media-Center-Infrared-Remote-Transceiver.conf

99-nvidia.conf

Ahora el sistema arranca, la pantalla GDM muestra el inicio clásico. Al entrar al sistema, compruebo que no se ha actualizado, simplemente se muestra el entorno GNOME clásico. Compruebo la versión de GNOME con:

gnome-shell --version

y sigue siendo la versión 3.6

Es mas, tampoco se ha actualizado el sistema, al hacer:

cat /etc/fedora-release

o

cat /etc/issue

sigue mostrando la versión Fedora 18 (Spherical Cow)

Sin embargo, al hacer:

uname -r

devuelve la versión del núcleo 3.19.5-100.fc20.x86_64

En cualquier caso, el sistema se inicia.

Si en lugar de elegir la opcion System Upgrade en GRUB se elige la opción Fedora, reinicia el sistema antiguo aunque para reiniciarlo vuelve a renombrar el sistema de archivos y, por tanto, tarda en arrancar. Después de iniciar la versión anterior, reiniciamos de nuevo System Upgrade, el sistema de archivos se vuelve a renombrar.

Al revisar el /var/log/fedup.log encuentro que se produce un aviso de conflicto con MySQL indicando que no hay update para MySQL y que en sustitución se instalará MariaDB. Al eliminar el paquete mysql-server y volver a ejecutar fedup, el error desaparece.

Después de ejecutar fedup, reinicio el sistema con la opción System Upgrade y a continuación ejecuto:

rpm --rebuilddb
yum clean all
yum --release=20 distro-sync --nogpgcheck

y el sistema comienza a actualizar todos los paquetes. Al finalizar, se reinicia con éxito en la nueva versión.

martes, 12 de mayo de 2015

Visualizar la carga de cada núcleo del procesador

Para visualizar la carga del cada núncleo del procesador se puede usar el comando
htop
Este comando necesita que ncurses esté instalado en el sistema.


Otra opción es usar mpstat. Tiene muchas posibilidades, puede mostrar la media o valores individuales para cada procesador.
mpstat -P ALL 2 5
Por ejemplo, este comando genera cinco informes de utilización de todos los procesadores cada 2 segundos.


miércoles, 25 de marzo de 2015

Contar el número de archivos en un directorio y subdirectorios

Para contar el número de archivos se usa el comando:

ls -1 | wc -l

Para contar el número de archivos por subdirectorio, se copia y pega en la consola el siguiente script:
fc() {
# Usage: fc [depth >= 0, default 1]
# 1. List all files, not following symlinks.
#     (Add filters like -maxdepth 1 or -iname='*.jpg' here.)
# 2. Cut off filenames in bulk. Reverse and chop to the
#     first / (remove filename). Reverse back.
# 3. Cut everything after the specified depth, so that each line
#      contains only the relevant directory path
# 4. Cut off the preceeding '.' unless that's all there is.
# 5. Sort and group to unique lines with count.

find -P . -type f /

    | rev | cut -d/ -f2- | rev \
    | cut -d/ -f1-$((${1:-1}+1)) \
    | cut -d/ -f2- \
    | sort | uniq -c
}

Y a continuación si se quiere ver el número de archivos totales contando con los subdirectorios usamos:
fc 0

Y para ver cada subdirectorio especificado, hacemos:
fc

viernes, 20 de marzo de 2015

Permisos extendidos

Al copiar los archivos .crt y .key desde el directorio /root al directorio /etc/httpd/ssl el servidor apache genera un error al iniciarse. Los permisos extendidos de los archivos .crt y .key no permiten que Apache pueda acceder.

Para ver los permisos extendidos usamos:
ls -laZ





Para cambiar los permisos extendidos usamos:
restorecon -Rv /etc/httpd/ssl/














lunes, 11 de junio de 2012

Warning: Fake initctl called, doing nothing

Este mensaje aparece al intentar instalar un paquete, en mi caso, openssh-server aunque también ocurre al intentar instalar otros servicios como myslqd. No crean los scripts de inicio y es, por tanto, imposible iniciarlos durante el arranque o posteriormente porque dichos scripts no han sido creados durante la instalación.

El mensaje se muestra al intentar instalar cualquier paquete que deba arrancar con upstart o initctl:

Warning: Fake initctl called, doing nothing

Se puede comprobar que ninguno de los servicios instalados tras este error está funcionando si hacemos:

$ service --status-all

y también:

$ initctl list

Por si aún no está claro que openssh-server no está funcionando, podemos comprobar que puertos están escuchando con:

$ netstat -nltp

Al parecer, el error se produce por una actualización que quedó incompleta. Después de revisar /var/log/apt/term.log , /var/log/dpkg.log no pude encontrar nada anómalo, apliqué la solución propuesta en este foro y se solucionó ejecutando estos dos comandos:


$ sudo mv /sbin/initctl /sbin/initctl.FAKE

$ sudo ln -s /sbin/initctl.REAL /sbin/initctl


y después limpiando la instalación del servicio que falla y reinstalando de nuevo, por ejemplo:

$ sudo apt-get purge openssh-server

$ sudo apt-get install --reinstall openssh-server


Ahora los scripts de inicio estarán disponibles y podrán ser ejecutados al iniciar el sistema.




domingo, 13 de mayo de 2012

Error 'Failed to fetch...' actualizando Ubuntu 11.04

Al intentar actualizar Ubuntu 11.04 con el gestor de actualizaciones, no se pueden descargar los paquetes a pesar de que hay conexión a Internet.

Aparece un recuadro con cada uno de los paquetes que no pueden ser descargados y la actualización se cancela. El error dice: "Failed to fetch http://...." y a continuación el sitio y nombre del paquete a descargar.

Para solucionarlo, simplemente pulsamos en el botón Configuración del Gestor de actualizaciones para elegir otro servidor desde el que descargar las actualizaciones.

Aquí se describe más detalladamente el procedimiento.

domingo, 8 de abril de 2012

Velocidad de transferencia del disco duro

Para conocer la velocidad de transferencia del disco duro en Linux se puede utilizar el comando hdparm aunque también existen herramientas gráficas para comprobarlo.

Lo primero es conocer las características del disco instalado. Si nuestro disco está instalado como sda usamos el comando:

sudo lshw -C disk




Si el disco soporta SMART, la herramienta gráfica gsmartcontrol, instalable desde el Centro de software de Ubuntu proporciona información de los discos conectados y ofrece la posibilidad de ejecutar el algunos tests en busca de errores.


Los valores de los atributos que se muestran brindan una información muy interesante:



Finalmente, otra herramienta gráfica que ofrece información de los dispositivos de almacenamiento conectados es gnome-disk-utility. Se instalada desde el Centro de Software de Ubuntu y se ejecuta escribiendo palimpsest en una ventana del terminal.


Desde esta herramienta también podremos formatear un disco, comprobar el sistema de archivos, montar un volumen y realizar pruebas de rendimiento.

Se pueden realizar pruebas de rendimiento de lectura y de lectura/escritura. Al finalizar la prueba de lectura se muestra el resultado en una gráfica como esta:


Para ejecutar la prueba de lectura/escritura es necesario que la tabla de particiones esté completamente vacía.

Desde la consola también es posible realizar pruebas de rendimiento del disco. Utilizamos el comando hdparm pero para que los valores obtenidos sean fiables, debemos ejecutar el comando al menos tres veces.

El comando sería:

sudo hdparm -tT /dev/sda

El resultado también tiene en cuenta el rendimiento del procesador y la memoria pues las lecturas utilizan la caché y buffer del disco:


Para ejecutar la prueba tres veces, empleamos un bucle desde la consola:


Un factor a tener es cuenta es el tamaño del disco y el porcentaje de utilización. Para verlo, la mejor herramienta es el analizador de uso de disco o desde el terminal con el comando:

du -sx









martes, 3 de abril de 2012

Personalizar el escritorio de Ubuntu 11.10

La mayoría de las características para personalizar el escritorio en Ubuntu 11.10 funcionando en modo 2D no están disponibles desde el menú de configuración del sistema. El fondo de escritorio, el papel tapiz y la posibilidad de elegir entre unos pocos temas son las únicas opciones disponibles desde el menú Configuración del sistema->Apariencia.

De los temas que están instalados:

ls /usr/share/themes

solo están disponibles algunos de ellos: Radiance, Ambiance y HighContrast.

MyUnity ofrece muchas posibilidades de personalización aunque están limitadas si Ubuntu está funcionando en modo 2D. Aún así, permite elegir alguno de los otros temas instalados.

Para instalar esta herramienta, añadir el repositorio:

sudo add-apt-repository ppa:myunity/ppa
sudo apt-get update
sudo apt-get install myunity

Esto añade la herramienta MyUnity al menú de Configuración del sistema.

Al configurar algunos de los temas puede desaparecer el icono de control de sesión (logout, configuración del sistema, aplicaciones al inicio, ...)

Para volver a restaurar este icono, basta con lanzar desde una ventana del terminal la aplicación de configuración por defecto: gnome-control-center y reestablecer alguno de los temas que vienen por defecto en esta aplicación. El icono reaparecerá.

Otra herramienta muy útil que añade un panel inferior con muchos gadgets opcionales e instalables es AWN (Avant Window Navigator). Junto con Docky, ambas están disponibles para descargar desde el Centro de software de Ubuntu.

domingo, 1 de abril de 2012

OpenXenManager /usr/bin/env python2 no existe el archivo o directorio

Después de descargar e instalar OpenXenManager, cuando lanzamos el ejecutable con ./openxenmanager se produce un error:

/usr/bin/env: python2: No existe el archivo o el directorio

Este error está provocado porque el ejecutable python2 que es llamado desde el script openxenmanager no existe en nuestra versión de Ubuntu pues ha podido ser reemplazado por una versión más reciente.

Para solucionarlo, basta con editar el script openxenmanager y sustituir la línea:

#!/bin/bash
/usr/bin/env python2 window.py

Por esta otra:

#!/bin/bash
/usr/bin/env python window.py

Recuerda que debes tener instaladas python-glade2 y python-gtk-vnc. En esta guía se explica como realizar la instalación paso a paso.

sábado, 24 de marzo de 2012

Los números primos y la temperatura del procesador

El objetivo de este ejercicio es comprobar como sometiendo el procesador a una sobrecarga de tareas hace que su temperatura aumente. Vamos a necesitar varias herramientas, la primera, un test de tortura que permita intensificar el trabajo del procesador. Uno de los más conocidos tests de tortura es prime95.

Este programa usa tu ordenador para calcular números primos y participar en un proyecto de computación distribuida para la búsqueda de números primos (GIMPS). Como procedimiento para someter al procesador a una intensa demanda en coma flotante es también interesante pues puede funcionar indefinidamente y, además, exige un constante acceso a la memoria. Debido a este fuerte stress, el consumo del procesador y, en general del ordenador, también aumenta.

Las restantes herramientas necesarias para el ejercicio lo son para la observación del fenómeno. En primer lugar, necesitaremos un amperímetro para comprobar el consumo o mejor aún, un medidor del consumo eléctrico que se puede comprar en Lidl por 10 euros o en Amazon por 20 euros.
Además, será necesario observar como aumenta el uso de la CPU con una herramienta gráfica fácil de entender como gnome-system-monitor, que muestra también el uso de la memoria y, por último, para vigilar la temperatura, podemos instalar lm-sensors y sensors-applet.

Este último permite añadir un applet a la barra que muestra lecturas de los sensores de temperatura con el intervalo que establezcamos. Si se quiere conocer la temperatura de forma puntual e instantánea se puede usar acpi -t desde la línea de comando.

En una ventana del terminal lanzamos prime95 y visualizamos en el monitor del sistema como el uso de la CPU y memoria se intensifican, al tiempo que observamos el aumento de la temperatura y del consumo eléctrico.

sábado, 18 de febrero de 2012

Fallo fuente de alimentación

Varias veces, cada vez con más frecuencia, al desconectar el cable de alimentación de mi HP SR1297ES y volverlo a conectar, la luz o led de la fuente de alimentación se queda parpadeando y el ordenador no arranca al pulsar el botón de encendido. El parpapedo o flash se acompaña de un sonido parecido al tick de un reloj.

Para conseguir arrancar el ordenador, tuve que desconectar la fuente de alimentación de la red, desconectar el conector P1 que va desde la fuente hasta la placa base, reconectar la fuente de alimentación a la red y mientras está conectada, volver a conectar P1.

Otras veces, desconectando el cable de alimentación que va desde la fuente a P1 de su conector ATX 20,  he puenteado PowerOK con un clip por la parte trasera del conector y cuando comienzan a girar los discos y el ventilador de la fuente, conectar el P1 a la placa base. Bastante arriesgado pero funciona. Cuando el ordenador haya encendido puedes desconectar el clip pero no lo pierdas, lo necesitarás la próxima vez.


Al parecer se debe a que la acumulación de polvo en la fuente de alimentación causa un cortocircuito que impide el arranque. Según he leído, se puede solucionar sin necesidad de comprar una fuente nueva con un simple secador de pelo usándolo para limpiar el interior de la fuente. Yo prefiero probar con un spray de aire comprimido.

martes, 31 de enero de 2012

No se muestran todos los interfaces de red

En una máquina virtual Ubuntu 11.10 Oneiric Ocelot con dos interfaces de red configurados como NAT (eth0) y Bridge(eth1), después de eliminar el interface de red en modo Bridge en VirtualBox, desparece de la máquina virtual Ubuntu y no muestran ni eth0 ni eth1, tan solo el interface local (lo).

Ejecutando:
# dmesg | grep eth0

se muestra:

[    2.874056] eth0: RTL8168d/8111d at 0xffffc90001874000, 08:00:27:02:ff:8f, XID 081000c0 IRQ 32
[    5.981326] udev: renamed network interface eth0 to eth1

y ejecutando:
# ifconfig -a

se muestra:

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:266 errors:0 dropped:0 overruns:0 frame:0
          TX packets:266 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:19124 (19.1 KB)  TX bytes:19124 (19.1 KB)

Se puede comprobar que el interfaz está realmente presente mediante:

# sudo lshw -C network

El archivo de configuración de dispositivos al inicio puede haberse modificado incorrectamente al cambiarse la configuración o eliminarse el adaptador de red en VirtualBox.

# cat /etc/udev/rules.d/70-persistent-net.rules

# This file maintains persistent names for network interfaces.

# See udev(7) for syntax.
#
# Entries are automatically added by the 75-persistent-net-generator.rules
# file; however you are also free to add your own entries.


# PCI device 0x10ec:0x8139 (8139too)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:02:ff:8f", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"


# PCI device 0x10ec:0x8168 (r8169)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:02:ff:8e", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"


Si no muestra ningún dispositivo o muestra dos líneas, como en el ejemplo, debemos comprobar que la dirección MAC corresponde al interfaz eth* que realmente existe y eliminar cualquier otra entrada en el archivo. Si es así, hacer una copia de seguridad de este archivo de configuración y modificarlo para que muestre los dispositivos que realmente existen y su dirección MAC correcta asociados al interfaz eth correspondiente.

Después reiniciar:

# sudo init 6