miércoles, 14 de diciembre de 2011

Ubuntu 11.04 no se inicia en modo gráfico con drivers de NVIDIA

En Ubuntu 11.04 y después al pasar a Ubuntu 11.10 oneiric, después de muchas de las actualizaciones automáticas, no consigo que se inicie el modo gráfico y la pantalla se queda en negro. El único modo de acceder al sistema es mediante alguna de las consolas de texto [CTRL] + F2 por ejemplo.

Buscado información en los logs, se observa que no hay ningún error en /var/log/kern.log referido a los drivers de NVIDIA pero, sin embargo, en /var/log/Xorg.0.conf aparece un error indicando 'failed to load nvidia drivers'

Parece que esto ocurre cada vez que se actualiza el núcleo en algunas de las actualizaciones automáticas.

En mi caso, observando el fichero de actualizaciones: /var/log/dkpg.log veo que la versión anterior linux-image-2.6.38-10-generic 2.6.38-10.46 ha sido sustituida por linux-image-3.0.0.14-generic 3.0.0.14.23

Para volver a tener el entorno gráfico siempre he seguido el mismo procedimiento:

#sudo apt-get remove --purge nvidia-*

#sudo Xorg -configure

#sudo sh NVIDIA-Linux-x86-290.10.run

Obviamente, hay que sustituir el driver NVIDIA-Linux-x86-290.10.run por el que te hayas descargado de la página de NVIDIA
Si lo prefieres puedes descargarte previamente la última versión de los repositorios de Ubuntu usando:

#sudo apt-get install nvidia-current

viernes, 11 de noviembre de 2011

Iniciar Ubuntu siempre en modo texto

Para que Ubuntu se inicie siempre en modo texto, tenemos que modificar el grub.

Editamos el fichero de la configuración por defecto de grub:


#sudo nano /etc/default/grub
Sustituye la línea:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
y cámbiala por:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash text"
Reescribe el grub en el sector de arranque del disco:

#sudo update-grub
La próxima vez que reinices el entorno gráfico no se iniciará. Si quieres hacerlo, puedes usar:

#startx

jueves, 10 de noviembre de 2011

Reemplazar disco duro en un portátil por SDHC (micro-SD)

Como experimento, he sustituido el disco duro de un portátil TOSHIBA con Intel Centrino de los que distribuye la Junta de Andalucía a los centros TIC, concretamente uno modelo PTM50E-07302KLX, por un adaptador SATA 2.5" para SDHC, es decir, he sustituido el disco duro, un TOSHIBA HDD2D34 y en su lugar he puesto una SDHC de 8GB de clase 10.

Para comprobar el funcionamiento, he instalado Ubuntu 10.10 en la micro SDHC de 8GB clase 10 con un adaptador para SATA y ejecutado un test de benchmarking con System Profiler and Benchmark tool.

El equipo tiene un procesador es un T1300 @ 1600GHz, 2M caché con 512MB de memoria.
Después de ejecutar varios test, estos son los resultados con el Ubuntu 10.10 instalado en la micro-SDHC:

CPU Blowfish: 20.11 (cuanto menos, mejor)
CPU CryptoHash: 61.77 (cuanto menos, mejor)
CPU Fibonacci: 5.94 (cuanto menos, mejor)
CPU N-Queens: 13.98 (cuanto menos, mejor)
FPU FFT: 10.47 (cuanto menos, mejor)
FPU Raytracing: 28.21 (cuanto menos, mejor)

Los resultados de los mismos tests con el disco duro de origen, un TOSHIBA HDD2D34 de 40GB son los siguientes:

CPU Blowfish: 20.15 (cuanto menos, mejor)
CPU CryptoHash: 62.11 (cuanto menos, mejor)
CPU Fibonacci: 5.89 (cuanto menos, mejor)
CPU N-Queens: 13.97 (cuanto menos, mejor)
FPU FFT: 10.51 (cuanto menos, mejor)
FPU Raytracing: 28.23 (cuanto menos, mejor)

Los tests anteriores han sido hechos con hardinfo 0.5.1 y no parecen mostrar mucha diferencia ya que están destinado a medir y comparar el procesador.

