Eliminar todas las particiones de la línea de comando


40

¿Cómo se eliminan todas las particiones en un dispositivo desde la línea de comandos en Linux (específicamente Ubuntu)? Intenté mirar fdisk, pero presenta un mensaje interactivo. Estoy buscando un solo comando, que puedo dar una ruta de dispositivo (por ejemplo, / dev / sda) y eliminará ext4, linux-swap y cualquier otra partición que encuentre. Básicamente, esto sería lo mismo que si abriera GParted y seleccionara y eliminara manualmente todas las particiones. Esto parece bastante simple, pero desafortunadamente, no he podido encontrar nada a través de Google.

Respuestas:


44

¿Sería esto suficiente?

dd if=/dev/zero of=/dev/sda bs=512 count=1 conv=notrunc

44
Esto no eliminará las particiones. Al eliminar las particiones, tenía la intención de preservar el MBR y simplemente vaciar la tabla de particiones.
Mircea Vutcovici

2
No, esto parece hacer exactamente lo que necesito. Realmente no me importa si los datos siguen ahí. GParted muestra que las particiones se han ido después de ejecutar esto, y eso es lo que quería.
Cerin

Mircea Vutcovici no hablaba de sus datos, sino del código de arranque en su MBR. Eso ya no está, porque lo borró junto con las 4 entradas principales de la tabla de particiones de estilo MBR.
JdeBP

1
No olvide desmontar el controlador, de lo contrario no funcionará.
OrangeTux

Esto también funciona muy bien si ha utilizado ZFS en una unidad y lo está reutilizando para otra cosa. Ni una partición y formato estándar de Windows o Linux eliminarán las etiquetas de ZFS que pueden causarle problemas importantes.
Tony Maro

33

El wipefsprograma te permite eliminar fácilmente la firma de la tabla de particiones:

wipefs -a /dev/sda

Desde man wipefs

wipefs puede borrar firmas del sistema de archivos, incursiones o tablas de particiones (cadenas mágicas) del dispositivo especificado para hacer que las firmas sean invisibles para libblkid.

wipefs no borra el sistema de archivos ni ningún otro dato del dispositivo. Cuando se usa sin ninguna opción, wipefs enumera todos los sistemas de archivos visibles y las compensaciones de sus firmas básicas.

wipefs llama al BLKRRPART ioctl cuando ha borrado una firma de tabla de partición para informar al núcleo sobre el cambio.


12

Rápido y sucio: utilícelo gpartedpara eliminar las particiones, o si tiene prisa:

dd if=/dev/zero of=/dev/[disk device] bs=512 count=1

Esto eliminará el MBR de la unidad (los datos aún están intactos).

Alternativamente:

dd if=/dev/zero of=/dev/[disk device]

para limpiar todo el disco (escriba un solo paso de ceros sobre todo. No es "seguro" pero generalmente lo suficientemente bueno), o use una herramienta de "trituradora de disco" para un borrado seguro.


7

Ver man sfdisk, que es una variante no interactiva de fdisk. Aparte de eso, puede eliminar toda la tabla de particiones con dd, como escribió pk.


6

También debería poder usar parted para esto, aunque eso puede implicar algunas secuencias de comandos para recorrer las particiones.


3

Si estamos hablando de particiones de estilo MBR ...

dd if=/dev/zero of=/dev/[disk device] bs=1 count=64 seek=446 conv=notrunc

Explicación:

dd

Este comando estándar copia bytes de una fuente y los escribe en un destino. Es la herramienta flexible más simple para este trabajo.

if=/dev/zero

Aquí, especificamos que estamos leyendo /dev/zero, que es un dispositivo especial que emite NULbytes - ceros.

of=/dev/[disk device]

Aquí, especificamos en qué dispositivo estamos escribiendo.

bs=1

ddpiensa en términos de bloques . El tamaño de bloque predeterminado puede ser 512 bytes, 1024 bytes o 4096 bytes, dependiendo de su sistema. Sin embargo, debemos abordar las cosas con mayor precisión que eso, por lo que le pedimos ddque use un tamaño de bloque de 1 byte.

cuenta = 64

Aquí, le pedimos ddque escriba 64 bloques (o bytes, debido a nuestro bs=1parámetro), ya que la tabla de partición primaria consta de 4 entradas de partición de 16 bytes, para un total de 64 bytes.

buscar = 446

La tabla de partición primaria dentro del MBR (por lo tanto, no hablando de GPT aquí) se encuentra a 446 bytes, por lo que le pedimos ddque busque 446 bytes antes de escribir.

Las particiones extendidas generalmente se crean mediante el uso de una ranura de partición primaria para apuntar a la tabla de particiones extendidas, por lo que si borramos las 4 particiones primarias, también limpiaremos efectivamente la tabla de particiones extendidas; el sistema operativo no podrá encontrarlo, por lo que no podrá leerlo ni interpretarlo. (Si desea borrar la tabla de particiones extendidas, necesitará saber más sobre el sistema operativo; los diferentes sistemas operativos realizan particiones extendidas de diferentes maneras).


2

Quería hacer lo mismo (excepto en Slackware 14.2) pero descubrí que no podía afectar la mayoría de las soluciones propuestas aquí, con la solución más elaborada y bien documentada creando nuevos problemas para hacer particiones de reemplazo. Eso eliminó la partición, pero aparentemente un software de partición encontró las copias de seguridad de la partición automáticamente.

Encontré que f3probe ( http://oss.digirati.com.br/f3 ) resolvió el problema de eliminar todas las particiones, rápida y fácilmente, trabajando con unidades de gran capacidad, y creé exactamente 1 partición que abarcaba toda la unidad, lo cual fue fácil borrar.

También fue fácil, a partir de ahí, crear nuevas particiones, de una manera directa.

es decir

f3probe --destructive --time-ops /dev/sdb
# Now we know only 1 partition exists on /dev/sdb
#    which is /dev/sdb1
#
# Unmount that partition
umount /dev/sdb1

#
# Delete that single partition
parted /dev/sdb rm 1

#
# Now you can create new partitions
# i.e. parted /dev/sdb mkpart primary fat32 1049K 15.8G
# 
# Update /etc/fstab before rebooting....

0

Utilice una versión no interactiva mejorada de fdisk, que es sfdisk

Para borrar la tabla de particiones use este comando:

sfdisk --delete /dev/sda
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.