Particionando discos desatendidamente....
La mágia de la virtualización me llevo a tener que rebuscarmelas para particionar un disco de forma desatendida, cuando el equipo levanta y sólo la primera vez que levanta la vm (virtual machine), luego de googlear un poco (y gracias a algunos links que me pasaron :D ), logre realizar lo que necesitaba con el siguiente script.
_
#!/bin/bash
function valid {
if [ $? -eq 0 ];then
return 0
else
exit 1
fi
}
function clean {
#borro links simbolicos y archivo
rm -f /etc/init.d/start_up.sh
rm -f /etc/rc[2-5].d/S15start_up.sh
}
hdc=$(fdisk -l /dev/hdc |grep GB|awk -F”,” ‘{print $2}’|awk ‘{print $1}’)
let hdc_mb=$hdc/1048576
valid
#echo “espacio de particion” $hdc_mb
echo -e “n\np\n1\n\n+${hdc_mb}M\nt\n83\n\np\nw\n” | fdisk /dev/hdc
valid
mkfs.ext3 -q /dev/hdc1
valid
echo “/dev/hdc1 /opt ext3 defaults 0 1” >> /etc/fstab
valid
mount -a
valid
echo “particionamiento ok”
clean
_
En resumen, siempre mi disco nuevo a particionar era hdc, por eso lo primero que hago es obtener su tamaño en MB , luego uso una tuberia (pipe) para alimentar a fdisk de los comandos necesarios para crear una nueva partición primaria del tamaño total del disco.
Esto es la línea:
echo -e “n\np\n1\n\n+${hdc_mb}M\nt\n83\n\np\nw\n” | fdisk /dev/hdc
Que le pasa:
“n” – Nueva partición
“\n” – Enter
“p” – Partición primaria
“\n” – Enter
“1” – Número de la partición
“\n” – Enter
“\n” – Enter (en este paso es donde pregunta desde que cilindro del disco, aceptamos el default )
+${hdc_mb}M – Tamaño en MB
“\n” – Enter
“t” – Tipo de partición
“\n” – Enter
“83” – Tipo Linux
“\n” – Enter
“\n” – Enter
“p” – Para imprimir la tabla de particiones
“\n” – Enter
“w” – Para escribir la tabla de particiones en el disco
“\n” – Enter
Una vez realizado esto, sólo nos resta darle FS (mkfs.ext3) y agregar la entrada en fstab para que la monte de forma automática cuando se inicie el equipo.
Para finalizar, habrí que copiar este script en /etc/init.d y crear el script de inicio S* para que corra cuando levante el run level configurado.
Esto seria algo como:
Debian)
correr #update-rc.d start_up.sh start 15 2 3 4 5 .
RHEL/Fedora)
crear link simbólico
# for i in 2 3 4 5;do ln -s /etc/init.d/start_up.sh /etc/rc${i}.d/S15start_up.sh;done
En fin, con todo este procedimiento obtuve lo que necesitaba :D
pepo.
Author Javier Viola
LastMod 2009-09-22