Los resultados con hdparm son los siguientes:
Con disco duro TOSHIBA:
#sudo hdparm -Tt /dev/sda
Timming cached reads: 2022 MB in 2.00 seconds = 1011.18 MB/seg
Timming buffered disk reads: 94 MB in 3.04 seconds = 30.95 MB/seg

Con tarjeta SDHC 8GB clase 10:

#sudo hdparm -Tt /dev/sda
Timming cached reads: 1874 MB in 2.00 seconds = 937.07 MB/seg
Timming buffered disk reads: 28 MB in 3.17 seconds = 8.85 MB/seg

Concluyendo: la tarjeta es ciertamente más lenta con bastante diferencia. Otra cosa es el consumo. Con una SDHC la batería puede llegar a duplicar su autonomía.

Los resultados de hdparm con un disco WDC WD6401AALS-00L3B2 de 3.5" son los siguientes:

Timming cached reads: 1228 MB in 2.00 seconds = 613.75 MB/seg
Timming buffered disk reads: 332 MB in 3.17 seconds = 107.06 MB/seg

miércoles, 9 de noviembre de 2011

UNITY no funciona después de actualización automática teniendo drivers de NVIDIA

Después de una actualización automática, al reiniciar el sistema, el escritorio está visible y operativo pero se  ha iniciado con Ubuntu clásico en lugar de UNITY que era el escritorio por defecto que estaba configurado.

Para comprobar si el driver gráfico y el hardware instalado es capaz de ejecutar UNITY puedes escribir el comando:

#/usr/lib/nux/unity_support_test -p



Si no se puede iniciar el modo gráfico de ninguna forma, podemos intentar recuperar la configuración segura accediendo a un terminal desde el modo de recuperación y escribiendo:

#sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.copia
#sudo cp /etc/X11/xorg.failsafe /etc/X11/xorg.conf


Se pueden ver cuáles han sido las últimas actualizaciones en el fichero /var/log/dpkg.log

En mi caso, las únicas actualizaciones que considero que han podido cambiar la configuración establecida están relacionadas con la instalación de mesa-dri puesto que ninguna otra aparece en el fichero relacionada con el sistema gráfico.

En todo caso, solución pasó por reinstalar el driver de NVIDIA. Paso a paso:

En primer lugar, abrir una consola de texto con CTRL-ALT-2 o acceder al sistema usando el modo de recuperación y desactivar en el entorno gráfico escribiendo:

#sudo telinit 3

A continuación, eliminamos todo rastro del driver antiguo:

#sudo apt-get remove --purge nvidia-*

Configuramos las X de nuevo con:

#sudo Xorg -configure

y por último reinstalamos el driver que deberemos tener previamente descargado en algún directorio:

#sudo sh NVIDIA-Linux-x86-285-05-09

La versión del driver puede variar en función de la tarjeta gráfica o de la versión de Ubuntu.

viernes, 19 de agosto de 2011

Chromium bloqueado en pantalla completa

En Ubuntu 11.04, con dos monitores configurados con diferente resolución, el navegador Chromium se queda bloqueado en modo pantalla completa al maximizarlo en el segundo monitor.

Parece ser un fallo de Compiz debido a que Chromium carece de barra de menu, en este link se reporta el bug.

 Hay varias alternativas para poder solucionarlo. Se mencionan en el comentario #34.

Una de ellas, consiste en iniciar chromium con un directorio de configuración temporal, diferente del habitual del usuario, por ejemplo:

#mkdir /tmp/chromium
#/usr/bin/chromium-browser --user-data-dir=/tmp/chromium

Mientras está ejecutándose el navegador, abrimos otra ventana del terminal y copiamos la configuración creada por defecto de forma temporal al sitio del usuario.

#cp -R /tmp/chromium/* ~/.config/chromium

Con esto, reemplazamos la configuración del usuario que impedía cambiar el modo de pantalla completa por la configuración por defecto del navegador.

Otra posible opción consiste en crear un panel en el segundo monitor de forma tal que el navegador no se podrá mostrar a pantalla completa en este monitor.

