Lathack

Manipulación de particiones en Linux

Manipulación de particiones en Linux

Para llevar a cabo un correcto uso de manipulación de particiones en Linux, veremos cómo crear sistemas de archivos y realizar particiones entre otras cosas. Es recomendable haber repasado los conceptos fundamentales de particiones en el nivel básico.

Identificación de discos

En Linux, los discos rígidos son listados y representados dentro de la carpeta /dev. Para ser identificados, el kernel les agrega un identificador que comienza con hd para el caso de discos IDE , o sd para el caso de discos SATA o SCSI . Adicionalmente, a cada uno de estos identificadores se les agrega una letra alfabética para su posición.

Identificador del Disco Duro Dispositivo Lógico:

hda Maestro Interfaz Primaria

hdb Esclavo Interfaz Primaria

hdc Maestro Interfaz Secundaria

hdd Esclavo Interfaz Secundaria

SATA, SCSI y dispositivos de almacenamiento USB:

sda Primer Disco

sdb Segundo Disco

sdc Tercer Disco

Identificador de volúmenes lógicos (Se especificarán estas particiones más adelante):

Los volúmenes lógicos, suponiendo que el VG (volume group) existente se llama vglinux, se pueden listar de la siguiente manera:

# ls -l /dev/fedora/+([a-z A-Z0-9+_.-])

Otra manera de mostrar estos dispositivos es así:

# ls -l /dev/mapper

Tener encuenta:

El archivo /dev/mapper/ especifica el control usado por herramientas de visualización y configuración de LVM’s (volúmenes lógicos) y otros tipos de dispositivos.

Configuración de Particiones

Recordemos que el esquema de particiones MBR, los discos rígidos permiten un máximo de 4 particiones primarias, de las cuales una puede ser extendida. A su vez, las particiones extendidas pueden contener particiones lógicas.

Particionando con fdisk

Esta es una aplicación disponible para varios sistemas operativos. Dicha utilidad permite dividir en forma lógica un disco duro, siendo denominado este nuevo espacio como partición. La descripción de las particiones se guarda en la tabla de particiones que se localiza en el sector 0 de cada disco. La versión fdisk de Linux permite crear particiones en 94 sistemas de archivos distintos, incluyendo FAT32, ext3, Solaris y QNX. Esta versión cuenta con un menú de texto de ayuda en línea para realizar las operaciones.

Opciones:

-l Este parámetro listará la tabla de particiones

Manipulación de particiones en Linux

A continuación estaremos describiendo los métodos para una correcta modificación de particiones.

l) Ingresar en el modo de particionamiento

# fdisk /dev/sda

Al lanzar la aplicación, esta nos arrojará información referente al número de cabezas, sectores, cilindros, particiones o tamaño del dispositivo.

Command (m for help):

Disk /dev/sda: 120.6 GB, 146815737856 bytes

255 heads, 63 sectors/track, 17849 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Una vez que la aplicación está iniciada, se nos presenta el siguiente mensaje:

Command (m for help):

Si presionamos la tecla ‘m’, se imprimirá el menú con las herramientas propias del comando fdisk. Estas herramientas son:

2) Lista de opciones descripción

a Conmuta el indicador de iniciable.

b Modifica la etiqueta de disco bsd.

c Conmuta el indicador de compatibilidad con DOS.

d Suprime una partición.

a Conmuta el indicador de iniciable.

b Modifica la etiqueta de disco bsd.

c Conmuta el indicador de compatibilidad con DOS.

d Suprime una partición.

l Lista los tipos de particiones conocidos.

m Imprime este menú.

n Añade una nueva partición.

o Crea una nueva tabla de particiones DOS vacía.

p Imprime la tabla de particiones.

q Sale sin guardar los cambios.

s Crea una nueva etiqueta de disco Sun.

t Cambia el identificador de sistema de una partición.

u Cambia las unidades de visualización/entrada.

v Verifica la tabla de particiones.

w Escribe la tabla en el disco y sale.

x Funciones adicionales (sólo para usuarios avanzados).

Como podemos notar, con la opción “ m ” podemos imprimir nuevamente este menú.

3) Imprimir tabla de particiones

Otro ejemplo, con “ p “ obtendremos la tabla de particiones actual del disco duro en cuestión:

