0% encontró este documento útil (0 votos)
6 vistas27 páginas

Gestión de Particiones en Ubuntu

Cargado por

supernandopb
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
6 vistas27 páginas

Gestión de Particiones en Ubuntu

Cargado por

supernandopb
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

ADMINISTRACIÓN DE SISTEMAS OPERATIVOS

Ubuntu organiza la información del sistema en una estructura de árbol


jerárquico de directorios compuesta de ficheros. Esta estructura se forma
mediante un sistema de ficheros raíz y un conjunto de sistemas de ficheros
montables.

Para ello, instalaremos (si no viene por defecto):

apt-get install gnome-disk-utility

1) Comando fdisk

Para gestionar las particiones en modo terminal utilizaremos el comando fdisk.


La utilidad fdisk es muy útil y potente. Si la ejecutamos en nuestro sistema:

Nos muestra el dispositivo sda con sus tres particiones donde se aloja el
sistema operativo instalado y el disco duro sdb, que no ha sido aún tratado.
(Nota: los bloques son de 512 bytes).

Vamos a crear tres particiones en sdb con lo que tendremos que ejecutar:

fdisk /dev/sdb
Las opciones de fdisk son:

Opción Descripción
a Permite establecer la partición activa
d Suprime una partición
l Lista tipos de particiones conocidas
m Imprime el menú de ayuda
n Agrega una nueva partición
p Imprime la tabla de particiones
q Salir sin guardar
t Cambia el identificador de sistema de una partición
v Verifica la tabla de particiones
w Guarda los cambios y sale

Pulsamos n y seguimos los siguientes pasos:

1) Seleccionamos el tipo de partición: p primaria y e extendida.

2) Indicamos el número de partición.

3) Añadimos el tamaño de la partición.

4) Indicamos la localización dentro del disco duro.

5) Indicamos el último bloque.


Para las tres particiones:

Tenemos ya las particiones, ahora la formatearemos con el formato que


queremos con el comando mkfs de la siguiente manera:

mkfs.ext4 /dev/sdb1

mkfs.ext4 /dev/sdb2

mkfs.ext4 /dev/sdb3

donde ponemos detrás del punto el formato que utilizamos.

Vamos asignarle cada una de las particiones a los directorios de trabajo de tres
usuarios. Utilizaremos el comando mount:

mount /dev/sdb1 /home/prueba1

mount /dev/sdb2 /home/prueba2

mount /dev/sdb3 /home/prueba3

2) Fichero /etc/fstab

El problema ahora es que al reiniciar el sistema hay que montar el sistema de


nuevo ya que el sistema no lo hace por defecto. Para que lo haga, tenemos
que modificar el fichero /etc/fstab, que tiene las siguientes características:
Fstab significa: File System Table (Tabla de Sistemas de ficheros). Cuando
encendemos nuestro PC con Linux, el sistema operativo se inicia, en primer
lugar montando en modo solo lectura el sistema de ficheros raíz ( / ), para los
procesos standar, y luego comprueba su consistencia; luego, en segundo
lugar los desmonta y vuelve a montar, pero esta vez en modo lectura y
escritura, y empieza a verificar la existencia y consistencia de todos los demás
sistemas de ficheros que se usaran.

Este archivo está constituido por varias líneas de texto, y cada línea da
información sobre cada uno de los sistemas de ficheros que deberían estar
disponibles para tu PC, de modo que:

■ para añadir un nuevo sistema de ficheros de forma que se monte y esté


disponible siempre, al arrancar el sistema.
■ o modificar a tu gusto el comportamiento de tu ordenador con un tipo
concreto de dispositivo, ( cdroms, dvd, pendrive-usb, etc) lo único que
necesitas es añadir o cambiar una línea del fichero /etc/fstab.

Este archivo, contiene todos los parámetros para que se monten todas las
particiones de uno o varios discos que tengamos en el ordenador. El archivo
fstab es donde se guardan los diferentes datos sobre el montaje de los
dispositivos físicos:

■ de discos duros fijos y extraíbles, y de sus particiones,


■ de disquetes,
■ cdroms,
■ dvd,
■ pendrives-usb

Lo que en él está escrito nos sirve fundamentalmente para que podamos tener
acceso a nuestros discos/particiones, así como también a su funcionamiento,
una vez que iniciamos Linux:

■ montar la partición donde está Linux y lo que podemos hacer en ella.


■ montar o no, al arrancar un disco duro externo, o un pen-drive que tengamos
conectado en
ese momento.
■ poder o no borrar, o escribir en archivos de otras particiones, como la que
contenga Windows, si tenemos ambos sistema operativos en el PC.

Puntos de montaje:
El punto de montaje “es el lugar donde hacemos posible que se pueda
acceder a un dispositivo ya montado”
Vamos a empezar con cada uno de los componentes que integran las ordenes
del archivo Fstab.
<file system> <mount point> <type> <options> <dump> <pass>

<file system>:
Normalmente se trata del fichero de dispositivo Linux a montar (por
ejemplo /dev/hdc4), pero también puede ser una entrada con el patrón
nombre_de_ordenador_en_red: directorio para sistemas de ficheros en red
tales como NFS. Los sistemas de ficheros ext2 y ext3 también se pueden
identificar por el nombre asignado a su etiqueta de volumen cuando fueron
creados.

<mount point>:
por ejemplo: /media/cdrom0 o /home
Para tipos especiales de particiones que no deben montarse, tales como las
particiones de intercambio o swap, éste campo debería tener la entrada (la
palabra) none.