Para crear un panel en el segundo monitor, crearlo en el primero y moverlo al segundo tal como se describe aquí.

sábado, 23 de julio de 2011

Instalar Microsoft Fingerprint reader en Ubuntu 11.04

El procedimiento seguido está descrito aquí.

Aún no tiene soporte para las aplicaciones Gnome que hacen uso de los privilegios de administrador como Synaptic o Update pero se describe un atajo para solucionarlo de forma temporal.

viernes, 22 de julio de 2011

Configurar un monitor como primario en un sistema con dos monitores

En una instalación de Ubuntu 11.04 con dos monitores, por ejemplo, al conectar un monitor externo a un portátil, se quiere configurar como primario uno de los dos monitores.

Usamos:

#lspci | grep VGA

para conocer el modelo de nuestra tarjeta gráfica

A continuación,

#xrandr --prop

para conocer el nombre asignado a cada uno de las salidas de la tarjeta gráfica. En mi caso, VGA-0, DVI-0 y S-video

Para establecer como primario el monitor conectado a la salida DVI-0, utilizamos el comando:

#xrandr --output DVI-0 --primary

Este cambio no es permanente, quiere decir, que al reiniciar el sistema gráfico, los cambios se perderán.

Una posible solución sería incluir este comando en las aplicaciones al inicio:

Sistema->Preferencias->Aplicaciones al inicio

y crear una nueva tarea al inicio donde ejecutaremos el comando.

Más info en este post.

domingo, 17 de julio de 2011

bad geometry al montar un disco usb en Ubuntu

Al conectar un disco duro usb que contiene información valiosa se muestra el siguiente mensaje al hacer dmesg:

EXT4-fs (sdc): bad geometry: block count 156282966 exceeds size of device (156282965 blocks)

Este dispositivo fue formateado cuando estaba conectado al puerto SATA y de hecho, cuando lo conecto a un puerto eSATA, la información es accesible sin problemas.

Lo cierto es que todo indica que el número real de bloques del dispositivo es 156282966, esto se puede comprobar haciendo:

#sudo dumpe2fs /dev/sdc | less

En cambio, al ejectuarlo y buscar el último inode se puede observar que el último grupo ocupa desde los bloques 156270592 hasta el 156282965, ejecutando

#sudo e2fsck -v /dev/sdc

encuentra errores: puede ser que el superbloque, o la tabla de particiones, estén corruptos!

Si tratamos de montarlo:

#sudo mount /dev/sdc /mnt/tmp

devuelve error: superbloque incorrecto

El error también se muestra cuando ejecutamos:

#sudo fsck.ext4 /dev/sdc

Devuelve:
El tamaño del sistema de ficheros (de acuerdo con el superbloque) es de 156282966 bloques
El tamaño físico del dispositivo es de 156282965 bloques

Para mostrar información del sistema de ficheros se puede utilizar mke2fs con la opción -n, esto mostrará dónde se encuentran las copias de respaldo del superbloque:

#sudo mke2fs -n /dev/sdc

Para comprobar la tabla de particiones en el dispositivo usamos:

#sudo sfdisk -l /dev/sdc

La información que muestra es la siguiente:
Disco /dev/sdc: 77825 cilindros, 255 cabezas, 63 sectores/pista
sfdisk: ERROR: el sector 0 no tiene una firma msdos
/dev/sdc: tipo de tabla de particiones no reconocido
No se ha encontrado ninguna partición

Ya sabía que el disco no tenía creada ninguna partición

Máximo permitido: 1250263725

Después de probar varias opciones, entre ellas, reescribir una nueva tabla de particiones con:

#sudo sfdisk -f /dev/sdc -O PT.save < PT.txt

donde PT.txt contiene una sola línea que indica lo siguiente:

#partition table of /dev/sdc
unit: sectors
/dev/sdc1 : start=                1, size=1250263724, Id=83

donde 1250263724 es el número de sectores menos 1, que se calcula multiplicando el número de bloques por 8.

Hecho esto, se crean cuatro particiones en el disco.