Command (m for help): p

Disk /dev/sda: 146.8 GB, 146815737856 bytes

255 heads, 63 sectors/track, 17849 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System

/dev/sda1 * 1 25 200781 83 Linux

/dev/sda2 26 2575 20482875 83 Linux

/dev/sda3 2576 2706 1052257+ 82 Linux swap / Solaris

/dev/sda4 2707 4000 10394055 8e Linux LVM

4) Borrar una partición

Si lo que queremos es borrar una partición (por ejemplo, la 3):

Command (m for help): d

Partition number (1-4): 3

Command (m for help)

5) Crear partición

En el ejemplo, hemos borrado la partición correspondiente a la memoria extendida (swap). Para crearla nuevamente usamos “ n :

Command (m for help): n

Command action

e extended

p primary partition (1-4)

p

Selected partition 3

First cylinder (2576-17849, default 2576):

Using default value 2576

Last cylinder or +size or +sizeM or +sizeK (2576-2706, default 2706):

Using default value 2706

Dichas consignas hacen referencia a lo siguiente:

Tipo de partición:

Aquí se nos pide elegir entre partición primaria y  extendida. (En este caso elegimos p o primaria)

Selección de la partición:

Escribir el número de la partición que se va a crear. » 3 » en nuestro ejemplo.

Primer cilindro:

Es el cilindro en el que comienza la partición. Generalmente elegimos el que el sistema nos marca de manera predeterminada pulsando enter.

Último cilindro o tamaño de la partición:

En el ejemplo, se presionó enter para tomar el valor predeterminado. Por lo general resulta más cómodo proporcionar el tamaño en megas (o en K’s). Una opción sería entonces dar:

+2048M para asignar 2 gigas a una partición.

6) Tabla de particiones actual:

Command (m for help): p

Disk /dev/sda: 146.8 GB, 146815737856 bytes

255 heads, 63 sectors/track, 17849 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System

/dev/sda1 * 1 25 200781 83 Linux

/dev/sda2 26 2575 20482875 83 Linux

/dev/sda3 2576 2706 1052257+ 83 Linux

/dev/sda4 2707 4000 10394055 8e Linux LVM

La descripcion de esto es la siguiente:

  • En la primera columna, se encuentra el dispositivo resultado de la partición de disco sda . Podemos observar que en este momento contamos con 4 particiones: sda1 , sda2 , sda3 y sda4.
  • La segunda columna nos informa que es la primera partición del disco la que contiene la parte booteable.
  • La tercera y cuarta columna nos dan información acerca del cilindro en el cual comienza y termina la partición respectivamente.
  • La quinta nos dice en bloques cuanto ocupa.
  • Por último, con la sexta y séptima columna sabemos el tipo de partición (Identificador y sistema respectivamente).

De nuestro ejemplo, sabemos que contamos con 3 particiones “Linux” (Id 83) y una “Linux LVM” (ide 8e). Si pensamos utilizar la partición recién creada como SWAP, hay que cambiar el tipo de partición pulsando la letra t. Por ejemplo:

Command (m for help): t

Partition number (1-4): 3

Hex code (type L to list codes): 82

Changed system type of partition 3 to 82 (Linux swap / Solaris)

Particionando de forma No-Interactiva

Se puede crear un archivo con los comandos de fdisk para particionar múltiples dispositivos de una misma forma.

# cat comandos-fdisk.txt

d

n

p

1

t

83

w

En el archivo, primero aparece la letra d , la cual borra la partición única que posee, luego crea una nueva y la deja lista para usarla con linux.

En este ejemplo, suplantamos la w por una p y luego agregamos una q , así podemos ver cómo funciona sin alterar nada.

# fdisk /dev/sdb < comandos-fdisk.txt

Command (m for help): Selected partition 1

Command (m for help): Command action

e extended

p primary partition (1-4)

Partition number (1-4, default 1): First sector (2048-31252023, default 2048): Using default value 2048

Last sector, +sectors or +size{K,M,G} (2048-31252023, default 31252023): Using default value 31252023

Command (m for help): Selected partition 1

Hex code (type L to list codes):

Command (m for help):

Disk /dev/sdb: 16.0 GB, 16001036288 bytes

