Ubuntu

Redimensionar disco en Ubuntu 18.04 con discos GPT

Es posible que en algún momento necesitemos ampliar el espacio de una partición de nuestra máquina virtual. En esta ocasión vamos a explicar cómo ampliar el espacio en la última partición de nuestro sistema debido a una solicitud de ampliación de disco.

Primero, entramos en nuestra máquina con un usuario con privilegios administrativos, y ejecutamos el siguiente comando para ver la información de los discos de sistema:

root@virtual:~# fdisk -l
Disk /dev/vda: 7 GiB, 7516192768 bytes, 14680064 sectors
Units: sectors of 1 * 512 = 512 bytes 
Sector size (logical/physical): 512 bytes / 512 bytes                               
I/O size (minimum/optimal): 512 bytes / 512 bytes                      
Disklabel type: gpt              
Disk identifier: DBEC8619-407D-4752-848E-B7E95EAD6A21

Device     Start      End  Sectors Size Type
/dev/vda1   2048     4095     2048   1M BIOS boot
/dev/vda2   4096 12582882 12578786   6G Linux filesystem

Como vemos, tenemos un disco GPT de 7G pero la partición del sistema de archivos (/dev/vda2) es de solo 6GB, y queremos ampliar ese gigabyte restante a la partición de sistema que coincide que es la ultima partición (esto es habitual en las máquinas virtuales estándar que entregamos a los alumnos).

Para ello, tan solo deberemos ejecutar los siguientes comandos:

sgdisk -d 2 /dev/vda
sgdisk -N 2 /dev/vda
partprobe /dev/vda
resize2fs /dev/vda2

El primer comando sirve para eliminar la partición numero 2.Los datos no se borrarán ya que en el siguiente paso vamos a volver a crear la partición, y usara el primer sector disponible que coincidirá con el primer sector de la partición 2 que acabamos de borrar.

El segundo comando para crear la partición numero 2 hasta final de disco. El tercer comando sirve para que el kernel de Linux vuelva a leer los discos y ver los cambios que se han hecho. Por último, el cuarto comando sirve para ampliar el sistema de archivos al nuevo tamaño de la partición.

No suele ser necesario reiniciar la maquina, tan solo debemos reiniciarla si nos falla el comando partprobe  y volver a ejecutarlo (así como el último comando también).

Instalar Java 7 de Oracle en Ubuntu via PPA

A continuación se detalla como instalar el paquete de Oracle que nos proporciona Java 7, incluyendo el JRE, el JDK y el plugin para el navegador.

Lo primero de todo es añadir los repositorios de PPA (Personal Packages Archives) en Ubuntu (versiones 13.10, 13.04, 12.10, 12.04 y 10.04), después actualizar la lista de paquetes de los repositorios y por ultimo instalar el paquete en cuestión. Para ello usaremos los siguientes comandos:

root@ubuntu:~# add-apt-repository ppa:webupd8team/java
root@ubuntu:~# apt-get update
root@ubuntu:~# apt-get install oracle-java7-installer

Despues de ejecutar estos comandos, podemos comprobar que tenemos Java 7 correctamente instalado ejecutando:

root@ubuntu:~# java -version
java version "1.7.0_40"
Java(TM) SE Runtime Environment (build 1.7.0_40-b43)
Java HotSpot(TM) 64-Bit Server VM (build 24.0-b56, mixed mode)

¿Por qué hay que realizar estos pasos y no ejecutamos directamente un apt-get install? Lo más probable es que no necesitemos Oracle Java en absoluto, pero podemos vernos en la necesidad de instalarlo y esto es un problema, ya que fue retirado de los repositorios «partner» por la revocación de la anterior licencia de distribuidor de Java (JDL).

Alternativamente, podemos instalar OpenJDK que nos proporcionara lo mismo que instalar Java de Oracle. Se puede hacer la instalación instalando el paquete openjdk-7-jdk.

root@ubuntu:~# apt-get install openjdk-7-jdk

Instalación y configuración simple de MySQL en Ubuntu

Lo primero de todo, y como ya hemos aprendido en la entrada anterior, para instalar paquetes en Debian o Ubuntu, utilizaremos apt-get. Hoy vamos a instalar un servidor de Bases de Datos para despues poder conectarnos a ella mediante PHP o Java, por ejemplo.

Para ello ejecutamos lo siguiente:

root@ubuntu:~# apt-get install mysql-server

A continuación nos mostrara la lista de dependencias que se van a instalar, las cuales aceptamos y continuamos. Una vez que el proceso de descarga de paquetes haya finalizado y comience el proceso de configuración de los mismos, nos pedira la clave de root (administrador) de MySQL. Tecleamos una pero que no se nos olvide. En otra ocasión escribiremos como poder cambiar la contraseña de root de MySQL en el caso de que se nos olvide.

Para probar que todo funciona correctamente, podemos conectarnos con el cliente MySQL que se ha instalado automaticamente al instalar el servidor, ejecutando lo siguiente:

root@ubuntu:~# mysql -u root -h localhost -p
Enter password: [introducimos el password]
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 43
Server version: 5.5.32-0ubuntu0.13.04.1 (Ubuntu)
 
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
 
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
mysql>