Para solucionar el problema, lo que haremos será cambiar el tamaño del sistema de ficheros para que coincida con el tamaño del dispositivo con:

#sudo resize2fs -f /dev/sdc 156282965

el nuevo valor es el indicado en dmesg como el tamaño real del dispositivo.

Información sobre el procedimiento
Información general sobre la recuperación de particiones

domingo, 22 de mayo de 2011

Instalar un nuevo disco duro en Ubuntu

Conectar el disco duro y asegurarse de que éste es detectado por la BIOS al iniciar el equipo. Para determinar cómo Ubuntu recono reconoce el disco, usamos el comando:

# sudo lshw -C disk

Busca en la lista de discos conectados el disco recién añadido y escribe el nombre del dispositivo que aparece junto a logical name, ese será el nombre por el que Ubuntu reconocerá el nuevo disco.

Particionando el disco
Elige si prefieres una única paritción o si utilizarás varias particiones. Iniciar el particionado en modo gráfico con palimpsest o:

Sistema->Administración->Utilidad de discos

Realizar el particionado haciendo click derecho sobre el dispositivo. Si se va a utilizar todo el disco, seleccionar la opción No particionar. .

A continuación formatear el volumen.

Elegir el sistema de archivos, ext3 o ext4 o fat32 si se piensa en que el disco sea compatible con Windows

A continuación, crear el punto de montaje. Normalmente en /media

# sudo mkdir /media/nevera

Realizar una copia de seguridad del fichero /etc/fstab y editarlo con:

# sudo nano /etc/fstab

 Incluir la siguiente línea:

/dev/sdb                    /media/nevera                    defaults                    0                2

El número 2 al final de la línea indica que debe realizarse una pequeña comprobación del sistema de archivos con cada inicio del sistema.

Guardar el archivo y montar el dispositivo con:

# sudo mount -a 

Reiniciar y comprobar si el dispositivo se monta correctamente.

lunes, 16 de mayo de 2011

Conocer el uid y gid de un usuario

A veces puede resultar necesario conocer el uid y gid del usuario. Utiliza el comando:

id

Devuelve información sobre el usuario actual. Si quieres conocer el uid y gid de todos los usuarios del sistema, tendrás que visualizar el fichero passwd:

cat /etc/passwd


Para copiar todo un directorio con sus subdirectorios a otro:

# cp -arvf origen destino



jueves, 7 de abril de 2011

Obtener el offset para montar un disco formateado en HP MediaVault

Este post está directamente extraído de un artículo de Steven Pritchard. Un disco montado en un HP MediaVault MV2010 tiene formato reiserfs pero éste no comienza al inicio del disco sino que el sistema de ficheros se ubica tras un offset. El procedimiento para averiguarlo consiste en localizar una cadena de texto en el dispositivo que indica el inicio. La cadena a localizar es "ReIsErFs", "ReIsEr2Fs" ó "ReIsEr3Fs".

Para localizarla se puede utilizar el programa hexedit.

# sudo apt-get install hexedit

Suponiendo que tenemos conectado el disco duro en /dev/sdb

# hexedit /dev/sdb

Pulsar el tabulador para cambiar al campo de visualización ASCII, pulsar / para buscar e introducir la cadena a buscar, en nuestro caso "ReIsErFs"

El editor hexedit indica en la última línea la posición u offset donde la cadena ha sido encontrada. Por ejemplo, en 0x2685A034. Por tanto, el inicio del superbloque estará ubicado en 0x2685A000. Ahora ya tenemos el offset donde se encuentra la cadena, el inicio del sistema de ficheros estará situado 64K antes.

Para montar el sistema de ficheros:

# losetup -o $[646291456 - 65536] /dev/loop0 /dev/sdb
# mkdir /mnt/tmp
# mount -r -t reiserfs /dev/loop0 /mnt/tmp

El sistema de ficheros quedará accesible en /mnt/tmp

Montar automáticamente un disco duro del hp media vault mv2010

Después de averiarse completamente la placa base del HP Media Vault MV2010 que utilizaba con servidor NAS, he decidido configurar una máquina emachines EL1200 con Ubuntu 10.10 como servidor NAS.

