¿Hay alguna forma de crear y formatear una partición usando un script bash?
Creo que se puede hacer con fdisk, pero no sé cómo alimentar los comandos del script bash en el shell de fdisk y luego salir del shell de fdisk.
Quiero crear una partición y luego formatearla en ntfs desde bash.
bash
partitioning
ntfs
fdisk
GlassGhost
fuente
fuente
sfdisk
es más amigable con la automatización quefdisk
sfdisk
sfdisk
es una versión de Scriptedfdisk
Es parte de
util-linux
, al igual quefdisk
, por lo que la disponibilidad debería ser la misma.Se puede crear una tabla de particiones con una única partición que tome todo el disco con:
y las tablas de partición más complejas se explican a continuación.
Para generar un script de ejemplo, obtenga la configuración de uno de sus discos:
Ejemplo de salida en mi Lenovo T430 Windows 7 / Ubuntu dual boot:
Una vez que tenga el script guardado en un archivo, puede aplicarlo
sdX
con:Para la
sfdisk
entrada, puede omitir los nombres de los dispositivos y usar líneas de tipo:Simplemente se ignoran si están presentes, y el nombre del dispositivo se toma del argumento de la línea de comando.
Algunas explicaciones:
label
: tipo de tabla de particiones.dos
(MBR) es el antiguo y ampliamente admitido,gpt
lo nuevo y brillante.unit
: solosector
es compatible. 1 sector generalmente equivale a 512 bytes. Encuentre concat /sys/block/sda/queue/hw_sector_size
Vea también: https://unix.stackexchange.com/questions/2668/finding-the-sector-size-of-a-partitiondevice
: informativo solo piensolíneas de partición:
start
: desplazamiento dentro del disco en el que comienza la partición.start
tiene valores predeterminados muy buenos y, a menudo, se puede omitir:start
es 2048, es decir, 1Mb (2048 + 512), que es un valor predeterminado sensato para la compatibilidad de discosstart
predeterminado a la primera posición no asignadasize
:man sfdisk
Dice:The default value of size indicates "as much as possible"
. Entonces, para llenar el disco con una sola partición, use:/dev/sda : start=2048, type=83
type
: byte mágico almacenado en el sector de arranque para cada entrada de partición . Valores posibles: https://en.wikipedia.org/wiki/Partition_type En este ejemplo observamos:7
(sda1
,2
y3
): sistemas de archivos que admite Windows. Cosas de Windows preinstaladas y particiones de recuperación de Lenovo.sudo blkid
Las etiquetas ayudan a identificarlos.5
(sda4
): partición primaria extendida, que contendrá otras particiones lógicas (porque solo podemos tener 4 particiones primarias con MBR)83
(sda5
,,7
y8
): particiones que soporta Linux. Para míhome
, una y dos raíces con diferentes versiones de Ubuntu82
(sd6
): intercambiofdisk
También puede leersfdisk
secuencias de comandos con elI
comando, que las "fuente" durante unafdisk
sesión interactiva , lo que le permite una mayor personalización antes de escribir la partición.Probado en Ubuntu 16.04,
sfdisk
2.27.1.Formatear y llenar las particiones de un archivo de imagen sin
sudo
Esta es una buena manera de aprender a usar
sfdisk
sin explotar sus discos duros: https://stackoverflow.com/questions/10949169/how-to-create-a-multi-partition-sd-disk-image-without-root- privilegios / 52850819 # 52850819fuente
fdisk
lee desde stdin por lo que solo necesita alimentarlo con los comandos apropiados. Por ejemplo, lo siguiente borra la tabla de particiones, si hay una, y crea una nueva que tiene una única partición que es; disco completo:Te recomiendo que hagas la tarea que deseas, grabando lo que escribes para poder reproducirlo.
fuente
printf
lugar deecho
simplemente, tener la costumbre de usar algo que se comporta de manera consistente en todos los sistemas.Puede hacerlo con solo un par de comandos, use introducciones \ n en lugar de múltiples ecos.
fuente
\n
necesita otro después delw
?echo
termina automáticamente la línea con una nueva línea (a menos que-n
se use la opción)Puedes guión
fdisk
.Eso crea una partición de 200 MB en
/dev/sdc
fuente
Los comandos de canalización a fdisk funcionan bien como lo explican otras personas, pero de esta manera son un poco más elegantes y legibles:
La canalización desde un archivo (temporal) también funciona:
fuente
Cree un nuevo tipo de etiqueta de disco gpt:
sudo /sbin/parted /dev/xvdf mklabel gpt --script
Particionar el disco:
sudo /sbin/parted /dev/xvdf mkpart primary 0% 100% --script
fuente
fuente
El script usa fdisk para crear particiones basadas en las respuestas de otras personas.
Cambie lo siguiente en el script:
NUM_PARTITIONS = 5
PARTITION_SIZE = "+ 10G"
Ejemplo de uso se da después de la secuencia de comandos.
corre con:
sudo sh mk_partition.sh / dev / sdxxx
fuente
Puedes usar este script. Solo asegúrese de definir sus propias particiones donde
hdd
se define. Hay 2 espacios en blanco entre1
yw
; necesitan estar allí para tomar valores predeterminados.fuente