domingo, 6 de julio de 2025

Sistemas Operativos 5.- Administración de dispositivos


 ¿Te pierdes entre tantos temas? 📚✨ Descubre todo lo que ofrece este blog en un solo vistazo [👉 Ver índice completo]

ADMINISTRACIÓN DE DISPOSITIVOS.


INTRODUCCIÓN.

Como vamos a tratar a continuación de la administración de dispositivos, antes de seguir con el resto del tutorial, es necesario añadir un nuevo disco virtual a la máquina virtual que tengamos. A continuación te explico cómo hacerlo paso a paso, tanto si usas VMware como VirtualBox:


En VMware (Workstation o Player)

  1. Apaga la máquina virtual si está encendida.

  2. Selecciona la máquina virtual en el panel principal.

  3. Haz clic en "Edit virtual machine settings" (Editar configuración de la máquina).

  4. En la ventana que se abre, haz clic en "Add...".

  5. Selecciona "Hard Disk" y haz clic en "Next".

  6. Elige el tipo de disco (por defecto está bien) y pulsa "Next".

  7. Elige "Create a new virtual disk" y pulsa "Next".

  8. Elige el tamaño del disco (por ejemplo, 5 GB), y marca "Store virtual disk as a single file" si lo prefieres.

  9. Pulsa "Finish" y luego "OK" para cerrar la configuración.

💡 Consejo: El nuevo disco aparecerá como /dev/sdb, /dev/sdc, etc., dentro de Linux, dependiendo del orden de los discos.

En VirtualBox

  1. Apaga la máquina virtual si está encendida.

  2. Selecciona la máquina en la lista y haz clic en "Configuración" (icono de engranaje).

  3. Ve a la sección "Almacenamiento".

  4. En el árbol de almacenamiento, selecciona el controlador SATA (o IDE si lo estás usando).

  5. Haz clic en el icono de disco con un símbolo "+" (Agregar disco duro).

  6. Elige "Crear un nuevo disco" y haz clic en "Siguiente".

  7. Selecciona el tipo de disco (por defecto, VDI) y pulsa "Siguiente".

  8. Elige almacenamiento dinámico o tamaño fijo, según prefieras.

  9. Define el tamaño (por ejemplo, 5 GB) y pulsa "Crear".

  10. Finalmente, haz clic en "Aceptar" para guardar los cambios.

El sistema de archivos de Debian, Ubuntu y Similares.

En Ubuntu (y Linux en general), el sistema de archivos tiene una estructura jerárquica que comienza en la raíz / y se organiza en carpetas y subcarpetas. A diferencia de Windows, no se usan letras como C: o D:, sino puntos de montaje que se asignan a cada disco o partición.

Todos los discos y dispositivos se representan como archivos especiales en el directorio /dev. Por ejemplo:

  • /dev/sda → Primer disco (normalmente el principal)

  • /dev/sda1 → Primera partición del primer disco

  • /dev/sdb → Segundo disco

  • /dev/sdb1 → Primera partición del segundo disco

  • /dev/sdb2 → Segunda partición del segundo disco

  • Y así sucesivamente...

🗂️ Tipos comunes de sistemas de archivos en Linux:

  • ext4: El más usado en Linux, especialmente para la raíz /.

  • iso9660: Para CD-ROM.

  • msdos y vfat: Compatibles con sistemas FAT de Windows.

  • ntfs: Para particiones NTFS de Windows.

  • nfs: Para compartir archivos en red.

  • udf: Para discos CD-RW y DVD.

  • vboxsf: Para compartir carpetas con el host en VirtualBox.


AÑADIR CORRECTAMENTE UN DISCO DURO.

Si hemos añadido el nuevo disco duro correctamente a nuestra máquina Linux, lo primero que tenemos que comprobar es que efectivamente este nuevo disco duro está añadido. Para ello desde la consola de Linux ejecutaremos como root el comando:


  • sudo fdisk -l //nos muestra los discos duros y particiones del sistema.


sudo fdisk -l

Como ves en mi ejemplo tengo el disco principal /dev/sda con tres particiones y el nuevo disco duro que he añadido, que aparece correctamente conectado como /dev/sdb y que por el momento no tiene ninguna partición.


TRABAJAR CON LAS PARTICIONES.

Todas las operaciones que podemos realizar con las particiones se hace a través del comando fdisk.


Crear una partición.

Para crear una partición usaremos el comando:

sudo fdisk disco_duro. //en mi caso /dev/sdb

Vamos a ver con un ejemplo como crear dos particiones de 2,5 gb cada una.

sudo fdisk disco_duro

Como ves la opción a elegir es la “n” de nueva y prácticamente basta con escoger las opciones por defecto. En mi caso solo he modificado el tamaño de las particiones para que sean aproximadamente de 2,5GB. El programa almacena los cambios en memoria, pero no los ejecuta realmente hasta que no tecleas la letra “w” (escribir cambios).

Modificar el tipo de sistema de archivos de cada partición.

Por defecto cuando creas una partición esta es de tipo Linux y está en memoria hasta que se graban con la opción “w”. Los sistemas más utilizados son :

ext4 → Linux → 83

ntfs → Windows → 07

Recuerda estos números porque los vamos a necesitar. Realmente no porque en el transcurso del proceso puedes teclear la opción “L” para ver los tipos de archivos admitidos, pero es más rápido saberlos. En el ejemplo anterior voy a poner que la primera partición /dev/sdb1 sea, por ejemplo, exfat y la segunda partición del nuevo disco /dev/sdb2 sea de tipo linux ext4.

El comando es:

sudo fdisk disco_duro // en mi caso /dev/sdb

En este caso la opción a elegir es “t” de tipo.

fdisk opcion t

Borrar una partición.

Para borrar una partición usaremos el comando:

sudo fdisk disco_duro

y utilizaremos la opción “d” de delete/borrar. El sistema nos pedirá el número de partición a borrar y cuando estemos seguros de los cambios lo confirmaremos con la opción “w”

Por ejemplo para borrar la partición primera del disco que he añadido:

borrar particion

En resumen, para trabajar con las particiones de un disco duro usaremos siempre el comando:

sudo fdisk disco_duro

con las opciones:

  • n” → crear una nueva partición.

  • d” → borrar una partición.

  • p” → ver las particiones primarias.

  • l” → listas de sistemas de archivos.

  • w” → guardar los cambios.

  • q” → salir del programa sin guardar los cambios.

Una vez creadas las particiones en un disco nuevo, para poder utilizarlas tenemos aunque hacer algunas cosas. La primera de ellas es dar formato a estas particiones.

FORMATEAR UNA PARTICIÓN.

En el ejemplo que estoy utilizando, tengo solamente una partición que esta preconfigurada para linux – ext4. Sin embargo, por la razón que sea, a mi me interesa formatearla en ntfs. Para ello usaremos el comando:

sudo mkfs -t tipo_formato partición_a_formatear

Por ejemplo:

formatear una partición

El tipo puede ser el que ten interese, ext4, ntfs etc, también puedes utilizar los números que vimos antes el 83 para ext4 o el 07 para ntfs.

En lugar de usar mkfs -t tipo, puedes usar directamente los comandos correspondientes a cada sistema. Aquí tienes una tabla con los más comunes:

Sistema de archivos

Comando

Ejemplo

ext2

mkfs.ext2

mkfs.ext2 /dev/sdX1

ext3

mkfs.ext3

mkfs.ext3 /dev/sdX1

ext4

mkfs.ext4

mkfs.ext4 /dev/sdX1

XFS

mkfs.xfs

mkfs.xfs /dev/sdX1

Btrfs

mkfs.btrfs

mkfs.btrfs /dev/sdX1

ReiserFS

mkfs.reiserfs

mkfs.reiserfs /dev/sdX1

FAT32

mkfs.vfat

mkfs.vfat -F 32 /dev/sdX1

exFAT

mkfs.exfat

mkfs.exfat /dev/sdX1

NTFS

mkfs.ntfs o mkntfs

mkfs.ntfs /dev/sdX1 o mkntfs /dev/sdX1

📌 Reemplaza /dev/sdX1 por la partición que quieras formatear. Asegúrate de que no esté montada antes de proceder.

Pero para poder trabajar con las particiones, además de crearlas y formatearlas tenemos que montarlas.

Montaje de las particiones.

Ya casi lo tenemos todo listo para poder utilizar la partición, solo nos queda montarla. Vamos a ver como se puede hacer como root y como un usuario normal.

Como Root.

Lo primero que vamos a ver es si tenemos la partición creada y formateada correctamente. Para ello podemos utilizar el comando lsblk o sudo fdisk -l.

lsblk

Como ves en la imagen tengo la partición segunda del disco 2 (sdb2) creada correctamente