Para poder utilizar el disco duro del media vault tal cual, es decir, sin formatearlo y sin perder los datos que contenía, debemos montarlo con un offset diferente (para averiguarlo seguir el procedimiento descrito en la página de Steven Pritchard)

Así pues, los pasos a seguir son:
  1. Conectar el disco duro en un canal SATA y observar en dmesg dónde ha quedado instalado, en mi caso en /dev/sdb
  2. Averiguar el offset empleando el método descrito en el link.
  3. Crear un directorio que servirá de punto de montaje:
    #mkdir /mnt/nevera
  4. Modificar /etc/fstab para que el dispositivo se monte automáticamente, editar con:
    #sudo nano /etc/fstab
    Y añadir la siguiente línea:
/dev/sdb      /media/nevera      reiserfs      rw,loop,offset=5120006144,auto,nodev,sync,user    0     0
    los valores están separados por tabulador

Puedes comprobar que se automontará con:
#sudo mount -a

viernes, 18 de febrero de 2011

Instalar webmin en Ubuntu Maverick

La aplicación se puede descargar de http://www.webmin.com. Elegir el paquete Debian package suitable for Debian, Ubuntu or other derived Linux.

Además del paquete, tenemos que instalar previamente todas sus dependencias. Para saber que paquetes instalar, suponiendo que nos hemos bajado webmin_1.530_all ejecutamos:

#dpkg-deb -I webmin_1.530_all.deb

Mirar donde dice Depends: bash, perl, libnet-ssleay-perl, openssl, libauthen-pam-perl, libpam-runtime, libio-pty-perl, apt-show-versions

Instalar manualmente y uno a uno todos los paquetes que se indican en las dependencias:
#sudo apt-get install openssl libauthen-pam-perl libio-pty-perl libnet-ssleay-perl apt-show-versions

Tal vez obtengas un error instalando apt-show-versions, si es así, ejecuta:


#sudo apt-get install libapt-pkg-perl
#sudo apt-get -f install

A continuación, ya podemos instalar webmin con:

#sudo dpkg -i webmin_1.530_all.deb

Suponiendo que no tenemos Internet, podemos descargar los paquetes necesarios con aptitude download en un ordenador que tenga conexión a Internet y copiar todos los archivos descargados en /var/cache/apt/archives a un pendrive usb. También podemos instalarlos en el ordenador con conexión con apt-get install y los ficheros se copiaran en la misma carpeta.

Después, en el ordenador sin conexión, repetir la secuencia de instalación, una a una, de las dependencias usando el comando: #sudo dpkg-deb -i paquete.deb
y finalmente, instalar el paquete webmin.

Para comprobar que webmin funciona, escribir en el navegador: https//localhost:10000

Recuerda que Apache debe estar instalado y funcionando.

jueves, 17 de febrero de 2011

Instalar SWAT en Ubuntu Maverick 10.10

Desde el modo gráfico ir a Aplicaciones->Centro de software de Ubuntu e instalar los paquetes swat (Samba Web Administration Tool) y xinetd.

Desde el terminal:

#sudo apt-get install swat xinetd

A continuación, tenemos que editar el fichero /etc/xinetd.d/swat. Si el archivo no existe, tendremos que crearlo con el siguiente contenido:

service swat
{
      port =  901
      socket_type = stream
      wait = no
      # Activar esta opcion quitando el comentario si se
          # quiere acceso a swat solo desde el equipo local
         # donde este instalado
      # only_from   =   localhost
      user = root
      server = /usr/sbin/swat
      log_on_failure += USERID
      disable = no
}

Asegúrate de dejar un espacio a ambos lados del operador '='

Puesto que SWAT es una interfaz web, nuestro servidor debe tener instalado y funcionando un servidor web, por ejemplo Apache. Para comprobar si tienes Apache instalado:

#dpgk -l | grep apache

Para saber si está funcionando:

#service apache2 status


Para validar los cambios realizados en el fichero de configuración de SWAT, reiniciamos el proceso xinetd:

#sudo /etc/init.d/xinetd restart

Para acceder a SWAT, escribe en el navegador: http://localhost:901

