martes, 24 de mayo de 2011

Recuperar GRUB 2

El método que explico aquí esta bien detallado en los foros oficiales de Ubuntu. Hay otros mecanismos para recuperar Grub 2. Para aplicar el que se desarrolla en este post necesitaremos de alguna distribución Live y que ya venga con grub2.

Paso 1:
Arrancamos la computadora desde el Live CD, o Live USB, abrimos una terminal y tecleamos el siguiente comando para ver las particiones de nuestro disco duro:
$ sudo fdisk -l
En mi caso yo obtuve la siguiente salida:
Disco /dev/sda: 120.0 GB, 120034123776 bytes
255 cabezas, 63 sectores/pista, 14593 cilindros
Unidades = cilindros de 16065 * 512 = 8225280 bytes
Identificador de disco: 0xb1fab1fa

Dispositivo Inicio Comienzo Fin Bloques Id Sistema
/dev/sda1 1 1306 10490413+ 7 HPFS/NTFS
/dev/sda2 1307 14593 106727827+ 5 Extendida
/dev/sda5 1307 3917 20972826 7 HPFS/NTFS
/dev/sda6 3918 4160 1951866 82 Linux swap
/dev/sda7 * 4161 6835 21486906 83 Linux
/dev/sda8 6836 14593 62316103+ 83 Linux


Paso 2:
Montamos la partición "boot" de nuestro sistema GNU/Linux, en mi caso como se puede apreciar tengo 5 particiones (+ la extendida).

Explico el porqué: Recuerde que solo se pueden tener 4 particiones primarias y que una partición extendida cuenta como una primaria, y una partición extendida puede albergar n cantidad de unidades lógicas. Voy a llamar "Slot" a cada uno de los espacios disponibles para crear una partición primaria, entonces...

Slot 1Partición primaria tipo NTFS (/dev/sda1)
Slot 2Partición extendida (/dev/sda2)
Slot 3Si hubiera existido sería la /dev/sda3 **
Slot 4Si hubiera existido sería la /dev/sda4 **
Lógica 1Partición tipo NTFS (/dev/sda5) Lógica 2
Lógica 2Partición tipo Swap (/dev/sda6)
Lógica 3Partición tipo Linux (/dev/sda7)
Lógica 4Partición tipo Linux (/dev/sda8)

** Después de una extendida no pueden haber más particiones primarias.

Como se puede observar en la salida anterior la partición /dev/sda7 es mi partición activa (esta marcada como booteable), eso significa el asterisco. Esa partición alberga mi sistema /boot

Ya que reconocimos la partición "boot" la montamos con el siguiente comando:
$ sudo mount /dev/sda7 /mnt

Además es necesario tener acceso a los dispositivos cuando hagamos el "chroot" que todavía no explico necesitamos montar en modo vinculado lo siguiente, así:
$ sudo mount --bind /dev /mnt/dev
$ sudo mount --bind /dev/pts /mnt/dev/pts
$ sudo mount --bind /proc /mnt/proc
$ sudo mount --bind /sys /mnt/sys


Paso 3:
Ahora si vamos a ejecutar el "chroot" para cambiar nuestra actual raíz del sistema.
$ sudo chroot /mnt

Instalamos el Grub en el MBR (Master Boot Record) de nuestro disco duro con el siguiente comando:
$ sudo su
# grub-install --recheck /dev/sda


Por ultimo para que Grub reconozca los sistemas operativos instalados en el disco duro y cree las entradas en el menu de booteo tecleamos el siguiente comando:
# update-grub2

viernes, 20 de mayo de 2011

Escanear IP activas con nmap en UBUNTU


nmap es un Open Source que sirve para exploración y la auditoria de redes.  Esta herramienta puede se utilizada con diversos fines.

En este articulo explicaré específicamente como utilizar nmap para buscar todas las IP que respondan a un ping en nuestra red local.