50 heads, 24 sectors/track, 26043 cylinders, total 31252024 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

Disk identifier: 0x0002f2b2

Device Boot Start End Blocks Id System

/dev/sdb1 2048 3125

Uso de las herramientas gdisk y parted con GPT

La herramienta gdisk sirve para particionar un sistema que usa GPT en lugar de MBR. GPT proporciona soporte para mayor número de particiones, más confiabilidad y discos más grandes. El modo de uso es similar al de fdisk.

Veamos un ejemplo:

# gdisk -l /dev/sda

Opciones principales:

b Hacer una copia de seguridad de la GPT a un archivo

c Cambiar el nombre de una partición

d Borrar una partición

i Mostrar información detallada en una partición

l Mostrar un listado de tipos de particiones conocidas

n Agregar una nueva partición

o Crear una nueva tabla de particiones GUID (GPT) vacía

p Imprimir la tabla de particiones

q Salir sin guardar los cambios

r Opciones de recuperación y transformación (expertos solamente)

s Ordenar particiones

t Cambiar el código del tipo de una partición

v Verificar disco

w Guardar tabla en el disco

x Funcionalidad extra (expertos solamente)

? Imprimir este menú

Ejemplos

En el siguiente ejemplo, el disco usa MBR pero tiene una GPT no válida:

# gdisk -l /dev/sda | head

GPT fdisk (gdisk) version 0.8.6

Partition table scan:

MBR: MBR only

BSD: not present

APM: not present

GPT: not present

***************************************************************

Found invalid GPT and valid MBR; converting MBR to GPT format.

***************************************************************

Warning! Secondary partition table overlaps the last partition by 33 blocks!

You will need to delete this partition or resize it in another utility.

Si bien el comando gdisk tiene la capacidad para pasar de MBR a GPT hay ciertos casos como este en el que es necesario borrar o cambiar el tamaño de alguna partición (en particular la última). La herramienta parted soporta tanto MBR como GPT y ofrece muchas más funcionalidades que fdisk .

Para listar la tabla de particiones se debe hacer lo siguiente:

# parted /dev/sda print

Model: ATA WDC WD5000LPVX-7 (scsi)

Disk /dev/sda: 500GB

Sector size (logical/physical): 512B/4096B

Partition Table: gpt

Disk Flags:

Numero Inicio Fin Tamaño Sistema de ficheros Nombre Banderas

1 1049kB 525MB 524MB fat32 EFI System Partition arranque, esp

2 525MB 567MB 41,9MB fat32 Basic data partition oculta

3 567MB 701MB 134MB Microsoft reserved partition msftres

4 701MB 1215MB 514MB ntfs Basic data partition oculta, diag

5 1215MB 88,9GB 87,7GB ntfs Basic data partition msftdata

8 88,9GB 120GB 31,5GB ext4 usr

7 120GB 490GB 369GB xfs

6 490GB 500GB 10,4GB ntfs Microsoft recovery partition oculta, diag

En dicho ejemplo, el disco usa GPT.

Para crear un disco con formato gpt se debe ejecutar el siguiente comando:

(parted) m mklabel gpt

Tener en cuenta que este comando, si bien no borra los datos, quedarían inaccesibles, ya que parted elimina la tabla de particiones MBR que pudiera existir antes.

Resguardar MBR y GPT usando dd y sgdisk

Copiar el primer sector del disco. Es el que contiene el MBR

# dd if=/dev/sda of=/tmp/mbr.bkp bs=512 count=1

Para poder recuperarlo:

# dd if=/tmp/mbr.bkp of=/dev/sda bs=512 count=1

En el caso de querer espaldar un disco con GPT se hace lo siguiente:

# sgdisk -b gptbackup.img /dev/sda

Para recuperar la tabla de particiones a partir del backup:

#sgdisk -l /dev/sda

Aclaración

También existen aplicaciones graficas para particionar discos. Como es el caso de “Gparted” la cual es un editor de particiones de Gnome. Así también existen otras como, “KDE partition manager”, la cual está basada en el programa de consola parted. Y “Parted Magic” que es un LiveCD que incluye una distribución Linux a medida para poder operar directamente con ella, sin necesidad de ser instalada en el disco duro.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

11 + catorce =

Lathack
Scroll al inicio