
Actualmente estoy trabajando en un almacenamiento de red de bricolaje que agrega espacio libre en disco mediante mhddfs.
Ahora lo que quiero es, por ejemplo, dada una bahía hotswap, cuando inserto un disco nuevo sin particionar, deseo particionar automáticamente el disco usando un script bash y montar la nueva partición mhddfs.
La misma situación ocurre si el servidor se apaga, se inserta un disco nuevo y el servidor se enciende nuevamente.
Entonces la pregunta es: ¿Cómo puedo detectar un disco no particionado usando un script bash?
La pregunta también incluye que no debería haber detecciones falsas. por ejemplo, si se inserta un disco cifrado, no debería volver a particionarse ni formatearse automáticamente. Este punto es el principal interés de la pregunta.
Respuesta1
Una opción para realizar la verificación y la partición es el parted
comando. Para obtener información de partición en todos los dispositivos de bloques de disco del sistema, en formato "legible por humanos":
/sbin/parted -l
o, en formato "legible por máquina", utilice:
/sbin/parted -lm
Deberá analizar la salida para determinar si el disco tiene una tabla de particiones válida.
Luego, usa algo como:
/sbin/parted <device> --script mkpart primary 1 -- -1
para hacer una sola partición usando todo el disco. La sintaxis del subcomando mkpart es de la memoria y no tengo un sistema con un disco disponible para verificar que sea correcta.
Respuesta2
Esta es una forma que estoy usando para copias de seguridad.
if [ $(/sbin/sfdisk -d ${DEV} 2>&1) == "" ]; then echo "Device not partitioned"; fi
donde ${DEV} es el dispositivo que está interrogando (es mejor ejecutarlo desde un script udev).
Respuesta3
Supongo que estás haciendo esto en un kernel de Linux.
Utilice fdisk
o sfdisk
del util-linux
paquete:
fdisk -l /path/to/disk
o:
sfdisk -l /path/to/disk
para enumerar la tabla de particiones actual.
Linux detecta particiones disponibles, por lo que buscar en los /dev/disk
directorios puede ser suficiente para sus necesidades.
Respuesta4
Me gustó mucho la respuesta publicada endesbordamiento de pilalo que sugiere:
parted --script
Como:
parted --script /dev/sdb print