Nos pedira el password y ahora ya podemos ejecutar nuestras sentencias SQL desde la linea de comandos.

Una cosa que podemos hacer a mayores, y que nos puede venir bien en algunas ocasiones, es hacer que el servidor MySQL escuche en todas las direcciones IP y no solo en localhost, permitiendo de esta manera que se pueda acceder a nuestro servidor de Bases de Datos desde cualquier lugar del mundo, siempre y cuando creemos usuarios de MySQL que tengan esos permisos, cosa que tambien explicaremos.

Lo primero es editar el archivo /etc/mysql/my.cnf con nuestro editor favorito.

root@ubuntu:~# vi /etc/mysql/my.cnf

Y posteriormente, buscamos la linea en la que pone bind-adress (sobre la línea 47 aproximadamente), y podemos comentarla o poner la IP 0.0.0.0 para que escuche en todas las direcciones IP, o podemos ponerla una IP especifica que tenga la maquina para que de esta manera solo se pueda acceder mediante dicha IP.

45
46
47
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address           = 0.0.0.0

Una vez hecho cambios en el archivo de configuración, deberemos reiniciar el servicio:

root@ubuntu:~# service mysql restart

Ahora, ya podemos volver a entrar al servidor MySQL con el comando que hemos explicado mas arriba, y ejecutar la siguiente sentencia para dar permisos a un usuario acceder a una Base de Datos.

mysql> GRANT ALL PRIVILEGES ON test.* TO usuario@'%' IDENTIFIED BY 'password';

OJO! Con esa sentencia. Aunque en alguna ocasión nos pueda venir genial debido a que el cliente con el que nos conectamos al servidor tiene IP dinamica, lo que aquí estamos haciendo es permitir al usuario identificado con ese password, que acceda con total privilegios a la base de datos test desde cualquier ubicación. Quizas son demasiadas facilidades para que si alguien con mala intención ataca nuestro servidor de bases de datos, y a su vez, no hemos puesto una contraseña fuerte ni securizado bien, pueda entrar y robarnos datos.

Es por ello por lo que aconsejamos que el servidor MySQL escuche solo en las IPs por las que recibe conexiones, y dar privilegios a los usuarios a tan solo las IPs por las que se van a recibir esas conexiones.

Comandos para gestionar software en Ubuntu

apt-get es la herramienta que se utiliza en Debian y sus distribuciones derivadas, como por ejemplo Ubuntu, para gestionar los paquetes disponibles en los repositorios y aunque tenemos a nuestra disposición herramientas gráficas que nos facilitan las cosas, nunca está de más saber lo que podemos hacer con apt-get desde un terminal:

root@ubuntu:~# apt-get update

Actualiza el listado de los paquetes disponibles en el repositorio. Debemos ejecutarlo antes de una actualización del sistema para que actualice la información de las últimas versiones de los paquetes instalables y de esta manera, poder proceder de manera correcta a la actualización.

root@ubuntu:~# apt-get upgrade

Actualiza todos los paquetes ya instalados.

root@ubuntu:~# apt-get dist-upgrade

En ocasiones, sobre todo en actualizaciones del Kernel, hay ciertos paquetes que se retienen, para ello podemos ejecutar este comando para forzar la actualización/instalación de dichos paquetes.

root@ubuntu:~# apt-cache search <paquete>

Busca en el repositorio un paquete o paquetes que contengan la cadena de busqueda proporcionada. De esta manera, si queremos buscar el nombre exacto de un paquete, le pasamos al argumento de busqueda un valor que creamos aproximado a lo que queremos buscar, y nos mostrara la lista de paquetes que coinciden con nuestra busqueda.

root@ubuntu:~# apt-get install <paquete>

Instala dicho paquete y todas sus dependencias para que funcione correctamente.

root@ubuntu:~# apt-get remove <paquete>

Elimina dicho paquete pero no sus dependencias.

root@ubuntu:~# apt-get autoremove

Elimina todos los paquetes que ya no se usan debido a la desinstalación de otro paquete anterior. Conviene ejecutar esta orden una vez hemos quitado un paquete.

root@ubuntu:~# apt-get purge <paquete>

Este comando elimina todos los archivos de configuración y restos de archivo del paquete que le hemos pasado como argumento.

root@ubuntu:~# apt-get -f install

Resuelve problemas y conflictos relacionados con dependencias o paquetes que no se han podido llegar a instalar, debido por ejemplo, a una falta de espacio en disco. Esta claro que anteriormente a esto, debemos haber liberado el espacio en disco.

root@ubuntu:~# apt-get clean

Para limpiar la zona de disco donde se han bajado los archivos de instalación de los paquetes. Este directorio suele estar por defecto en /var/cache/apt/archives

Por supuesto que el comando apt-get admite mas parametros y opciones, pero los ejemplos propuestos son los mas utilizados en una utilización diaria y normal del sistema. Para obtener mas ayuda, podemos ejecutar: «man apt-get», el cual nos mostrará el manual de utilización completo de dicho comando.

Ir arriba