El usuario root debe tener password configurada:

#sudo passwd root

Si no consigues acceder, comprueba qué está pasando en el archivo syslog:

#tail /var/log/syslog

lunes, 7 de febrero de 2011

Cambiar el sonido de la ventana de entrada

Para cambiar el sonido al inicio en Ubuntu Lucid 10.04, podemos seguir el siguiente procedimiento:

Copia el archivo de sonido que quieres que se reproduzca al inicio en la carpeta /usr/share/sounds/ubuntu/stereo/

El archivo debe tener formato y extensión .ogg

Ahora ve a Sistema->Preferencias->Aplicaciones al inicio


Busca GNOME Login Sound y, si no quieres que suene ningún sonido al inicio, deshabilita la opción, si quieres cambiar el sonido, pulsa en Editar.

En la ventana Editar programa al inicio cambia el campo Orden. Donde pone /usr/bin/canberra-gtk-play -id="desktop-login" -description="GNOME Login", sustituye "desktop-login" por el nombre del archivo de sonido que quieres que se reproduzca sin la extensión.
Pulsa Guardar.

miércoles, 2 de febrero de 2011

Actualizar un repositorio local en Ubuntu

En Ubuntu Lucid, cuando intentas actualizar un repositorio local que está alojado en un dispositivo usb, haciendo:

#sudo apt-mirror /etc/var/apt-mirror.list
 
aparece el siguiente error:

can't create /var/spool/apt-mirror/mirror directory at /usr/bin/apt-mirror line 245.

comprueba que el fichero /etc/var/apt-mirror.list establece la variable set_base correctamente y apunta al dispositivo usb donde se encuentra el repositorio, en mi caso:

############# config ##################
#
# set base_path    /var/spool/apt-mirror
set base_path   /media/usbdisk/repo

A pesar de que el fichero de configuración mirror.list está configurado correctamente, el error aparece.
Para solucionarlo, crea la estructura mínima necesaria en el directorio por defecto de apt-mirror, es decir, crea el directorio apt-mirror en /var/spool con:

#mkdir /var/spool/apt-mirror

y ya puedes actualizar.

domingo, 23 de enero de 2011

Crear un repositorio local en Ubuntu

Este procedimiento describe como crear un repositorio local de Ubuntu 10.04 en servidor para que pueda usarse en una red local para actualizar equipos clientes que no tengan conexión a Internet.

Configuración del servidor:

Editar manualmente el fichero de configuración de la red:
Para configurar una dirección IP estática:
  1. Editar como root: nano /etc/network/interfaces
  2. Buscar la línea de configuración del eth0 (es el interfaz principal del sistema). Cambiar la palabra static por dhcp
  3. En una nueva línea, presionar TAB y escribir 192.168.1.200 o cualquier otra dirección de red del rango de la red de área local que no esté siendo usada por otro ordenador.
  4. Presionar enter para ir a una línea nueva y presionar TAB para moverse por la línea
  5. Introducir la gateway 192.168.1.1 ó la gateway de la red local
  6. Presionar enter de nuevo para ir la siguiente línea y presionar TAB
  7. Introducir la máscara 255.255.255.0
  8. Presionar enter y TAB, e introducir la dirección de broadcast de la red, por ejemplo: 192.168.1.255
  9. Guardar el fichero con CTRL+O
auto lo
iface lo inet loopback
iface eth0 inet static
address 192.168.1.200
gateway 192.168.1.1
netmask 255.255.255.0
broadcast 192.168.1.255 (en algunas redes, broadcast podría no ser necesario configurarla)
  1. Introducir la siguiente línea para reiniciar el interfaz:
#ifdown eth0
#ifup eth0

La dirección de red estática se usará una vez que reinicies el interfaz.

Instalar los componentes requeridos:
Instalar Apache Web Server:
Antes comprobamos si está o no instalado con:
#dpkg -l | grep apache
si no está instalado este comando no devolverá nada.
Para saber si está en ejecución:
/etc/init.d/apache status

Instalar Apache si no está instalado:

#apt-get install apache2

