domingo, 27 de mayo de 2012

Mover /home a otro disco por consola sin reiniciar en Ubuntu y Debian

Últimamente estoy metido en una encrucijada sobre la que no definí que voy a hacer. Por un lado noto que actualizo el blog cada vez menos, al tiempo que, contradictoriamente, tengo cada vez mas apuntes con tips útiles y no tanto... El tema principal es que cada entrada me lleva mucho tiempo, en general no menos de 2 horas, y la verdad es que la mayoría de las veces no tengo o no quiero dedicar esa cantidad de tiempo para una entrada. A su vez, el tema del tiempo se podría bajar si las entradas fuesen menos detalladas, simplemente diciendo la solución al problema sin mayores explicaciones. Ésta no fue nunca la idea del blog, pero también es cierto que la gran mayoría de la gente que busca soluciones a determinados problemas a traves de google solo apunta a encontrar "esa linea" que soluciona el problema limitándose a copiar y pegar y que funcione... Desde esta perspectiva, las entradas serían mas cortas, me llevarían menos tiempo y seguramente la actualización sería mas frecuente que una vez al mes... Pero desde otra perspectiva, convertiría al blog en uno de los tantos que hacen miles de entradas para copy and paste sin entrar en ningún detalle.
Aún no lo decidí, pero creo que lo mejor estaría en establecer un punto medio, se irán dando cuenta... supongo (?).
Bueno, vayamos a lo nuestro... Situación, me compro un disco porque el mio está a punto de explotar, y quiero mover mi /home al disco nuevo para liberar espacio en el viejo y de paso tenerlo aparte por si algún día sucede algo con el sistema operativo. ¿Y como hago? He aquí los pasos a seguir:

1- Agrego el disco a la PC, lógicamente... Esto es algo que no voy a explicar, pero la conexión de un disco básicamente consiste en conectar 2 cables, uno de datos y otro de energía (que viene de la fuente). Básicamente es eso. Una vez colocado el disco enciendo la PC.

2- Entramos a nuestro Ubuntu, Debian o cualquier distro de Linux (debería funcionar en cualquier distro, aunque yo particularmente lo probé solo en Ubuntu y Debian). Abrimos una terminal y nos fijamos que nos haya reconocido el disco. Para ello escribimos:

sudo fdisk -l

Este comando nos dará un listado de todos los discos de nuestra PC. En mi caso, el disco nuevo tomó el nombre de /dev/sdc.

3- El paso que sigue es crear una partición en el nuevo disco (Repito: en mi caso es sdc, ustedes van a tener que cambiar eso por la letra que les haya asignado a su disco):

sudo fdisk /dev/sdc

Esto nos va a abrir un asistente para crear la partición. Si presionamos "m" podremos ver un listado con distintas opciones para utilizar. En nuestro caso la primer opcion será "n" (crea una partición).
Luego nos pregunta si deseamos que la partición sea primaria o extendida. Elegimos primaria "p". En el número de partición elegimos 1. Y las 2 opciones que siguen serán para elegir el tamaño de la partición, o sea, si queremos destinar solo una parte del disco para el nuevo /home o si queremos destinar todo el disco. En nuestro caso vamos a dedicar todo el disco, con lo cual presionamos "ENTER" (Fijense que toma el primer cilindro como predeterminado) y luego presionamos "ENTER" de nuevo (Fijense que toma el ultimo cilindro como predeterminado, o sea, que tomamos todo el disco). En el caso de que no quisieran destinar todo el disco pueden presionar "ENTER"en la primer opción y luego elegir que cantidad de disco quieren brindarle a /home. Por ejemplo si quisieran darle 10GB, en la segunda opción en lugar de presionar "ENTER" deberían escribir +10240MB (que son 10GB convertidos a MB).
Por último escriben "w" para grabar todos los cambios, no se olviden de hacer esto porque sino vamos a tener el disco sin particionar!
Resumiendo, pulsamos las siguientes opciones:

n - p - 1 - enter - enter - w

Para los que le dieron una particion de 10GB fue así:

n - p - 1 - enter - +10240MB - w

4- El próximo paso es crear el sistema de archivos sobre la partición que creamos. Utilizaremos el sistema de archivos ext4:

sudo mkfs -t ext4 /dev/sdc1

Tengan en cuenta que mi disco era sdc, pero cuando creamos la partición primaria le asignamos la número 1, por eso ahora no es mas sdc sino sdc1.

5- Verificamos que el sistema de archivos de la partición sea efectivamente ext4:

sudo file -sL /dev/sdc1

/dev/sdc1: Linux rev 1.0 ext4 filesystem data, UUID=afc58f78-0464-43a1-9898-7d71b06d8753 (extents) (large files) (huge files)

6- El paso que sigue es modificar /etc/fstab para que el /home se monte en el disco nuevo cuando reiniciemos la PC (en este caso no va a hacer falta reiniciar, pero se supone que en algún momento vamos a hacer ésto y si no realizamos ésta modificación no se montará el /home):

sudo nano /etc/fstab

Y al final del archivo agregamos ésta línea:

/dev/sdc1      /home          ext4      defaults        0      0

Guardamos con ctrl + o y salimos con ctrl + x

7- Ahora creamos una carpeta /home temporal en /mnt para copiar todo el contenido de nuestro /home actual ahí:

sudo mkdir /mnt/home

8- Montamos el disco nuevo en el directorio temporal para copiar los archivos:

sudo mount -t ext4 /dev/sdc1 /mnt/home

9- Copiamos el contenido de nuestro /home actual al /home del nuevo disco recursivamente y preservando los permisos de los archivos:

sudo cp -Rp /home/* /mnt/home

10- Montamos el /home del nuevo disco:

sudo mount /home

11- Desmontamos el /home temporal:

sudo umount /mnt/home

Listo. Ya tenemos nuestro /home en el disco nuevo =)

Antes tenía mi /home en /dev/sdb y no era feliz
Ahora lo tengo en /dev/sdc1 y soy feliz
Espero que les haya servido!

martes, 15 de mayo de 2012

Instalar driver Wifi RTL8191SEvB en Debian Testing 64 bits

Hola mis ardillas, como andan? No hace falta que me contesten ¬¬
Les cuento que después de algunos días (horas, minutos) pude instalar de manera muy simple el driver de mi placa Wifi. Pensé que sería mucho mas tedioso ya que al instalar Debian Testing, ya en la instalación no parecía reconocerla, lo dejé, la conecté por cable y realicé la instalación de ésta forma.
Sin profundizar demasiado realicé búsquedas superficiales sin éxito, o mejor dicho, tutoriales complejos donde la gente que los había seguido no había obtenido ningún resultado.
Finalmente, hoy hice otra búsqueda y me encontré con este post (nada mas ni nada menos que en la Wiki oficial) donde está todo servido en bandeja. Paso a comentar los pasos que seguí:

Lo primero que hice fue fijarme que placa wifi tenía con éste comando:

lspci -nn | grep Network

Obteniendo el siguiente resultado:

03:00.0 Network controller [0280]: Realtek Semiconductor Co., Ltd. RTL8191SEvB Wireless LAN Controller [10ec:8172] (rev 10)

Agregué a /etc/apt/sources.list el siguiente repositorio "non-free" (¿hereje?):

deb http://ftp.us.debian.org/debian wheezy main contrib non-free

Actualicé los repositorios:

sudo aptitude update

Instalé los paquetes firmware-realtek y wireless-tools:

sudo aptitude install firmware-realtek wireless-tools

Descargué los drivers en mi /home:

wget ftp://ftp.dlink.com/Wireless/dwa130_revC/Drivers/dwa130_revC_drivers_linux_006.zip

Los descomprimí:

unzip dwa130_revC_drivers_linux_006.zip

Cree una carpeta en la cual mi Debian pueda encontrar los drivers:

sudo mkdir -p /usr/local/lib/firmware/RTL8192U

Y finalmente los copié ahí:

sudo cp rtl8192u_linux_2.6.0006.1031.2008/firmware/RTL8192U/* /usr/local/lib/firmware/RTL8192U

Reinicié... y tengo internet vía Wifi :D


Esto fue realizado en GNU/Linux Debian Testing (Wheezy) de 64bits con Kernel Linux 3.2.0-2-amd64, y el modelo de la placa Wifi es el mencionado mas arriba: RTL8191SEvB. Aunque es posible que este mini tutorial funcione con otros modelos parecidos de placas como dicen en el link.

Si esto no llegara a funcionar mi plan B era descargar el driver de aquí, descomprimirlo y desde la carpeta en la que lo descomprimimos compilarlo e instalarlo con sudo make y sudo make install, reiniciar y ver que pasa...

Espero que les haya servido!

miércoles, 2 de mayo de 2012

Recuperar GRUB 2 desde Live CD en Ubuntu 10.10

Hola mis ardillas, nuevamente por aquí...
Esta entrada viene a raíz de que rompí mi Grub y necesité restaurarlo :)
Resulta que tengo una máquina con Windows 7 y Ubuntu 10.10 y decidí crear otra partición para Debian Testing. Redimensioné la partición de Ubuntu con Gparted, todo bien. Luego desde Windows 7 cree la partición para Debian con Partition Wizard. Reinicié, y como me intuía, se rompió (rompí) el Grub. O sea, encendía la máquina y tenía una bonita pantalla negra que decía:

Grub rescue>

Como corresponde (?), googleé y llegué a una entrada de Guía Ubuntu en la cual explican como hacerlo a través de un Cd Live (pueden ver la entrada ya que existen otras opciones). He aquí los pasos:

1- Bootear desde un CD Live (en mi caso uno de Ubuntu 10.04). La única condición a tener en cuenta es que sea de una distribución de Linux que utilice Grub 2 (no Lilo ni Grub 1). En el caso de un Cd de Ubuntu debería ser de la versión 9.10 en adelante.

2-  Una vez que nos carga el Sistema Operativo abrimos una consola y escribimos lo siguiente:

sudo fdisk -l

Esto nos dará un listado de todas nuestras particiones. Verán algo así:


En mi caso, sda1 corresponde al sector de arranque, donde se carga justamente el Grub. En sda2 tengo instalado el Windows, sda3 corresponde a una partición para datos, sda4 es una partición extendida que se compone de sda5, partición reservada para Debian (aún como NTFS), sda6 partición para la swap (o área de intercambio), sda7 donde se encuentra instalado Ubuntu y sda8 partición para mi home.

3- Montamos la partición donde tenemos instalado Ubuntu (tener en cuenta que la X debemos reemplazarla por el número correspondiente a la partición donde lo tenemos instalado. Por ejemplo, en mi caso Ubuntu se encuentra instalado en sda7, por lo tanto reemplacé la X por el número 7):

sudo mount /dev/sdax /mnt 

4- Ahora montamos el resto de los dispositivos:

sudo mount --bind /dev /mnt/dev

5- Damos acceso de root a todo lo que acabamos de montar:

sudo chroot /mnt

6- Por último, cargamos el Grub en el sector de arranque o MBR:

grub-install --recheck /dev/sda

Quitamos el Cd Live, reiniciamos, y si todo está ok abrimos una terminal y actualizamos el Grub con el siguiente comando:

sudo update-grub2 

Si no llegara a funcionar (en mi caso sí funcionó) ejecutamos:

sudo aptitude install grub2

Gracias a estos pasos yo pude recuperar mi Grub 2, espero que le haya servido!