Paso 1: Instalar nmap
Este paquete es parte de Debian y derivadas. Por lo que si utilizas algunas de estas distros para instalarlo basta con digitar el siguiente comando en una terminal.
$ sudo apt-get install nmap
Paso 2: Escanear la red local
$ nmap -v -sP 192.168.1.0/24 | grep down -v
Donde 192.168.1.0 corresponde a nuestra red local y 24 a la mascara de red 255.255.255.0 (mascara de 24 bits).
El parámetro "grep down -v" procesa la salida del comando namp y elimina todas las lineas que contienen la palabra "down" (o sea las IP que no respondieron).
Paso 3: A continuación un ejemplo de respuesta del comando anterior
$ nmap -v -sP 192.168.10.0/24 | grep down -v
Starting Nmap 5.00 ( http://nmap.org ) at 2011-05-21 00:33 CST
NSE: Loaded 0 scripts for scanning.
Initiating Ping Scan at 00:33
Scanning 256 hosts [2 ports/host]
Completed Ping Scan at 00:33, 2.40s elapsed (256 total hosts)
Initiating Parallel DNS resolution of 256 hosts. at 00:33
Completed Parallel DNS resolution of 256 hosts. at 00:33, 0.01s elapsed
Host pfsense (192.168.10.1) is up (0.0020s latency).
Host marty (192.168.10.10) is up (0.000092s latency).
Host melman (192.168.10.11) is up (0.000082s latency).

Nmap done: 256 IP addresses (3 hosts up) scanned in 3.12 seconds


He resaltado en negrita las IP que encontró.

domingo, 8 de mayo de 2011

¿Cómo renombrar una llave maya en Ubuntu?

La memorias USB o llaves maya (conocidas así en Costa Rica), son dispositivos de almacenamiento masivo que se venden listas para usar, esto quiere decir que ya vienen particionadas y formateadas.

Para asegurarse la compatibilidad con una amplia gama de dispositivos lectores y diferentes sistemas operativos los fabricantes se decantan generalmente por venderlas formateadas con el sistema de archivos FAT32.

Ubuntu soporta nativamente operaciones de lectura/escritura sobre este sistema de archivos pero para algunas tareas que nacieron en el antiguo MS-DOS se necesita instalar un paquete adicional.  Es pequeño y se instala sin dificultad.

Instalando mtools
Para instalarlo basta con introducir el siguiente comando:
$ sudo apt-get install mtools
Para configurar mtools, debemos copiar el archivo de preferencias a nuestro perfil local, con el siguiente comando:
$ cp /etc/mtools.conf ~/.mtoolsrc
Ahora hay que editar la copia local de mtoolsrc e introducir una nueva preferencia para evitar que en su uso nos presente un molesto error, en mi caso suelo usar el edito "nano" pero si lo desea puede usar cualquier otro.
$ sudo nano ~/.mtoolsrc
La linea que hay que agregar es la siguiente (lo puede hacer al inicio o final del archivo)
mtools_skip_check=1
Renombrando la memoria USB (llave maya)
Conecte el dispositivo. Note que el sistema lo montara automáticamente con el nombre actual. Ahora con el siguiente comando podremos verificar cuál es el identificador que el sistema le asigno a este dispositivo:
$ mount | grep KINGSTON
/dev/sdg1 on /media/DATA-MIZAQ type vfat (rw,nosuid,nodev,uhelper=devkit,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,flush)

Dos cosas: lo que está en negrita fue el comando digitado, y "KINGSTON" es el nombre actual del dispositivo (en su caso reemplacelo por el que corresponda), lo marqué en rojo es lo que nos interesa (en su caso el identificador puede ser otro como sdb1, sdc1, sde1, etc, tome nota).
Al fin, para renombrar la etiqueta de volumen utilizamos el siguiente comando:
$ sudo mlabel -i /dev/sdg1 ::NUEVO_NOMBRE
Donde "sdg1" corresponde al dispositivo y "NUEVO_NOMBRE" corresponde a la nueva etiqueta de volumen.

Ver la etiqueta de volumen de un dispositvo USB (FAT32)
Por último para verificar que el cambio se haya aplicado correctamente podemos utilizar el siguiente comando para ver la actual etiqueta de volumen del dispositivo.
$ sudo mlabel -i /dev/sdg1 -s ::
Volume label is Mizaq (abbr=MIZAQ )

Donde una vez más "sdg1" corresponde al dispositivo al que deseamos verle la etiqueta de volumen.

Artículos relacionados:
¿Cómo particionar una llave maya?
¿Cómo formatear una llave maya en Linux?

¿Cómo particionar una llave maya?

Advertencia:
Este articulo explica paso a paso como realizar el particionado de un dispositivo USB, sin embargo un usuario poco experimentado o descuidado podría terminar eliminando las particiones de alguno de sus discos duros internos, por favor tome precauciones.

Averiguar cuál es el identificador del dispositivo USB a particionar
Con el siguiente comando obtendremos las tablas de partición de los dispositivos conectados, sera fácil reconocer cual representa la llave maya porque normalmente solo tiene una partición y aparece al final.
$ sudo fdisk -l

En el caso mio la parte de la salida del comando anterior que me interasa se ve así:
/dev/sdg1 * 1 1024 3967969 b W95 FAT32
Como se puede apreciar en la salida anterior mi dispositivo USB tiene en este momento el identificar de unidad de disco sdg1 y tiene una capacidad de 4063 MB.

El Particionado
Vamos a utilizar una herramienta en modo de texto, que igual que los comandos anteriores se ejecuta en una terminal.
$ sudo fdisk /dev/sdg
Donde "sdg" es el indentificador de la llave maya, que averiguamos en el paso anterior. Observe que en esta ocación se eliminó el 1 del identificador.

Esta salida nos indica que ya estamos en fdisk
Orden (m para obtener ayuda):

Si lo desea puede teclear "m" y presionar enter para conocer todos los comandos disponibles.
Orden (m para obtener ayuda): m
Orden Acción
a Conmuta el indicador de iniciable
b Modifica la etiqueta de disco bsd
c Conmuta el indicador de compatibilidad con DOS
d Suprime una partición
l Lista los tipos de particiones conocidos
m Imprime este menú
n Añade una nueva partición
o Crea una nueva tabla de particiones DOS vacía
p Imprime la tabla de particiones
q Sale sin guardar los cambios
s Crea una nueva etiqueta de disco Sun
t Cambia el identificador de sistema de una partición
u Cambia las unidades de visualización/entrada
v Verifica la tabla de particiones
w Escribe la tabla en el disco y sale
x Funciones adicionales (sólo para usuarios avanzados)

Orden (m para obtener ayuda):

Con el comando "p" vemos la actual tabla de particiones del dispositivo
Disco /dev/sdg: 4063 MB, 4063232000 bytes
125 cabezas, 62 sectores/pista, 1024 cilindros
Unidades = cilindros de 7750 * 512 = 3968000 bytes
Identificador de disco: 0x00000000

Dispositivo Inicio Comienzo Fin Bloques Id Sistema
/dev/sdg1 * 1 1024 3967969 b W95 FAT32

Con el comando "d" eliminamos una partición
Orden (m para obtener ayuda): d
Se ha seleccionado la partición 1

Orden (m para obtener ayuda):

Con el comando "n" creamos una nueva partición, para terminar de desarrollar este tutorial vamos a crear dos particiones una tipo Linux y Otro tipo Windows.

Así creamos la primera: (Lo que aparece en negrita son mis comandos)
Orden (m para obtener ayuda): n
Acción de la orden
e Partición extendida
p Partición primaria (1-4)
p
Número de partición (1-4): 1
Primer cilindro (1-1024, valor predeterminado 1): 1
Último cilindro, +cilindros o +tamaño{K,M,G} (1-1024, valor predeterminado 1024): 512

Orden (m para obtener ayuda):
Lo que hice fue crear una nueva partición primaria, en el slot 1, que abarca desde el cilindro 1 al 512.  El tipo de sistema de archivos que se que se asigno hasta este momento a esa partición es "Linux" que es el valor por defecto.

Ahora la segunda: (Lo que aparece en negrita son mis comandos)
Orden (m para obtener ayuda): n
Acción de la orden
e Partición extendida
p Partición primaria (1-4)
p
Número de partición (1-4): 2
Primer cilindro (513-1024, valor predeterminado 513): [presione enter para aceptar]
Se está utilizando el valor predeterminado 513
Último cilindro, +cilindros o +tamaño{K,M,G} (513-1024, valor predeterminado 1024): [presione enter para aceptar]
Se está utilizando el valor predeterminado 1024

Orden (m para obtener ayuda):
Lo que hice fue crear una nueva partición primaria, en el slot 2, que abarca desde el cilindro 513 al 1024. Tanto en el valor del cilindro inicial como en valor de cilindro final acepté los valores predeterminados que me sugirieron usar todo el espacio que había libre.  El tipo de sistema de archivos que se asigno hasta este momento a esa partición es "Linux" que es el valor por defecto.

Con el comando "p" vemos con va la tabla de particiones
Orden (m para obtener ayuda): p

Disco /dev/sdg: 4063 MB, 4063232000 bytes
125 cabezas, 62 sectores/pista, 1024 cilindros
Unidades = cilindros de 7750 * 512 = 3968000 bytes
Identificador de disco: 0x00000000

Dispositivo Inicio Comienzo Fin Bloques Id Sistema
/dev/sdg1 1 512 1983969 83 Linux
/dev/sdg2 513 1024 1984000 83 Linux

Ahora vamos a cambiarle el tipo a la segunda partición, para que está pueda ser utilizable en sistemas operativos tipo Windows. Recalco que Linux si reconocerá perfectamente ambas particiones.
Orden (m para obtener ayuda): t
Número de partición (1-4): 2
Código hexadecimal (escriba L para ver los códigos): L
{Por ser muy larga no muestro aquí la salida de L}
Código hexadecimal (escriba L para ver los códigos): b
Se ha cambiado el tipo de sistema de la partición 2 por b (W95 FAT32)

Volvamos a ver la tabla de particiones
Orden (m para obtener ayuda): p

Disco /dev/sdg: 4063 MB, 4063232000 bytes
125 cabezas, 62 sectores/pista, 1024 cilindros
Unidades = cilindros de 7750 * 512 = 3968000 bytes
Identificador de disco: 0x00000000

Dispositivo Inicio Comienzo Fin Bloques Id Sistema
/dev/sdg1 1 512 1983969 83 Linux
/dev/sdg2 513 1024 1984000 b W95 FAT32

Guardar los cambios
Orden (m para obtener ayuda): w
¡Se ha modificado la tabla de particiones!

Llamando a ioctl() para volver a leer la tabla de particiones.

ATENCIÓN: Si ha creado o modificado alguna de las
particiones DOS 6.x, consulte la página man de fdisk
para ver información adicional.
Se están sincronizando los discos.

Y listo, ahora tenemos una llave maya con dos particiones, cada una con un sistema de archivos diferente. Los único es que todavía no son utilizables porque falta formatearlas.

Formateando la partición 1, sistema de archivos Linux
$ sudo mkfs.ext3 -m 0 -b 4096 -L Linux /dev/sdg1
mke2fs 1.41.9 (22-Aug-2009)
Etiqueta del sistema de ficheros=Linux
Tipo de SO: Linux
Tamaño del bloque=4096 (bitácora=2)
Tamaño del fragmento=4096 (bitácora=2)
124160 nodos-i, 495992 bloques
0 bloques (0.00%) reservados para el superusuario
Primer bloque de datos=0
Número máximo de bloques del sistema de ficheros=511705088
16 bloque de grupos
32768 bloques por grupo, 32768 fragmentos por grupo
7760 nodos-i por grupo
Respaldo del superbloque guardado en los bloques:
32768, 98304, 163840, 229376, 294912

Escribiendo las tablas de nodos-i: hecho
Creating journal (8192 blocks): hecho
Escribiendo superbloques y la información contable del sistema de ficheros: hecho

Este sistema de ficheros se revisará automáticamente cada 21 montajes o
180 días, lo que suceda primero. Utilice tune2fs -c o -i para cambiarlo.

Formateando la partición 2, sistema de archivos Windows
$ sudo mkfs.vfat -n WINDOWS /dev/sdg2
mkfs.vfat 3.0.3 (18 May 2009)

Ahora solo queda desconectar y volver a conectar el dispositivo para comenzar a utilizar las nuevas particiones.

¿Cómo formatear una llave maya en Linux?


Advertencia:
Este articulo explica paso a paso como realizar el formateo de un dispositivo USB, sin embargo un usuario poco experimentado o descuidado podría terminar formateando alguno de sus discos duros internos, por favor tome precauciones.

Manos a la obra:
Una de las preguntas que un nuevo usuario de GNU/Linux se hará tarde o temprano es: ¿Y aquí como hago para formatear mi llave maya (flash memory)?

Como en la mayoría de mis artículos, prefiero explicar como se hacer desde la terminal.  Pero antes aclarar que la mayoría de memorias usb (llave maya) utilizan el sistema de archivos FAT32 de fábrica. Si lo que deseamos es simplemente formatear para borrar los datos bastaran los siguientes pasos:

Averiguar cuál es el identificador del dispositivo USB a formatear
Con el siguiente comando obtendremos las tablas de partición de los dispositivos conectados, sera fácil reconocer cual representa la llave maya porque normalmente solo tiene una partición y aparece al final. (En este paso les recuerdo que no es recomendable tener conectados otros dispositivos USB para evitar que en un descuido lo borremos accidentalmente).
$ sudo fdisk -l

En el caso mio la parte de la salida del comando anterior que me interasa se ve así:
Disco /dev/sdg: 4063 MB, 4063232000 bytes
125 cabezas, 62 sectores/pista, 1024 cilindros
Unidades = cilindros de 7750 * 512 = 3968000 bytes
Identificador de disco: 0x00000000

Dispositivo Inicio Comienzo Fin Bloques Id Sistema
/dev/sdg1 * 1 1024 3967969 b W95 FAT32


Como se puede apreciar en la salida anterior mi dispositivo USB tiene en este momento el identificar de unidad de disco sdg1 y tiene una capacidad de 4063 MB, esto último solo me sirve para corroborar que estoy ante el dispositivo que me interesa formatear.

Formatear el dispositivo
Entonce el comando para formatear es:
$ sudo mkfs.vfat -n ETIQUETA /dev/sdg1

Donde "ETIQUETA" es la etiqueta de volumen (el nombre) que desea asignarle a la unidad, y "sdg1" corresponde a identificador que descubrimos en el paso anterior. (Presta mucho cuidado, en su caso puede ser en la unidad tenga otro identificador, este no es fijo para cada dispositivo, cada vez que usted conecta un dispositivo de almacenamiento masivo el sistema le asignará el siguiente identificar libre).

Es importante aclarar que el volumen debe estar desmontado, de lo contrario devolverá el siguiente error:
mkfs.vfat 3.0.3 (18 May 2009)
mkfs.vfat: /dev/sdg1 contains a mounted file system.


En caso de recibir el error anterior entonces procedemos a desmontar el volumen y a repetir el comando, de la siguiente manera:
$ sudo umount /dev/sdg1
$ sudo mkfs.vfat -n ETIQUETA /dev/sdg1


Artículos relacionados:
¿Cómo particionar una llave maya?
¿Cómo renombrar una llave maya en Linux?
Mizaq's Blog

Entradas populares