<type>:
Las entradas más frecuentes en éste campo son:
- ntfs : Si es de WindowsXP
- fat : Si es Windows98 con partición tipo fat 32,
- vfat: Si es Windows 98 con partición tipo fat 16
- iso9660: Para cdroms, dvd y regrabadoras de cd y dvd
- sw: Para la partición de intercambio swap
- ext2, ext3 o ext4 : Para / y /home ( en Guadalinex es ext3)
- auto: Si deseas, porque no estas seguro de que tipo se trata, puedes poner
auto, y así fstab
lo detecta automáticamente.
- ignore: Si un sistema de ficheros no se está usando pero se quiere mantener
su entrada en /etc/fstab, puedes poner ignore, evitar el montaje del sistema de
ficheros, su comprobación de consistencia, y el resto de operaciones.

<options>:
Contiene una lista de parámetros, separados por comas, con las opciones que
necesite el comando mount para montar el sistema de ficheros. Muchas de
estas opciones son específicas de cada sistema de ficheros.
Las más frecuentes son:
1. auto: Con esta opción hacemos que el dispositivo que la contenga sea
iniciado siempre que se inicie el sistema, es decir, cada vez que este sea
encendido. Es decir que será montado siempre. O bien cuando se ejecute
mount -a.
2. no auto: Esta es la opción contraria a auto, con ella hacemos que el
dispositivo no sea montado al iniciarse el sistema, y tan solo será montado en
el momento en el que queramos usarlo; esta opción suele ser utilizada con
dispositivos como las disqueteras, cd-roms, dvd, pendrives-usb…, es decir,
todos aquellos dispositivos que no es necesario que se monten al arranque del
sistema.

3. async: Con esto hacemos que las operaciones que realicemos no se hagan
en el mismo momento en que las realizamos/pedimos, si no que pueden ser
realizada más adelante.

4. sync: Es la opción contraria a async. Añadiendo la opción sync fijaríamos


que los datos sean transferidos, guardados o borrados, en el momento en que
pedimos que se hagan. Esta opción puede servir de mucho, y sobre todo
ahorrarnos tiempo en la manera en la que se transfieren datos a dispositivos
como los pen-drives y aquellos que se utilizan mediante conexión usb en los
cuales necesitamos acceso/transferencia rápido/a.

5. dev: Al activar esta opción permitimos que puedan usarse nodos de


dispositivo en el sistema de archivos, o, lo que es lo mismo, que se interpreten
como tal los dispositivos especiales de bloques y de caracteres presentes en el
dispositivo, el dispositivo (de bloques o de caracteres) es local (un disco duro
interno o usb,) no es dispositivo de red.

6. nodev: con esto impedimos que puedan usarse nodos de dispositivo en el


sistema de archivos, es decir, con esta opción impedimos que se interpreten
los dispositivos especiales de bloques y de caracteres presentes en el
dispositivo.

7. exec: esta opción hace que puedas ejecutar programas, ficheros script
(guiones), o cualquier otra cosa cuyos permisos indiquen que es ejecutable, de
ese sistema de ficheros.

8. noexec: Impide la ejecución de cualquier archivo en el dispositivo en el que


esta opción sea activada, esta opción suele ser muy útil cuando en una misma
máquina diversos usuarios tienen acceso a un mismo dispositivo y no
queremos que estos puedan ejecutar archivos en los dispositivos, con esto
ganamos en seguridad, ya que impedimos que los otros usuarios puedan
ejecutar cualquier tipo de archivo “maligno” a través del cual lo que realmente
quieren conseguir es escalar privilegios en el sistema.

9. gid=Valor: Con esta opción indicamos que tan solo el grupo que posee el
Valor especificado tenga el control sobre los archivos del dispositivo. Establece
el ID (identificador) de grupo del sistema montado a ese valor cuando se
termina de montar el sistema de ficheros. Puede tratarse de un valor numérico
gid=1000 o del nombre del grupo de usuarios
(gid=users,gid=usuarioslectordvd).

10. uid=Valor: Con esta opción indicamos que tan solo el usuario que posee el
Valor especificado tenga el control sobre los archivos del dispositivo.

11. owner: indica que el propietario del sistema de ficheros ( el que tiene
derechos a montar y desmontar el dispositivo ) será aquel que lo montó ( el
primer usuario distinto de root conectado al sistema localmente), pero
normalmente sera el usuario root si el sistema de ficheros viene configurado
para montarse automáticamente durante el arranque.

12. ro: read-only. Con esta opción hacemos que no se pueda escribir en el
dispositivo, que tan solo se pueda leer.

13. rw: read-write. Con esto montamos la partición para que sea posible tanto
leer como escribir en el dispositivo físico, esta opción es muy usada con
dispositivos que permiten la escritura como por ejemplo los pendrive o los
disquets, ya que sin esta opción, no podríamos guardar datos en dichos
dispositivos.

14. suid: indica que el permiso tenga efecto para los ejecutables presentes en
el dispositivo. Permite el cambio del ID de usuario o grupo del usuario a los
programas que efectúen operaciones sobre el sistema de ficheros, siempre que
sus bits de permisos lo permitan.

Tenga mucho cuidado usando ésta opción con sistemas de ficheros ajenos que
en realidad no estés administrando, ya que ejecutar un programa que
establezca su UID (identificador de usuario) a root es una forma corriente de
romper la seguridad de un sistema.** uid=valor: establece el ID de usuario del
sistema montado al valor valor. Igual que con gid, podemos escribirlo con el
número identificador del usuario uid=37 o con el nombre del usuario
uid=hatteras

