¿Cómo puedo escribir la creación de una única partición que usa todo el dispositivo?

9

Lo estoy usando específicamente para particionar y montar volúmenes EBS en instancias de Amazon EC2, pero realmente esto debería ser generalmente aplicable a la inicialización de cualquier unidad nueva.

Como dice la pregunta, quiero escribir la creación de una única partición primaria que utiliza todo el espacio disponible en el dispositivo dado. No sabré de antemano qué tan grande es el dispositivo y podría ser muy grande (es decir, varios TB).

Al investigar esto, parece que partedes el mejor comando para usar para secuencias de comandos. Creo que algo así parted /dev/sdf mkpart primary 0 ENDes lo que quiero, pero me está costando encontrar una manera elegante de determinar qué END debería ser. ¿Alguien sabe una manera fácil de hacer esto?

Mike Deck
fuente

Respuestas:

11

Puedes hacer esto así:

parted /dev/sdf --script -- mkpart primary 0 -1
Gilles Quenot
fuente
5

Me encontré con problemas cuando intenté usar la otra respuesta. Lo que funcionó para mí fue utilizar el enfoque de porcentajes como este:

$ parted /dev/sdf --script -- mkpart primary 0% 100%

Hay un problema partedy la forma en que trata con la alineación de las particiones. Estos 2 artículos discuten un poco el tema:

Las matemáticas descritas en esos artículos simplemente no funcionaron en mis escenarios. Enterrado en uno de los comentarios sobre el segundo, enlace alguien sugirió usar los porcentajes y eso funcionó.

Por cierto, normalmente también necesitará etiquetar el HDD. Para hacerlo a través de CLI con parted:

$ parted /dev/sde --script -- mklabel msdos

-o-

$ parted /dev/sde --script -- mklabel gpt

Dependiendo de su HDD.

slm
fuente
gdiskse alinea correctamente En mi opinión, partedes un desastre. Hace demasiado, y las cosas que hace solo están conectadas libremente. Es extraño cómo crea sistemas de archivos y tablas de particiones juntas: los locariones de disco para los datos que escribe no se parecen en nada al mismo vecindario. Solo comencé a entender cómo funcionaban los discos cuando me di cuenta de que la tabla de particiones es un pequeño mapa que se encuentra en su parte superior, y le dice al sistema operativo dónde podría buscar un sistema de archivos si así lo desea. Cuando eso hizo clic, entendí superbloques y megaman y todo eso. Bueno, me gusta pensar que sí de todos modos.
mikeserv
Gracias, el sitio de las herramientas en este espacio siempre ha sido un desastre para mí. Constantemente mezclo sfdisk, fdisk, cfdisk, parted, etc. Probaré fdisk y veré si eso es más fácil. Principalmente buscando una opción fácil de ejecutar desde la opción cli para incluirla en los scripts.
slm
Básicamente [gf]disk, no discrimines su stdin, no les importa si es de un término interno. Por lo tanto, cualquier secuencia de comandos que ingrese de forma interactiva para obtener lo que desea se puede traducir directamente a un printfscript. Todas las líneas nuevas en mi respuesta son solo las (or press enter for default)opciones. Es muy facil. Cuando juego en torno w / les acabo de ir a /tmpy fallocate -l1g imga continuación, sólo tiene que utilizar mi nuevo /tmp/imgarchivo como mi disco - que no les importa. Solo quieren escribir una tabla de particiones. Si haces lo mismo, mira lo que sucede con strings -1 imgocasionalmente.
mikeserv
Pero antes mentía: Megaman sigue siendo un misterio para mí. Tal vez siempre lo hará.
mikeserv
1
con el parted /dev/sdf --script -- mkpart primary 0 -1que consiguió una advertencia para no alineados para un mejor rendimiento. Salió bien con porcentajes
nachoparker
2

Tu puedes hacer...

printf 'n\n\n\n\n\nw\n' | fdisk /dev/disk

... para un tipo de msdos. Prácticamente lo mismo funciona para gpt ...

printf 'n\n\n\n\n\nw\ny\n' | gdisk /dev/disk

Y puede etiquetar su disco durante el tiempo de creación del sistema de archivos.

mikeserv
fuente