Apache se quedará instalado y accesible a través del navegador. Escribir la dirección del bucle local en la barra de direcciones del navegador para comprobar que está funcionando:

Mostrará esto:
It works!!!
y comprobarlo también con la dirección IP estática recién configurada: http://192.168.1.200
El directorio público de Apache se queda configurado en : /var/www
Vamos a crear el repositorio espejo en ese directorio.

Instalar los archivos para crear el repositorio con:

#apt-get install apt-mirror

Las fuentes y los paquetes que se descargarán están definidos en el fichero: /etc/apt/mirror.list puedes añadir fuentes para disponer de más paquetes en tu repositorio. Por defecto, se copiarán a tu repositorio los siguientes sets: main, security y updates.
También en este archivo está definido dónde se descargarán los paquetes mediante la variable base_path. Por defecto, esta variable está definida de la siguiente forma:

set base_path /var/spool/apt-mirror

Si queremos que todos los paquetes se descarguen a un disco usb, primero debemos tenerlo montado y luego, debemos modificar la variable de la siguiente forma:

set base_path /media/usbdisk/repo

Ejecuta ahora apt-mirror, tardará bastante en bajarse todos los paquetes y archivos. Puede ocurrir el siguiente error:

apt-mirror: can't open index in proceed_index_gz at /usr/bin/apt-mirror