15. nosuid: es lógicamente la opción opuesta a suid. Salvo casos


excepcionales, no debe haber ninguna razón para que se permita la ejecución
de programas suid en los directorios /home/usuario. Esto lo podemos evitar
usando la opción `nosuid’ en el fichero /etc/fstab para las particiones que
tengan permiso de escritura por usuarios distintos al root. También puede ser
útil usar `nodev’ y `noexec’ en las particiones de los directorios personales de
los usuarios (o en /home/usuario ),lo que prohíbe la creación dispositivos de
bloque o carácter y la ejecución de programas.
16. user: Permite a cualquier usuario del sistema montar o desmontar un
dispositivo físico sin necesidad de ser root, esta opción es muy útil para
dispositivos de uso frecuente, como cd-roms o disquetes. Pero también debe
tenerse en cuenta, que el usuario que montó el dispositivo, solo el mismo
usuario podrá desmontar el dispositivo. La opción opuesta es nouser.

17. users: indica que cualquier usuario puede montar y cualquiera también,
puede desmontar el dispositivo.

18. nouser: debes ser el usuario root para montar el sistema de ficheros, nadie
más que el superusuario podrá hacerlo.

19. defaults: Esta opción es la unión de las opciones rw, suid, dev, exec,
auto, nouser y async. Puedes consultar la ayuda del comando mount si
necesitases más parámetros, aunque como ya dije estos son los más
comunes, aunque tal vez no se apliquen a tus necesidades.

<dump>, es un comando estándar del sistema de ficheros Unix/Linux


usado para respaldar información (back-ups); el valor de esta opción sirve
para identificar los sistemas de ficheros que deberían incluirse en las
operaciones de copia de seguridad cuando se ejecute el comando dump. Esta
opción solo puede poseer el valor 0 o 1. Si su valor es 0 ( o falta ) indica al
comando dump que no es necesario hacer copia de seguridad del sistema de
ficheros asociado a la correspondiente línea de /etc/fstab. Si su valor es 1 se
hará un backup con las opciones, creando backup por si surge algún tipo de
problema, lo normal es tenerlo desactivado (0), ya que rara vez se produce un
error.

<pass> para identificar los sistemas de ficheros cuya consistencia hay


que comprobar en el siguiente reinicio, y el orden en el que hay que
efectuar esa comprobación.
Si su valor es 0 o falta, el programa fsck asume que no es necesario comprobar
el sistema de ficheros asociado a la línea en /etc/fstab , y el sistema no
realizará nunca ninguna pasada para comprobar la integridad del dispositivo
físico ( normalmente ponemos 0 en el cdrom, dvd, disquet, pendrive y partición
swap), y por ello es recomendable tenerlo en activado en las particiones:
- para “ / ” usamos 1.

El sistema realizará una pasada cada 30 reinicios del sistema


aproximadamente o si el dispositivo ha sido desmontado incorrectamente para
comprobar su integridad.
En nuestro ejemplo, tendremos que añadir las siguientes líneas:

/dev/sdb1 /home/prueba1 ext4 default 0 0

/dev/sdb2 /home/prueba2 ext4 default 0 0

/dev/sdb3 /home/prueba3 ext4 default 0 0

Cuando arrancamos la máquina, se nos montará automáticamente.

3) Monitorización del sistema de archivos:

a) Comando df: Muestra un resumen sobre el espacio libre que queda en los
discos duros del sistema:

b) Comando du: muestra la cantidad de espacio que están utilizando los


directorios o archivos específicos. Si lo usamos sin parámetros, nos muestra
sólo los bloques usados por los directorios de manera recursiva.
Se recomienda utilizar el comando man du para conocer las potencialidades
de este comando.

c) Comando fsck: permite comprobar el estado y reparar un sistema de


ficheros. Para ejecutar este comando, hay que desmontar primero el sistema
de archivos ya que puede causar graves daños.

4) Enlaces duros y simbólicos en Linux

Lo primero que tenemos que saber es que en Linux no existe lo que en


Windows se llama acceso directo. En Linux los accesos directos se llaman
enlaces.
Además existen dos tipos de enlaces, los enlaces duros y los enlaces
simbólicos. En los siguiente apartados explicaremos y veremos en detalle que
son y para que podemos usar cada uno de los tipos de enlaces que acabamos
de citar.

4.1) ¿Qué son los enlaces duros?

Para entender lo que es un enlace duro, lo primero que tenemos que saber es
que en Linux cada fichero y cada carpeta del sistema operativo tienen asignado
un número entero llamado inodo.
Este inodo es único para cada uno de los archivos y cada una de las carpetas.
La información que almacena cada uno de los inodos de los distintos archivos y
carpetas es la siguiente:
1. Los permisos del archivo o carpeta.

2. El propietario del fichero y carpeta.


3. La posición/ubicación del archivo o de la carpeta dentro de nuestro disco
duro.
4. La fecha de creación del archivo o directorio.
5. Etc.

Una vez comprendido esto, podemos decir que un enlace duro es un archivo
que apunta al mismo contenido almacenado en disco que el archivo original.

Por lo tanto los archivos originales y los enlaces duros dispondrán del mismo
inodo y consecuentemente ambos estarán apuntando hacia el mismo contenido
almacenado en el disco duro. De este modo, tal y como se puede ver
representado en la imagen, un enlace duro no es más que una forma de
identificar un contenido almacenado en el disco duro con un nombre distinto al
del archivo original.

Generando un enlace duro podremos asimilar mucho mejor lo que acabamos


de explicar en el apartado anterior.

Para comprender bien lo que es un enlace duro crearemos un archivo de texto


ejecutando el siguiente comando en la terminal:
touch [Link]

Una vez creado el archivo vamos o consultar su número de inodo ejecutando el


siguiente comando en la terminal:
ls -li [Link]

El resultado obtenido en mi caso es el siguiente:


1341693 -rw-r--r-- 1 joan joan 0 nov 17 22:50 [Link]

Por lo tanto el inodo del archivo que acabamos de crear es el 1341693.


También vemos que actualmente solo hay 1 archivo/entrada en el sistema que
esté apuntando al mismo inodo.

Una vez creado el archivo crearemos un enlace duro hacia el archivo que
acabamos de crear introduciendo el siguiente comando en la terminal:

ln [Link] enlacegeekland

Cada una de las partes del comando para crear el enlace duro tienen el
siguiente significado:
ln: Es el comando encargado de realizar enlaces entre ficheros.

[Link]: Es la ruta o nombre del archivo original que tenemos en nuestro


disco duro.

enlacegeekland: Corresponde a la ruta o nombre del enlace duro que vamos a


crear.

Una vez ejecutado el comando se habrá realizado el enlace duro.

Una vez creado el enlace volveremos a comprobar el número de inodo del


archivo original ejecutando de nuevo el siguiente comando en la terminal:

ls -li [Link]

Ahora el resultado obtenido es el siguiente:


1341693 -rw-r--r-- 2 joan joan 0 nov 17 22:50 [Link]

Como se puede ver el número de inodo sigue siendo el mismo que antes, pero
ahora hay 2 archivos/entradas apuntando hacia el mismo inodo. Estos 2
archivos/entradas son el archivo original más el enlace duro que acabamos de
crear.

Seguidamente comprobaremos el número de inodo del enlace duro que hemos


creado ejecutando el siguiente comando en la terminal:
ls -li enlacegeekland

El resultado obtenido es:


1341693 -rw-r--r-- 2 joan joan 0 nov 17 22:50 enlacegeekland

Por lo tanto se puede observar que tanto el enlace duro como el archivo que
hemos creado apuntan al mismo inodo, y consecuentemente apuntan hacia la
misma información almacenada en nuestro disco duro. Además tanto el enlace
duro como el archivo original disponen de los mismos permisos, del mismo
propietario y forman parte del mismo grupo.

4.2 Creación de enlaces duros de manera recursiva

Acabamos de ver como crear un enlace duro de un único archivo. En el caso


que queramos crear enlaces duros en masa de la totalidad de contenido
almacenado en un directorio también lo podemos realizar muy fácilmente.
Imaginemos que en la ubicación /home/joan/vacaciones dispongo de una serie
de fotos y quiero crear un enlace duro de la totalidad de fotos de esta carpeta
en mi escritorio. Para conseguir mi objetivo tan solo hay que ejecutar el
siguiente comando en la terminal:

cp -rl /home/joan/vacaciones /home/joan/Escritorio/vacaciones/

Cada una de las partes del comando usado para crear los enlaces duros
recursivos tienen el siguiente significado:

cp: Se refiere al comando copy que es el que usamos para crear los enlaces
duros de forma masiva.

-rl: La letra r hace referencia a recursivo y la letra l hace referencia a enlace


duro. Por lo tanto añadiendo estas 2 opciones hacemos que se copien la
totalidad de archivos de una carpeta a otra mediante la creación de enlaces
duros.

/home/joan/vacaciones: Es la ruta de la carpeta que contiene las fotos


originales.

/home/joan/Escritorio/vacaciones: Es la ruta de la carpeta en la que


queremos crear los enlaces duros.

Una vez ejecutado este comando habremos creado de un plumazo


multitud de enlaces duros sin ningún tipo de esfuerzo.

4.3 Propiedades de los enlaces duros

Con lo visto en los apartados anteriores y usando nuestra capacidad de


deducción, podemos afirmar que algunas de las propiedades y particularidades
que tenemos que tener en cuenta de los enlaces duros son las siguientes:
1- Cualquier cambio que se introduzca en el archivo original o en el
enlace duro, afecta a los dos por igual. Por lo tanto, tal y como se puede ver
en la captura de pantalla, si en el archivo de texto [Link] añadimos
texto, también se añade en el enlace duro enlacegeekland, y si añadimos
texto en el enlace duro enlacegeekland también se añade en el archivo
[Link]. Por lo tanto podemos considerar que el enlace duro es una
copia exacta del archivo original.
2- Tal y como se puede ver en la captura de pantalla, en el caso de borrar el
archivo original [Link] aún podemos tener acceso al contenido a
través de su enlace duro enlacegeekland.

Por lo tanto el contenido no se borrará hasta que no se hayan eliminado


por completo tanto el archivo original como la totalidad de enlaces duros.

3- No se pueden crear enlaces duros de carpetas. Antiguamente era posible


realizarlos y es posible que haya algún sistema operativo que aún lo permita,
pero la mayoría de sistemas operativos actuales no lo permiten debido a que
este hecho puede transformar la estructura de directorios de Linux.

4- Los enlaces duros ocupan menos tamaño en el disco duro que los
enlaces simbólicos. El tamaño que ocupará un enlace simbólico será
proporcional al número de caracteres del nombre del archivo que apunta,
mientras que el tamaño de un enlace duro siempre será el mismo ya que es
simplemente es un puntero que nos lleva a una ubicación del disco duro.

5- El acceso al contenido a través de un enlace duro es más rápido que en


los enlaces simbólico. Esto es así porque mientras el enlace duro apunta
directamente a un contenido almacenado en nuestro disco duro, el enlace
simbólico apunta al nombre de un archivo y posteriormente el archivo apunta a
un contenido almacenado en nuestro disco duro. Por lo tanto en los enlaces
simbólicos existe un paso adicional para acceder a la información que penaliza
en tiempo.

6- Los enlaces duros únicamente se pueden usar en la partición en la que


los hemos creado. Por lo tanto si creamos un enlace duro en la partición
/home, no lo podremos usar en la partición /root.

7- Si cambiamos de ubicación el archivo original el enlace duro no se


rompe y lo podemos usar sin ningún tipo de problema.

8- Los permisos, el propietario y el grupo del enlace duro serán los


mismos que el del archivo original. Esto es así porque, como hemos visto
anteriormente, el enlace duro y el archivo original tienen el mismo inodo, y por
lo tanto forzosamente siempre tendrán las mismas propiedades. Un enlace
duro no es más que una copia del archivo original.

4.4 Utilidades y ventajas de los enlaces duros

Seguramente existen más utilidades en las que los enlaces duros son
particularmente útiles:
1. Realizar copias de seguridad incrementales ahorrando espacio en
disco duro y un tiempo considerable ya que los enlaces duros permiten
realizar una copia de seguridad de un archivo sin realmente realizar la copia.

[Link] copiamos un archivo de gran tamaño de un sitio a otro tardamos


una cantidad importante de tiempo. Usando un enlace duro podemos evitar
esta espera y de paso ahorraremos espacio en nuestro disco duro.

[Link] enlace duro es una muy buena opción para tener un archivo en varias
ubicaciones. Usando enlaces duros para este fin evita que se generen
enlaces simbólicos rotos. Si usamos enlaces simbólicos para disponer de un
archivo en varias ubicaciones, es posible que cuando se elimine el archivo
original nos olvidemos que en el pasado generamos enlaces simbólicos hacia
este archivo generándose enlaces rotos.

4. Los enlaces duros también nos pueden servidor para clasificar información
como por ejemplo fotografías. Así por ejemplo podemos clasificar fotos por la
gente que aparece en ellas, una vez organizadas las fotos podemos crear
enlaces duros de las fotos, y una vez creados los enlaces podemos organizar
los enlaces duros por otro tipo de clasificación diferente sin consumir espacio
adicional en nuestro disco duro.

5) Enlaces simbólicos o blandos

Los enlaces simbólicos son parecidos a los accesos directos en Windows y


son los enlaces que todos los usuarios comunes acostumbran a usar de forma
habitual.

Acabamos de ver que los enlaces duros apuntan a un archivo almacenado en


nuestro disco duro. En contraposición, tal y como se puede ver representado
en la imagen, los enlaces simbólicos apuntan al nombre de un archivo y
posteriormente el archivo apunta a un contenido almacenado en nuestro
disco duro.

A diferencia del caso anterior, cada enlace simbólico dispone de su propio


número de inodo y es diferente al del archivo original. Por lo tanto podremos
crear enlaces simbólicos de archivos y de carpetas aunque estén en discos
duros diferentes o en particiones diferentes.

5.1) Crear enlaces simbólicos

Creando un enlace simbólico podremos ver y entender más fácilmente lo que


acabamos de explicar en el apartado anterior.
Para comprender bien lo que es un enlace simbólico crearemos un archivo de
texto ejecutando el siguiente comando en la terminal:
touch [Link]

Una vez creado el archivo vamos o consultar su número de inodo ejecutando el


siguiente comando en la terminal:
ls -li [Link]

El resultado obtenido es:


1334792 -rw-r--r-- 1 joan joan 0 nov 29 10:03 [Link]

Por lo tanto el inodo del archivo que acabamos de crear es el 1334792.


También vemos que actualmente solo hay 1 archivo/entrada en el sistema que
esté apuntando al mismo inodo.

Una vez creado el archivo crearemos un enlace simbólico hacia el archivo


que acabamos de crear ejecutando el siguiente comando en la terminal:

ln -s /home/joan/[Link]/ home/joan/Escritorio/enlacegeekland

Cada una de las partes del comando usado para crear el enlace simbólico
tienen el siguiente significado:
ln: Es el comando encargado de realizar enlaces entre ficheros o carpetas.

-s: Es la parte del comando que indica que el tipo de enlace que queremos
crear es un enlace simbólico.

/home/joan/[Link]: Es la ruta y nombre del archivo original que tenemos


en nuestro disco duro.

/home/joan/Escritorio/enlacegeekland: Corresponde a la ruta y el nombre del


enlace simbólico que vamos a crear.

Una vez ejecutado el comando se habrá realizado el enlace simbólico.

Una vez creado el enlace simbólico volveremos a comprobar el número de


inodo del archivo original ejecutando de nuevo el siguiente comando en la
terminal:
ls -li [Link]

Ahora el resultado obtenido es el siguiente:


1334792 -rw-r--r-- 1 joan joan 0 nov 29 10:03 [Link]
Como se puede ver, el número de inodo sigue siendo el mismo que antes pero,
a diferencia del caso anterior, a pesar de crear el enlace simbólico sigue
habiendo únicamente 1 archivo/entrada apuntando hacia el mismo inodo.

Seguidamente comprobaremos el número de inodo del enlace duro que hemos


creado ejecutando el siguiente comando en la terminal:
ls -li /home/joan/Escritorio/enlacegeekland

El resultado obtenido es el siguiente:


1339963 lrwxrwxrwx 1 joan joan 23 nov 29 10:03
/home/joan/Escritorio/enlacegeekland ->
/home/joan/[Link]

Después de estudiar los resultados vemos que el archivo original y el enlace


que hemos creado tienen un inodo diferente. Por lo tanto no están apuntando
hacia el mismo contenido ya que el archivo original [Link] está
apuntando hacia un contenido almacenado en nuestro disco duro, y el enlace
simbólico está apuntado hacia el nombre del archivo original.
En la siguiente captura de pantalla se puede visualizar la totalidad de
operaciones realizadas hasta el momento:

5.2) Crear enlaces simbólicos de manera recursividad

Acabamos de ver como crear un enlace simbólico de un único archivo. En el


caso que queramos crear enlaces simbólicos en masa de la totalidad de
contenido almacenado en un directorio también lo podemos realizar muy
fácilmente.
Imaginemos que en la ubicación /home/joan/vacaciones dispongo de una serie
de fotos y quiero crear un enlace simbólico de la totalidad de fotos de esta
carpeta en mi escritorio. Para conseguir mi objetivo tan solo hay que ejecutar
el siguiente comando en la terminal:

cp -rs /home/joan/vacaciones /home/joan/Escritorio/vacaciones/

Cada una de las partes del comando usado para crear los enlaces simbólicos
recursivos tienen el siguiente significado:
cp: Se refiere al comando copy que es el que usaremos para crear los enlaces
simbólicos de forma masiva.

-rs: La letra r hace referencia a recursivo y la letra s hace referencia a enlace


simbólico. Por lo tanto añadiendo estas 2 opciones hacemos que se copien la
totalidad de archivos de una carpeta a otra mediante la creación de varios
enlaces simbólicos.

/home/joan/vacaciones: Es la ruta de la carpeta que contiene las fotos


originales.

/home/joan/Escritorio/vacaciones: Es la ruta de la carpeta en la que


queremos crear los enlaces simbólicos.

Una vez ejecutado este comando habremos creado de un plumazo


multitud de enlaces simbólicos sin ningún tipo de esfuerzo.

5.3) Propiedades de los enlaces simbólicos

Con lo visto en los apartados anteriores y usando nuestra capacidad de


deducción, podemos afirmar que algunas de las propiedades y particularidades
que tenemos que tener en cuenta de los enlaces simbólicos son las siguientes:
1- Cualquier cambio que se introduzca en el archivo original o en el
enlace simbólico afecta a los dos por igual. Por lo tanto, tal y como se
puede ver en la captura de pantalla, si en el archivo de texto [Link]
añadimos texto también se añade en el enlace duro enlacegeekland, y si
añadimos texto en el enlace duro enlacegeekland también se añade en el
archivo [Link].

2- En el caso de borrar el archivo original [Link] se borra


completamente el archivo y no podremos volver a acceder a él nunca más.

3- Si por lo contrario borramos el enlace simbólico, tal y como se puede ver


en la captura de pantalla, aun podremos seguir accediendo al contenido
mediante el archivo original.
4- En contraposición con los enlaces duros, podemos crear enlaces
simbólicos de carpetas sin ningún tipo de problema. De esta forma podremos
usar los enlaces simbólicos como un atajo para acceder a un directorio
determinado.
5- Los enlaces simbólicos se pueden usar en cualquier ubicación, partición
y sistema de archivos de nuestro disco duro. Por lo tanto a diferencia de los
enlaces duros, los enlaces simbólicos funcionarán en todos los sistemas de
archivos sea cual sea su ubicación.

6- Si cambiamos de ubicación el archivo original se romperá el enlace


simbólico.

5.4) Utilidad de los enlaces simbólicos

La utilidad básica que todo el mundo acostumbra a dar a los enlaces simbólicos
es la de crear atajos para acceder a ciertos archivos o a ciertos
directorios, pero aparte de esta utilidad hay otras como por ejemplo las
siguientes:
1. Para expandir sistemas de archivos. Así por ejemplo si estamos
trabajando en un sistema de archivos ext4, podemos utilizar enlaces simbólicos
para acceder a archivos o ubicaciones en otro sistema de archivos como por
ejemplo NTFS. Esta operación únicamente se puede realizar mediante el uso
de enlaces simbólicos y permite extender fácilmente nuestro sistema de
archivos.
2. Creando un enlace simbólico conseguiremos que un archivo esté
disponible en 2 ubicaciones diferentes de forma fácil y sencilla. Como
hemos comentado en el apartado anterior, si realizamos esta operación con
enlaces simbólicos tenemos que ir con cuidado que no se rompan los enlaces.
3. Cuando copiamos un archivo de gran tamaño de un sitio a otro tardamos una
cantidad importante de tiempo. Usando un enlace simbólico podemos evitar
esta espera y de paso ahorraremos espacio en nuestro disco duro.
4. Si queremos que Copy, Dropbox, o un software similar sincronice una
carpeta o archivo de nuestro equipo, lo podemos hacer a través de un enlace
simbólico. De este modo podemos sincronizar archivos y carpetas en
Dropbox sin que el archivo que queremos subir a Dropbox esté dentro de
la carpeta de Dropbox.

5.5) Eliminar enlaces simbólicos

Si en algún momento precisamos eliminar alguno de los enlaces que


hemos hemos creado lo podemos hacer de forma muy fácil. Así por ejemplo si
queremos eliminar el enlace simbólico que creamos anteriormente tan solo
tenemos que ejecutar el siguiente comando en la terminal:
unlink /home/joan/Escritorio/enlacegeekland

Cada una de las partes usadas en el comando para eliminar enlaces tiene el
siguiente significado
unlink: Es la parte del comando encargada de eliminar el enlace.

/home/joan/Escritorio/enlacegeekland: Es la ruta y nombre del enlace que


queremos eliminar.

6) Bits SUID, GUID y Sticky bit

Hay una serie de permisos especiales sobre el sistema de archivos de Linux


que pueden resultarnos útiles para determinadas tareas o para organizar
directorios colaborativos entre diferentes usuarios.
Sticky bit
El Sticky bit se utiliza para permitir que cualquiera pueda escribir y modificar
sobre un archivo o directorio, pero que solo su propietario o root pueda
eliminarlo. Un ejemplo de uso es el directorio /tmp, que debe tener permisos
para ser utilizado por cualquier proceso, pero solo el dueño o root puede
eliminar los archivos que crea.
Para aplicar el Sticky bit a un directorio:
[hvivani@test archivos]$ chmod 1755 dirtest/
[hvivani@test archivos]$ ls -l
total 8
drwxr-xr-t. 2 hvivani group 4096 sep 6 09:32 dirtest

Al directorio con el Sticky Bit aplicado se le agrega la t al final del descriptor de


permisos.

SUID
El bit SUID activo en un archivo significa que el que lo ejecute va a tener los
mismos permisos que el que creó el archivo. Esto puede llegar a ser muy util
en algunas situaciones pero hay que utilizarlo con cuidado, dado que puede
generar grandes problemas de seguridad.
Para que sea efectivo el archivo debe tener permisos de ejecución.
Para activarlo:
[hvivani@test ~]$ chmod 4775 [Link]
[hvivani@test ~]$ ls -l [Link]
-rwsrwxr-x. 1 hvivani group 133 ago 27 08:25 [Link]
[hvivani@test ~]$ chmod -x [Link]
[hvivani@test ~]$ ls -l [Link]
-rwSrw-r--. 1 hvivani group 133 ago 27 08:25 [Link]

Vean que en la ultima línea le saqué el permiso de ejecución al archivo y en los


permisos se reemplaza la s por la S. En este caso no tiene efecto el bit.

GUID
El GUID es lo mismo que en el SUID, pero a nivel de grupo. Es decir, todo
archivo que tenga activo el GUID, al ser ejecutado, tendrá los privilegios del
grupo al que pertenece.
Esto es muy usado cuando queremos configurar un directorio colaborativo: si
aplicamos este bit al directorio, cualquier archivo creado en dicho directorio,
tendrá asignado el grupo al que pertenece el directorio.
[hvivani@test tmp]$ chmod 2775 dirtest/
[hvivani@test tmp]$ ll
total 8
drwxrwsr-x. 2 hvivani grupo 4096 sep 6 09:32 dirtest
[hvivani@test tmp]$ su usuario1
Contraseña:
[usuario1@test tmp]$ cd dirtest/
[usuario1@test dirtest]$ touch [Link]
[usuario1@test dirtest]$ ll
total 0
-rw-r--r--. 1 usuario1 grupo 0 Sep 6 09:50 [Link]

Al igual que con el SUID, aparece una s o una S reemplazando la x en los


permisos del grupo. Recuerda, minúscula si existe el permiso de ejecución y
mayúscula si no.

7) Proceso de arranque

1) Cuando se elige un kernel para arrancar a través del menú GRUB, GRUB
carga el kernel en memoria junto con su archivo initrd (RAM). Este archivo
es un archivo cpio comprimido con gzip como un archivo initramfs de Ubuntu.
Dentro del directorio actual podremos ver un conjunto de directorios que se ven
como un directorio raíz normal. Los directorios bin, sbin, etc, lib y otros
están ahí, pero con un conjunto limitado de archivos dentro.
Cuando un kernel arranca, necesita al menos montar el sistema de archivos
raíz para poder acceder a los archivos de configuración básicos, a los módulos
del kernel y a los binarios del sistema. Esto es problemático ya que hay que
montar el sistema de archivos para poder a los archivos que necesita para
montar el sistema. Aquí es dónde entra en juego el archivo initramfs. Éste
archivo proporciona al kernel los módulos esenciales y los binarios del sistema
que debe tener para que pueda montarse el sistema de archivos raíz y
completar el proceso de arranque. Cuando el kernel de Ubuntu se compila,
parte del proceso de compilado también compila el archivo initramfs e identifica
e incluye todos los módulos del núcleo y binarios que el kernel pueda necesitar
para arrancar.

2) Se ejecuta un script llamado init, que monta el sistema de archivos raíz


real, y cuya última tarea es ejecutar el programa /sbin/init en el sistema de
archivos raíz, que comienza la próxima fase del proceso de arranque.

Una de las primeras cosas que hace es arrancar y leer /etc/inittab para
determinar el modo de ejecución por defecto. Son seis niveles. El nivel 0 se
reserva para el sistema apagado y el nivel 6 para reiniciar. El nivel 1 se reserva
para el modo monousuario y poder acceder a modo de diagnosis. El resto se
reservan para que el usuario pueda definirlos. Se puedan llamar desde el
prompt con el comando sudo init 6.

Nivel de Nombre o
Descripción
ejecución denominación

0 Alto Alto o cierre del sistema (Apagado).


No configura la interfaz de red o los
demonios de inicio, ni permite que
Modo de usuario
ingresen otros usuarios que no sean el
1 único
usuario root, sin contraseña. Este nivel de
(Monousuario)
ejecución permite reparar problemas, o
hacer pruebas en el sistema.

2 Multiusuario Multiusuario sin soporte de red.

Multiusuario con
3 Inicia el sistema normalmente.
soporte de red.

Multiusuario con
4 Igual que el 3 pero con diferencias.
soporte de red.

Multiusuario Similar al nivel de ejecución 3 + display


5
gráfico (X11) manager.

6 Reinicio Se reinicia el sistema.

3) Después, el proceso init va a /etc/rcS.d y ejecuta cada script que comienza


con S en orden númerico ascendente con start como argumento.

Aquí se encuentran todos los scripts del sistema que init ejecuta en un
arranque antes de cambiar al modo de ejecución que se le indique. Un fallo
aquí podría impedir incluso entrar en modo monousuario. Todos estos script
suelen ser enlaces simbólicos (empiezan por l en parte de permisos) a
script que están ubicados en la parte final de cada línea en /etc/init.d.
Tienen posibles parámetros; entre ellos están start, stop y restart (que los
para y los vuelve a iniciar). Por ejemplo, S35quota activa la asignación de
cuotas por usuario y por grupo.

4) Posteriormente, init ejecuta los script que estén en el directorio /etc/rcN.d


donde N es el nivel de ejecución que arranca por defecto Ubuntu.

Cuando init arranca un modo de ejecución, ejecuta cada script que comienza
con K en orden numérico y le pasa el argumento stop, pero sólo si el
correspondiente script de inicio comenzó en el modo de ejecución anterior.
Después, init ejecutará cada script que comience con una S en orden
numérico y les pasará el argumento start. Cualquier script que comience con
D será ignorado por init, lo que permite deshabilitar temporalmente un script
en un modo de ejecución en particular o quitar el enlace simbólico.

5) En el archivo /etc/[Link] se pueden comandos que el administrador quiera


que se ejecuten en el arranque para cualquier nivel de ejecución. Por defecto,
sólo incluye la salida inmediata.

Si sólo se quiere en algún nivel, habrá que añadirlos en el punto anterior.


6) Init finaliza aunque sigue ejecutándose en segundo plano, esperando a que
el modo de ejecución cambie.

8) Modificar GRUB

GRUB (GRand Unifier Bootloader) es un gestor de arranque: es lo primero que


se carga cuando se inicia la computadora. Permite tener diferentes sistemas
operativos, y diferentes versiones de ellos, en el mismo disco duro. Por ejemplo
podemos tener Windows y GNU/Linux en la misma computadora, GRUB se
cargará antes que cualquiera de éstos permitiéndonos elegir cuál iniciar.

El gestor de arranque GRUB viene preinstalado en la mayoría de las


distribuciones de GNU/Linux modernas, entre ellas Debian, Ubuntu y sus
derivadas. Anteriormente, el gestor de arranque más usado era LILO.

Para modificar el tiempo de espera, sistema operativo por defecto, el nombre


de los sistemas operativos y toda la información del arranque de cada uno de
ellos (igual que se hacía antes en /boot/grub/[Link]) se puede hacer
mediante el archivo /boot/grub/[Link] No es recomendable hacerlo de este
modo, ya que este archivo es un archivo creado automáticamente por el
sistema utilizando otros archivos que son los que se deben modificar para
cambiar los ajustes de Grub2. El archivo [Link] tambien se genera
escribiendo en terminal:

sudo update-grub2

 El archivo /etc/default/grub:

Una breve explicación de las líneas de este archivo:


GRUB_DEFAULT= 0/saved, con la opción 0 hacemos que se seleccione
por defecto la primera entrada, con la opción 1, la segunda, y así
succesivamente. Con la opción saved, hacemos que siempre
seleccione la última entrada que se ejecutó.
GRUB_TIMEOUT=10, le ponemos el tiempo de espera hasta ejecutar la
entrada que tenemos puesta como default.
GRUB_HIDDEN_TIMEOUT=0, esconde el menú de entradas del grub, si le
ponemos un tiempo mas alto lo que hace es esconder el menú, pero
esperarse un tiempo hasta continuar. Para hacerlo visible tenemos
que comentar (escribir # al principio) la linea y que queda de la
siguiente manera
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_MENU_QUIET=true/false, si está a "true" oculta la
cuenta atrás, mientras que si está a "false" muestra la cuenta
atrás.
GRUB_DISTRIBUTOR=lsb_release -i -s 2> /dev/null || echo Debian ,
determina el nombre de la entrada del menú.
GRUB_CMDLINE_LINUX="opciones", similar al altoptions del antiguo
grub.
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" quiet sirve para agrupar
las entradas iguales, mientras que splash sirve para que nos
muestre la imagen de carga en vez de los mensajes del kernel
#GRUB_GFXMODE=640x480 descomentar (escribir # al principio) la
línea activa el grub gráfico. Mediante el comando vbeinfo escrito
en la linea de comandos del grub vemos las posibilidades. Por
ejemplo:
GRUB_GFXMODE=1024x768
#GRUB_DISABLE_LINUX_RECOVERY="true" Descomenta esta línea para que
no aparezca la opción de recovery mode en el menú

También podría gustarte