En segundo lugar crearemos un punto de montaje, es decir crearemos una carpeta desde donde se accederá al contenido de la partición. Por ejemplo:

sudo mkdir /mnt/miparticion

Para finalizar montaremos la partición en ese directorio con el comando:

sudo mount partición punto_montaje

En mi ejemplo sería:

montaje de una partición

Para comprobar que la unidad está montada correctamente podemos utilizar el comando lsblk o df -h o mount | grep nombre_particion.

ver si una partición está montada

La partición ya está montada. No obstante como la ha montado el root a no ser que modifiques los permisos del directorio, los miembros del grupo root y el resto solo podrán leer y ejecutar, ya que los permisos por defecto cuando creas un directorio en Linux son:

drwxr-xr-x

Es decir el root puede hacer todo lo que quiera sobre el directorio, y el grupo y el resto pueden leer y ejecutar, pero no modificar el contenido.

Al final de este post pondré como puedes modificar los permisos de los archivos o directorios con el comando chmod siendo root.

Para desmontar una partición usaremos el comando:

sudo umount [partición|punto_montaje]

En mi ejemplo bien:

sudo umount /dev/sdb2

o

sudo umount /mnt/miparticion

Recalcar que para desmontar una partición no puedes estar dentro del punto de montaje, es decir no puedes estar dentro de ese directorio o usando la misma.

Como Usuario.

Lo más importante es saber que, un usuario monta lo que le permite el root en el fichero /etc/fstb (solo modificable por el root)

La estructura de la línea que debemos añadir al fichero /etc/fstab para permitir montar una partición al usuario es la siguiente:

partición punto de montaje tipo características

Siendo las características que podemos poner las siguientes:

auto/noauto → para que la partición se monte automáticamente al iniciar el sistema.

user/nouser → permite que la partición pueda ser montada por un usuario o que no pueda

ro/rw → read only (solo para lectura) o read write (leer y escribir)

exec/noexec → permite programas ejecutables o no

defaults → opciones por defecto. Las opciones por defecto son las siguientes:

Opción

Significado

rw

Montar con permisos de lectura y escritura.

suid

Permitir la ejecución de binarios con el bit setuid o setgid.

dev

Interpretar dispositivos especiales (como /dev/null) en la partición.

exec

Permitir la ejecución de binarios.

auto

Montar automáticamente al arrancar el sistema (a menos que se use noauto).

nouser

Solo root puede montar la partición.

async

Escritura asíncrona (mejora el rendimiento).

Vamos a ver en mi ejemplo como modificar el fichero /etc/fstab para que se monte automáticamente y cualquier usuario pueda leer y escribir en el. Para ello haré que mi partición de /dev/sdb2 sea de tipo ext4 y luego haré lo siguiente:

  1. Como root creamos el punto de montaje. Para que cualquier usuario pueda crear algo en esa partición hay que darle permisos de escritura +w o 777 a los grupos y a otros en la carpeta que albergara el punto de montaje.

    crear directorio para el punto de montaje


  2. Una vez creada la carpeta que contendrá el punto de montaje, editamos como root el archivo /etc/fstab, la estructura es la misma siempre:

                        Partición -> Punto de Montaje ->  tipo -> características

archivo fstab

Guardamos los cambios y o bien reiniciamos el sistema o como root podemos ejecutar el comando:

sudo mount -a // que montará automáticamente todo lo que este en el archivo fstab

  1. y ya podemos con cualquier usuario crear archivos nuevos o carpetas en el punto de montaje.

    creación nuevo archivo


Si en el root utiliza en las características del archivo /etc/fstab “noauto” y deja el resto igual el usuario tendrá que montar manualmente la partición bien con:

mount partición // mount /dev/sdb2 en el ejemplo

mount Punto de montaje // mount /Punto_Montaje en el ejemplo.

El comando chmod.

El comando chmod en Linux se utiliza para cambiar los permisos de acceso a archivos y directorios.

Permisos básicos en Linux

Cada archivo/directorio tiene tres tipos de permisos para tres tipos de usuarios:

Tipos de permisos:

  • r → lectura (read)

  • w → escritura (write)

  • x → ejecución (execute)

Tipos de usuarios:

  • u (user): el dueño del archivo

  • g (group): el grupo al que pertenece el archivo

  • o (others): todos los demás

  • a (all): todos los anteriores (user + group + others)


Sintaxis básica