observa si en el path al fichero que no puede descargar se encuentran dos slash(//) si ese es el error, tendrás que editar /usr/bin/apt-mirror y localizar donde aparece:

system(“gunzip < $path/$index.gz > $path/$index”);

y sustituirla por:

system(“gunzip < $path$index.gz > $path/$index”);

Si cancelas con CTRL-C la descarga de los paquetes, es posible reanudar la ejecución de apt-mirror y continuará por donde estaba descargando.
A veces, no es posible reiniciar la ejecución de apt-mirror porque antes debe borrarse el fichero:

/var/spool/apt-mirror/var/apt-mirror.lock

Bórralo manualmente si no puedes reiniciar apt-mirror

Una vez descargado completamente todo el repositorio, tenemos dos opciones, utilizar un disco duro externo usb para actualizar los sistemas clientes que queramos o bien, utilizar un servidor en la red local para servir los archivos necesarios para la actualización.
Todo el repositorio se habrá descargado en /var/spool/apt-mirror. Hay que enlazar el directorio público de Apache con el repositorio, así que lo mejor es usar un enlace simbólico.
Si tenemos descargado el repositorio en un dispositivo usb tenemos un problema: el dispositivo usb debe estar montado.

Para montarlo, seguimos el siguiente procedimiento:
Si ya estaba montado previamente, lo desmontamos con: umount /media/BA.... (BA.... es el UUID del dispositivo). Podemos saber cual es su UUID mirando en el archivo /etc/fstab o con el comando mount cuando el dispositivo está montado o con el comando blkid.

Una vez desmontado, lo volvemos a montar (ojo, no desconectar el dispositivo después de desmontarlo pues automount lo volverá a montar cuando lo conectemos)

Para montar el dispositivo usb con los permisos que nos interesa, primero tendremos que crear un punto de montaje:

#mkdir /media/usbdisk

Ahora lo montamos:

#mount -t ntfs /dev/sdb1 /media/usbdisk -o uid=1000,gid=100,utf8,dmask=022,fmask=133

dmask=022 hace los directorios navegables a través de Apache
fmask=133 hace que los ficheros puedan leerse desde Apache

Ahora es cuando tenemos que crear el enlace simbólico que sustituya las peticiones al directorio público de Apache, por accesos al directorio donde se encuentra el repositorio:

#ln -s /media/usbdisk/repo/mirror/archive.ubuntu.com/ubuntu /var/www/ubuntu

al listar el directorio público de Apache:

#ls /var/www/ubuntu

debe mostrarse: dists y pool

También deben estar accesibles si hacemos: http://localhost/ubuntu desde nuestro navegador.

Desde cualquier punto de tu red local también debe estar disponible, para probarlo, sustituye localhost por la dirección IP del servidor Apache que has configurado.
El repositorio local está creado. Solo falta configurar los clientes para que éstos puedan acceder a la descarga de paquetes.

Configurar los clientes para acceder a un repositorio local

Vamos a configurar un ordenador cliente para descargar software y actualizaciones desde un repositorio local cuando Internet no esté disponible.
Una vez comprobado que el repositorio está disponible, debemos configurar los clientes para que instalen el software desde el nuevo repositorio local:
Lo primero es hacer una copia de seguridad del fichero actual de orígenes de software:
#cp /etc/apt/sources.list /etc/apt/sources.back

Editamos el fichero actual de orígenes del software:

#nano /etc/apt/sources.list

En las líneas no comentadas del fichero (las que no llevan antepuesto #), debemos modificar el origen del software. En mi fichero las líneas aparecen así:

deb http://es.archive.ubuntu.com/ubuntu/ lucid main restricted
deb-src http://es.archive.ubuntu.com/ubuntu/ lucid main restricted
deb http://es.archive.ubuntu.com/ubuntu/ lucid-updates main restricted
deb-src http://es.archive.ubuntu.com/ubuntu/ lucid-updates main restricted
deb http://es.archive.ubuntu.com/ubuntu/ lucid universe
deb-src http://es.archive.ubuntu.com/ubuntu/ lucid universe
deb http://es.archive.ubuntu.com/ubuntu/ lucid-updates universe
deb-src http://es.archive.ubuntu.com/ubuntu/ lucid-updates universe
deb http://es.archive.ubuntu.com/ubuntu/ lucid multiverse
deb-src http://es.archive.ubuntu.com/ubuntu/ lucid multiverse
deb http://es.archive.ubuntu.com/ubuntu/ lucid-updates multiverse
deb-src http://es.archive.ubuntu.com/ubuntu/ lucid-updates multiverse
deb http://security.ubuntu.com/ubuntu lucid-security main restricted
deb-src http://security.ubuntu.com/ubuntu lucid-security main restricted
deb http://security.ubuntu.com/ubuntu lucid-security universe
deb-src http://security.ubuntu.com/ubuntu lucid-security universe
deb http://security.ubuntu.com/ubuntu lucid-security multiverse
deb-src http://security.ubuntu.com/ubuntu lucid-security multiverse

Y las sustituyo por estas otras:

deb http://192.168.249.200/ubuntu/ lucid main restricted
deb-src http://192.168.249.200/ubuntu/ lucid main restricted

deb http://192.168.249.200/ubuntu/ lucid-updates main restricted
deb-src http://192.168.249.200/ubuntu/ lucid-updates main restricted

deb http://192.168.249.200/ubuntu/ lucid universe
deb-src http://192.168.249.200/ubuntu/ lucid universe
deb http://192.168.249.200/ubuntu/ lucid-updates universe
deb-src http://192.168.249.200/ubuntu/ lucid-updates universe

deb http://192.168.249.200/ubuntu/ lucid multiverse
deb-src http://192.168.249.200/ubuntu/ lucid multiverse
deb http://192.168.249.200/ubuntu/ lucid-updates multiverse
deb-src http://192.168.249.200/ubuntu/ lucid-updates multiverse

deb http:///192.168.249.200/ubuntu lucid-security main restricted
deb-src http:///192.168.249.200/ubuntu lucid-security main restricted
deb http:///192.168.249.200/ubuntu lucid-security universe
deb-src http:///192.168.249.200/ubuntu lucid-security universe
deb http:///192.168.249.200/ubuntu lucid-security multiverse
deb-src http:///192.168.249.200/ubuntu lucid-security multiverse
Puesto que mi servidor web Apache se encuentra configurado con la IP: 192.168.249.200

A continuación, guardar el fichero pulsando Alt-O y ejecutar la actualización en el cliente:

#sudo apt-get clean

y

#sudo apt-get update

También podemos utilizar nuestro repositorio para instalar cualquier paquete que deseemos instalar:

#sudo apt-get install cowsay

Si queremos que nuestro repositorio se mantenga actualizado, debemos ejecutar diariamente en el servidor:

#sudo apt-mirror