Guia Linux - Conceptos Particionamiento
Table of Contents
- 1. Conceptos Básicos
- 2. [DOING] Particionamiento
- 3. [DOING] Comandos para FileSystems
- 4. [DOING] Información de particiones y dispositivos
- 5. Bootear Multiples Sistemas Operativos
- 6. File Manager
- 7. Glosario
1. Conceptos Básicos
1.1. MBR vs GPT
1.1.1. Conceptos
- Ambos son esquemas de partición y sólo se puede elegir uno u el otro (cambiar de un esquema al otro, implíca perder datos y los SO instalados)
- MBR es más antiguo (usa el modo BIOS) y limitado (hasta 4 particiones primarias, discos de hasta 2TB)
- GPT es más moderno (usa el modo UEFI) y no tan limitado (128 particiones primarias, discos de más de 2 TB)
1.1.2. Estructuras
1.1.3. MBR (Master Boot Record)
- Las siglas (MBR) refieren a Registro Maestro de Arranque
- Es el primer sector del disco (el sector cero) en donde la BIOS busca si hay algún Sistema Operativo
- Sólo trabaja en Modo BIOS Legacy
- Solo trabaja con Sistemas Operativos de
32 bits
(porque permite hasta 32 bits por c/sector de la unidad de almacenamiento) - Permite hasta 4 particiones primarias y reconoce discos duros de hasta
2 TB
- NO comprueba la seguridad e integridad de los discos duros
El sector MBR, que es el primer sector del disco ocupa
512 bytes
donde
446bytes
son para el Código de Arranque Maestro64 bytes
son para la (DPT) Tabla Partición del disco2 bytes
son para la firma de arranque (marca el fin del sector MBR)La limitante de solo tener hasta 4 Particiones primarias es porque hay
64 bytes
de espacio para la (DPT) Tabla de partición del disco, y sólo puede haber 4 Entradas a la Tabla de Partición cada una de16 bytes
. Estas últimas son las que guardan información de alguna Partición Primaria.Gestionar la limitante de las 4 particiones primarias, podriamos
- Crear 3 particiones primarias y 1 partición extendida
- La partición extendida la podemos dividir en particiones lógicas para grabar archivos.
- En las particiones primarias podriamos instalar sistemas operativos,
1.1.4. GPT (GUID Partition Table)
- (GPT) su traducción es Tabla de particiones GUID
- Requiere que la placa madre (motherboard) tenga UEFI
- Trabaja con Sistemas Opeativos de
32 bits
y64 bits
(porque permite hasta 64 bits por c/sector de la unidad de almacenamiento) - Trabaja en
Modo UEFI
(se habilita en la configuración de la BIOS) - Permite hasta de 128 particiones por disco, y reconoce discos duros de más de
2TB
- Se debe crear una partición
EFI
(de 500-600mb) que- se ponen los módulos de arranque de todas las particiones
- permite listar todos los (SO)
Otros datos relevantes son
- Para crear discos en la terminal de linux, se utilizan los comandos
gdisk
óparted
- Se debe habilitar el Modo UEFI en la configuración de la BIOS
- Se asegura de la integridad de los datos del disco, mediante una suma de comprobación de redundancia cíclica
CRC32
- Chequea la integridad de la cabecera GPT
- Si el
CRC
detecta daños en los datos => intenta recuperarlos con los respaldos de seguridad al final del disco
1.1.5. Referencias Web
1.1.6. Cuanto Espacio Asignar
- La partición de booteo (que debe ser primaria) suele asignarse
/boot
como punto de montaje - Si el disco utiliza MBR se sugiere
300mb
- Si el disco utiliza UEFI se sugiere
600mb
1.2. Modo BIOS Legacy Vs Modo UEFI
1.2.1. Conceptos
- Tanto BIOS Legacy como UEFI son software a bajo nivel, que inician al encender el ordenador
1.2.2. Problemas de Cambio de Modo
Podemos cambiar la forma de booteo de Modo BIOS al Modo UEFI en la configuración de la BIOS, pero esto implíca perder datos y volver reinstalar los sistemas operativos
1.2.3. BIOS Legacy (Basic Input/Output System)
- Es un software de bajo nivel que se encuentra en un chip de la placa base del ordenador
- Utiliza una memoria CMOS
La estructura básica de arranque sería
Bios -> MBR -> (Boot Loader -> Kernel) -> Sistema Operativo
El proceso de arranque de la BIOS más en detalle sería
- Se enciende, se carga el BIOS
- Identifica el dispositivo de arranque (en la configuración de la placa madre se puede cambiar)
- Detecta el código almacenado en el sector MBR (el código maestro de arranque)
- El MBR carga el código de sector de arranque de la partición activa (se puede activar en la terminal con fdisk ó con un gestor de particiones)
- El sector de arranque carga y ejecuta el cargador de arranque (boot loader)
1.2.4. UEFI (Unified Extensible Firmware Interface)
- Las siglas (UEFI) significan Interfaz de Firmware Extensible Unificada
- Es un software intermedio entre el firmware y el sistema operativo
- Reemplaza al antiguo Modo BIOS Legacy
- Tiene un tiempo de arranque más rápido comparado con el Modo BIOS Legacy
- Permite recuperación de datos dañados (los respaldos están en los ultimos sectores del disco gpt)
- Aporta más seguridad, protege el proceso previo al arranque del SO
- Tienen interfaz gráfica más moderna y soporte para mouse
Utiliza una memoria flash
La estructura básica de arranque sería
UEFI -> EFI+Boot+Loader -> Kernel -> Sistema Operativo
El proceso de arranque de la UEFI más en detalle sería
- El gestor de arranque en la UEFI chequea la configuración de arranque
- El gestor de arranque se carga en la Memoria, y ejecuta el (loader) cargador del Sistema operativo ó su kernel
1.2.5. Referencias
1.3. [TODO] Tabla de Particiones
1.3.1. Conceptos
Contiene información sobre las particiones
- Formato (Ej. NTFS, ext2, ext3, FAT32,…)
- Tamaño
- Ubicación del Sector
- Si es arrancable o no
1.4. [TODO] Firma de unidad arrancable
1.4.1. Conceptos
- Indica la posición del volumen de arranque
1.5. [DOING] Gestores de Arranque
1.5.1. Conceptos
- Permiten elegir el sistema operativo a iniciar
1.5.2. GRUB
1.5.3. LILO
1.6. Particiones
1.6.1. Conceptos
- Las particiones son discos duros virtuales/lógicos que se crean en un disco físico
1.6.2. Partición Primaria
- Se pueden poner sector de arranque para bootear un SO
- Se pueden grabar datos
1.6.3. Partición Extendida
- Sólo son necesarias en discos con MBR
- Cosas que NO se pueden hacer en una partición extendida
- NO se puede instalar Sistemas Operativos
- NO se puede grabar ficheros
- NO se puede poner un sector de arranque
- Se pueden partir en particiones lógicas
1.6.4. Unidades Lógicas
- Solo se pueden grabar datos
1.7. [TODO] Sistemas de Archivos - FileSystems
1.7.1. Conceptos
- Para linux tenemos ext2,ext3,ex4
1.7.2. Linux
- ext2,ext3,ext4 para datos
- swap para la zona swap,
1.7.3. Windows
- FAT32 para los datos
2. [DOING] Particionamiento
2.1. Listar/Crear/Eliminar partición
2.1.1. Conceptos
Posibles herramientas para particionar via terminal son
- fdisk
- parted
2.1.2. Comando fdisk
- Para listar/crear/borrar particiones seleccionamos las letras de las operaciones una vez dentro
- Los cambios persisten en memoria como lectura hasta que decidamos persistirlos en disco
- Para guardar los cambios elegimos la operación write con
w
# gestionamos el disco a particionar # (dev=device, sda=primer disco detectado) fdisk /dev/sda
Algunas operaciones que podemos encontrar son
operación | Descripcion |
---|---|
n | Crear una partición (opción p para primaria y e para extendida) |
w | Escribir/Guardar los cambios |
m | Listar menú de operaciones (actúa como un –help) |
p | Listar particiones primarias |
d | Eliminar una partición seleccionada |
Listar los tipos de particiones (Ej. SWAP, Ext2,Ext3,Ext4,…) | |
t | Cambiar el tipo de una partición |
o | Crear tabla de partición DOS |
2.1.3. Comando parted
Para gestionar las particiones iniciamos con el comando parted /dev/sda
(cambiamos "sda" por el dispositivo que queramos)
Algunas operaciones que podemos encontrar son
operación | Descripcion |
---|---|
mkpart | Crear una partición |
2.1.4. Listar particiones
# con permisos root - tool parted sudo parted /dev/sda print # con permisos root - tool fdisk sudo fdisk --list /dev/sda # sin permisos root lsblk -S
2.2. Tipo de Partición
2.2.1. Conceptos
- El comando
mkfs
significa make filesystem - El formato swap se refiere al área de swap (memoria en disco)
2.2.2. Comando mkfs (make file system)
- Crea un file system en una partición (debe estar montada, es decir tener asociado un punto de montaje)
Parámetro | Descripción |
---|---|
Q | Quick, para formatear rápido |
L | Label, para asignarle una etiqueta al volumen |
# Formateamos el disco sda1 # - le asignamos el tipo "ext3" (para linux) # - le decimos que se haga "rápido" (parámetro Q) # - le asignamos la etiqueta "manjarito" (parámetro L) sudo mkfs.ext3 -QL manjarito /dev/sda1
2.3. Montar/Desmontar Partición
2.3.1. Punto de Montaje (Mountpoint)
- Ruta donde vamos a montar una partición (Ej. /mnt/boot, /mnt/usb)
- Si queremos utilizar una partición como gestor de archivos => debemos asociarle un punto de montaje
2.3.2. Comando mount
- Si queremos utilizar una partición como gestor de archivos => debemos asociarle un punto de montaje
Algunos parámetros que podemos pasarle a mount
son
Parámetro | Descripción |
---|---|
-t tipoParticion |
Especificar el tipo de partición a montar |
-o ro |
Cambia los permisos de acceso a sólo lectura "read only" |
2.3.3. Comando umount
- Si queremos formatear una partición => debemos desmontarla
2.3.4. Ejemplo 1 - Basico
# -> Montamos un dispositivo usb, llamado "sdb2" # -> Especificamos el formato NTFS # -> Punto de montaje será la ruta "/mnt/usb1" sudo mount -t ntfs /dev/sdb2 /mnt/usb1 # -> Desmontamos el dispositivo # -> Previo a desmontar, debemos cerrar los archivos que tengamos abiertos de este dispositivo sudo umount /mnt/usb1 # -> Montamos un disco duro como dispositivo, llamado "sda2" # -> Especificamos el formato NTFS # -> Punto de montaje será la ruta "/mnt/storage" sudo mount -t ntfs /dev/sda2 /mnt/storage # -> Montamos un disco duro como dispositivo, llamado "sda5" # -> Tiene previamente instalado Windows10 # -> Especificamos el formato FAT32 # -> Punto de montaje será la ruta "/mnt/win10" sudo mount -t fat32 /dev/sda5 /mnt/win10 # -> Montamos un disco duro como dispositivo, llamado "sda6" # -> Tiene previamente instalado Debian # -> Especificamos el formato ext4 (requisito para distribuciones Linux) # -> Punto de montaje será la ruta "/mnt/debian" sudo mount -t ext4 /dev/sda6 /mnt/debian
2.3.5. Ejemplo 2 - Asignando usuario y permisos
Los parametros del comando mount
Parámetro | Descripción |
---|---|
uid |
Le pasamos nuestro usuario, que nos lo devuelve id -u |
dmask |
|
fmask |
# nos devuelve el id del usuario con el que iniciamos la sesion actual de la terminal id -u # solo cambiamos el 1001 por lo que nos devuelve id -u sudo mount -o rw,user,uid=1001,dmask=007,fmask=117 /dev/sda10 /mnt/mystorage #sudo mount -t ntfs -o ro /dev/sda10 /mnt/mystorage
2.4. Asignar permisos
Creamos una partición primaria del tipo NTFS y le asignamos los permisos al usuario Con el comando
id -u -n
obtenemos el nombre de usuario, mientras que conchown
le damos acceso a un usuario especifico a un directorio/archivo
# para saber el nombre de usuario id -u -n # para asignarle los permisos de ese usuario sudo chown nombreUsuario /storage/
2.5. Partición para Windows-Linux
Si la partición va interactuar entre Windows y Linux, se recomienda que sea NTFS. Si sólo va a ser entre distribuciones Linux, se recomienda Ext4
A good practice for some static mounted storage system like you are doing is to add a permanent mount point to /etc/fstab. There are several ways to do it, but I just wanted you to be aware.
2.6. Anclar un directorio al Gestor de archivos
El File manager por defecto de Ubuntu es Nautilus
# luego de ingresar a la ruta, presionar Control+D cd /mnt/mystorage
2.7. Referencias
2.7.1. Referencias Web Extraoficiales
2.7.2. Referencias Youtube
- Redimensionar con Gparted en Ubuntu
- Como automontar un disco en linux - By OhHeyItsLou
- Como montar una partición con Windows en Ubuntu - By DevTechSolutions
- Como montar automaticamente particiones NTFS en Linux - By Root Tech
- Particiones primarias/logicas/extendidas
- Recuperar Tabla de Particiones
- Redimensionar Particiones en Ubuntu
- Redimensionar particiones
- Particionar disco duro en Ubuntu
3. [DOING] Comandos para FileSystems
3.1. Comando df (file system disk space usage)
3.1.1. Conceptos
- NO necesita del comando
sudo
- El filesystem debe estar montado para utilizar el comando en él
- Muestra estadísticas de cada filesystem (ruta de punto de montaje, el tamaño utilizado/disponible, ..)
- Si no especificamos el punto de montaje, lista todos los file system montados
- Seguido al comando podemos especificar el punto de montaje
- Seguido al comando podemos poner una ruta, y dará información del fs donde está incluida
Parámetro | Descripción |
---|---|
h |
Muestra la información en un formato humanizado (más entendible) |
T |
Muestra el tipo de filesystem (Ej. NTFS, FAT32, ext3, ext4, …) |
3.1.2. Ejemplo (1)
# -> listamos todos los filesystem # # -> parámetro h: en un formato más humanizado # -> parámeto T: agrega la columna del tipo de filesystem df -hT # -> especificamos el punto de montaje df -hT /dev/sda10 # posible respuesta S.ficheros Tipo Tamaño Usados Disp Uso% Montado en /dev/sda10 ext4 88G 81G 2,8G 97% /
3.2. Comando du (estimate file space usage)
3.2.1. Conceptos
- Muestra estadísticas de uno o varios archivos/directorios (tamaño, nombre)
- NO necesita del comando
sudo
Parámetro | Descripción |
---|---|
h |
Muestra la información en un formato humanizado (más entendible) |
c |
Agrega el tamaño total de todos los archivos/directorios |
s |
Da un resumen de cada directorio, caso contrario será recursivo |
3.2.2. Ejemplo (1)
# -> El asterisco actúa como comodín, representa todos los archivos/sub-directorios de la ruta # -> # -> parámetro "h": muestra los datos en un formato humanizado (más entendible) # -> parámetro "c": muestra el tamaño total de todos los archivos # -> parámetro "s": da un resumen de cada directorio, sin listar cada archivo/subdirectorio du -hcs /tmp/pepe/* # -> Obtenemos información de todos los archivos/sub-directorios de la ruta en la que estemos du -hcs ./*
3.2.3. Ejemplo (2)
# No es necesario poner el ~./~ antes del asterisco, funciona igual. # Lo agregamos con fines practicos, para entender que lo hacemos en la ruta donde estamos parados. [jelou@jelou-pc Descargas]$ du -hcs ./* 4,0K ./agenda.txt 4,0K ./almendras 0 ./chau 0 ./hola 0 ./pedro 0 ./productos 8,0K total [jelou@jelou-pc Descargas]$ du ./* 4 ./agenda.txt 4 ./almendras 0 ./chau 0 ./hola 0 ./pedro 0 ./productos/farmacia/siempre 0 ./productos/farmacia 0 ./productos
4. [DOING] Información de particiones y dispositivos
4.1. Comando lsblk (list block devices)
- Muestra un listado de los dispositivos en formato de árbol
- Si queremos información resumida ejecutamos
lsblk -S
# ejecutamos el comando lsblk # el resultado es el siguiente NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 465,8G 0 disk ├─sda1 8:1 0 1000M 0 part ├─sda2 8:2 0 260M 0 part /boot/efi ├─sda3 8:3 0 1000M 0 part ├─sda4 8:4 0 128M 0 part ├─sda5 8:5 0 247,9G 0 part ├─sda6 8:6 0 452M 0 part ├─sda7 8:7 0 25G 0 part ├─sda8 8:8 0 12G 0 part ├─sda9 8:9 0 5,9G 0 part [SWAP] ├─sda10 8:10 0 89,8G 0 part / └─sda11 8:11 0 53,2G 0 part sr0 11:0 1 1024M 0 rom
4.2. Comando hdparm
- Requiere del comando
sudo
- Parte de la información que imprime es
- Modelo de disco
- Número de serie
- Firmware
- Configuración (cilindros, cabeceras, sectores, …)
- Características (host protected area, write cache, …)
- Seguridad
# - el parámetro "I" solicita información de las especificaciones de hardware del disco duro # - con la ruta "/dev/sda" indicamos que dispositivo, en este caso el disco *sda* # pd: acortamos la cant. de información [jelou@jelou-pc ~]$ sudo hdparm -I /dev/sda | less ATA device, with non-removable media Model Number: HGST HTF525050A7E320 Serial Number: TFA55A3R29JH7J Firmware Revision: GC2Z2D91 # también podemos evaluar el rendimiento [jelou@jelou-pc ~]$ sudo hdparm -tT /dev/sda Timing cached reads: 10408 MB in 1.99 seconds = 5220.06 MB/sec Timing buffered disk reads: 222 MB in 3.02 seconds = 73.47 MB/sec [jelou@jelou-pc ~]$ sudo hdparm -tT /dev/sda Timing cached reads: 10776 MB in 1.99 seconds = 5405.44 MB/sec Timing buffered disk reads: 288 MB in 3.01 seconds = 95.65 MB/sec
4.3. Comando blkid
- NO necesita del comando
sudo
- Podemos especificar la partición (Ej. blkid /dev/sda1) caso contrario muestra sobre todas las particiones
- La información por defecto que imprime es
- UUID (son los identificadores universales únicos que identifican a las particiones)
- Nombre del dispositivo (sda1, sda2, sdb1, sdb2, …)
- Etiqueta (Windows8OS, Windows10, Manjaro, Debian, …)
- Tipo de partición (ntfs, vfat, ext3, ext4, swap, …)
- Tamaño del bloque
# podemos consultar por todas las particiones [jelou@jelou-pc ~]$ blkid /dev/sda1: LABEL="Windows8_OS" BLOCK_SIZE="512" UUID="160252C68156AA3F" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="1d5cf7f1-411c-4784-ba21-f4aa45dd646e" /dev/sda2: LABEL="RAM" UUID="37c62451-7261-2c90-ac93-26f8108ff43a" TYPE="swap" PARTUUID="11bee604-5954-45b2-a235-ab2862b22f35" /dev/sda3: LABEL="Storage" UUID="212b83f5-3e5g-417c-a21d-35cd7gfa6245" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="c21e230f-30db-401c-a211-33f2b2fg9bf2" /dev/sda4: LABEL="Manjarito" UUID="282f2b60-36ad-162c-c191-e2c2cb17c786" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="a522ed53-3b6b-4b3e-127a-e52d40dfb5fb" # si preguntamos por una partición específica [jelou@jelou-pc ~]$ blkid /dev/sda1 /dev/sda1: LABEL="Windows8_OS" BLOCK_SIZE="512" UUID="160252C68156AA3F" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="1d5cf7f1-411c-4784-ba21-f4aa45dd646e"
5. Bootear Multiples Sistemas Operativos
5.1. Conceptos
Si tenes un sistema operativo por defecto por ejemplo Windows, y lo queres mantener podemos recurrir a como dicen "bootear" varios sistemas operativos, en este caso seria varias distribuciones de linux.
Por lo general se suele crear un GRUB el que se ira modificando
I install Ubuntu GNOME (mount point: / ) into /dev/sda5. I remember to give mount points to /work (ext4) and /storage (NTFS) like mentioned in the 2.3 section of this article. Be careful not to mark them as to be formatted. The Swap partition gets automatically recognized, no need to worry about that.
I install Manjaro XFCE to /dev/sda6 partition. And once again, I remember to give mount points to /work (ext4) and /storage (NTFS) and to NOT format them.
I install Kubuntu ( / ) to /dev/sda8. Mount points also to /work (ext4) and /storage (NTFS), again. And, the Swap partition gets automatically recognized, again. And finally, after installation is successfully finished, one last time to install the
Refind boot manager in Terminal in Xubuntu: sudo dpkg -i ~/Downloads/refind0.10.4-1amd64.deb
Observación: Por el momento sólo recomendamos ver las referencias Web que adjuntamos
5.2. Conocer versión del GRUB
# saber la version de grub grub-install -v
6. File Manager
6.1. Conceptos
Si aún no estás familiarizado a usar por completo la terminal para la gestión de archivos, te sugerimos instalar un programa con interfaz gráfica (GUI) que facilita dicha tarea.
6.2. Instalación
sudo apt-get install thunar
7. Glosario
7.1. Rutas
- dev: se refieren a device IO (dispositivo de entrada/salida)
- mnt: se refiere "mountpoint" (punto de montaje) donde se montan particiones)
7.2. Comandos
- mkfs: significa "make filesystem" crear el "sistema de ficheros"
7.3. Otros
- sda/sdb: hacen referencia a los dispositivos de almacenamiento masivo (disco duro)
- sda: al primer disco detectado
- sdb: al segundo disco detectado