chmod [opciones] modo archivo
+ poner permiso
- quitar permiso

Formato simbólico (letras)

Este formato usa letras y símbolos:

chmod u+x archivo.txt

Significa: añadir permiso de ejecución (+x) al usuario (u) dueño del archivo.

Otros ejemplos:

chmod g-w archivo.txt     # quita escritura al grupo
chmod o=r archivo.txt     # deja solo lectura para otros
chmod a+rw archivo.txt    # da lectura y escritura a todos

Formato numérico (más usado)

Cada permiso tiene un valor numérico:

Permiso

Valor

r

4

w

2

x

1

Se suman para cada tipo de usuario:

chmod 754 archivo.txt

Esto significa:

  • 7 (4+2+1) → el dueño tiene lectura, escritura y ejecución.

  • 5 (4+0+1) → el grupo tiene lectura y ejecución.

  • 4 (4+0+0) → otros solo lectura.

Otros ejemplos comunes:

  • chmod 777 → todos tienen todos los permisos (¡inseguro!)

  • chmod 644 → dueño puede leer y escribir, grupo y otros solo leer

  • chmod 755 → dueño todo, grupo y otros solo leer y ejecutar (típico para scripts)

Opción útil

  • -R → cambia permisos de forma recursiva (para directorios):

chmod -R 755 mi_carpeta/

Comado FIND.

Es un comando que sirve para buscar cosas. Su síntesis básica es:
find [ruta] [opciones] [acción]
Las opciones más habituales son las siguientes:
-name	nombre que se busca.
-user	creado por un determinado usuario
-type tipo de archivo bien sea f,d,l etc.

🔍 Ejemplos prácticos

1. Buscar por nombre

find /home/usuario -name "archivo.txt"

🔹 Busca exactamente archivo.txt en /home/usuario.


2. Buscar por extensión o patrón

find . -name "*.pdf"

Busca todos los archivos PDF desde el directorio actual (.).


3. Buscar sin importar mayúsculas/minúsculas

find . -iname "foto.jpg"

Coincide con foto.jpg, FOTO.JPG, Foto.Jpg, etc.


4. Buscar solo directorios o solo archivos

find . -type d       # solo directorios  
find . -type f       # solo archivos

5. Buscar por tamaño

find . -size +100M     # archivos de más de 100 megas
find . -size -1k       # archivos de menos de 1 kilobyte

6. Buscar por fecha de modificación

find . -mtime -7       # modificados en los últimos 7 días
find . -mtime +30      # modificados hace más de 30 días

7. Buscar y ejecutar una acción (como borrar)

find . -name "*.tmp" -delete           # borra archivos .tmp
find . -name "*.log" -exec rm {} \;    # otra forma de borrarlos
  • {} representa cada archivo encontrado.

  • \; indica el final del comando.


🔐 Buscar por permisos

find . -perm 777          # archivos con permisos 777
find . -perm -u=x         # archivos ejecutables por el dueño

🧠 Resumen rápido

Opción

Qué hace

-name

Busca por nombre

-iname

Nombre sin distinguir mayúsculas

-type f/d

F = archivo, D = directorio

-size

Por tamaño

-mtime

Por fecha de modificación

-perm

Por permisos

-exec

Ejecuta un comando por archivo

-delete

Borra archivos directamente

Comando DU

Sirve para: Ver cuánto ocupa un archivo o carpeta en el disco.

Sintaxis básica:

du [opciones] [ruta]

🔹 Opciones más útiles

Opción

Qué hace

-h

Muestra el tamaño en formato legible (MB, GB)

-s

Muestra solo el total, no cada subcarpeta

--max-depth=N

Limita la profundidad de carpetas a mostrar

-a

Incluye archivos individuales en la salida

-c

Muestra el total final


📊 Ejemplos prácticos

📁 Ver tamaño total de una carpeta:

du -sh /home/usuario

📂 Ver tamaño de subcarpetas hasta 1 nivel:

du -h --max-depth=1 /home/usuario

Ver tamaño de un archivo:

du -h archivo.iso

📈 Ver qué ocupa más (ordenado):

du -h --max-depth=1 | sort -hr

🧠 Consejos

  • Combínalo con sort para detectar qué carpeta ocupa más espacio.

  • Usa -s si solo te interesa el total, sin detalles.

  • Usa --max-depth=2 si quieres ver subniveles.


No hay comentarios:

Publicar un comentario