Eliminazione di tutte le partizioni dalla riga di comando


40

Come si eliminano tutte le partizioni su un dispositivo dalla riga di comando su Linux (in particolare Ubuntu)? Ho provato a guardare fdisk, ma presenta un prompt interattivo. Sto cercando un singolo comando, che posso dare un percorso del dispositivo (ad esempio / dev / sda) e cancellerà ext4, linux-swap e qualunque altra partizione trovi. In sostanza, sarebbe la stessa cosa se dovessi aprire GParted e selezionare manualmente ed eliminare tutte le partizioni. Sembra abbastanza semplice, ma sfortunatamente non sono stato in grado di trovare nulla tramite Google.

Risposte:


44

Basterebbe questo?

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

4
Ciò non eliminerà le partizioni. Eliminando le partizioni intendeva preservare l'MBR e svuotare semplicemente la tabella delle partizioni.
Mircea Vutcovici,

2
No, questo sembra fare esattamente ciò di cui ho bisogno. Non mi interessa davvero se i dati sono ancora lì. GParted mostra che le partizioni sono sparite dopo averlo eseguito, ed è quello che volevo.
Cerin,

Mircea Vutcovici non parlava dei tuoi dati, ma del codice bootstrap nel tuo MBR. Ora non c'è più, perché l'hai cancellato insieme alle 4 voci principali dalla tabella delle partizioni in stile MBR.
JdeBP,

1
Non dimenticare di smontare il driver, altrimenti non funzionerà.
OrangeTux,

Funziona alla grande anche se hai usato ZFS su un disco e lo stai riproponendo per qualcos'altro. Né un partizionamento e un formato standard di Windows o Linux elimineranno le etichette ZFS su di esso che possono causare gravi problemi.
Tony Maro,

33

Il wipefsprogramma consente di eliminare facilmente la firma della tabella delle partizioni:

wipefs -a /dev/sda

A partire dal man wipefs

wipefs può cancellare le firme del filesystem, raid o della tabella delle partizioni (stringhe magiche) dal dispositivo specificato per rendere invisibili le firme per libblkid.

wipefs non cancella il filesystem stesso né altri dati dal dispositivo. Se utilizzato senza alcuna opzione, wipefs elenca tutti i filesystem visibili e gli offset delle loro firme di base.

wipefs chiama lo ioctl BLKRRPART quando ha cancellato una firma della tabella delle partizioni per informare il kernel della modifica.


12

Veloce e sporco: utilizzare gpartedper eliminare le partizioni o se si ha fretta:

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

Ciò eliminerà l'MBR dell'unità (i dati sono ancora intatti).

In alternativa:

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

per cancellare l'intero disco (scrivere un singolo passaggio di zeri su tutto. Non "sicuro" ma di solito abbastanza buono), oppure utilizzare uno strumento "distruggi dischi" per una cancellazione sicura.


7

Vedi man sfdisk, che è una variante non interattiva di fdisk. A parte questo, puoi eliminare l'intera tabella delle partizioni con dd, come ha scritto pk.


6

Dovresti essere in grado di utilizzare parted anche per questo, sebbene ciò possa comportare alcuni script per scorrere ciclicamente le partizioni.


3

Se stiamo parlando di partizioni in stile MBR ...

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

Spiegazione:

dd

Questo comando standard copia i byte da un'origine e li scrive in una destinazione. È lo strumento flessibile più semplice per questo lavoro.

if=/dev/zero

Qui, specifichiamo che stiamo leggendo /dev/zero, che è un dispositivo speciale che emette NULbyte - zeri.

of=/dev/[disk device]

Qui, specifichiamo su quale dispositivo stiamo scrivendo.

bs=1

ddpensa in termini di blocchi . La dimensione del blocco predefinita può essere 512 byte, 1024 byte o 4096 byte, a seconda del sistema. Tuttavia, dobbiamo affrontare le cose in modo più preciso di così, quindi diciamo dddi usare una dimensione di blocco di 1 byte.

Numero = 64

Qui diciamo dddi scrivere 64 blocchi (o byte, a causa del nostro bs=1parametro), poiché la tabella delle partizioni primarie è composta da 4 voci di partizione a 16 byte, per un totale di 64 byte.

seek = 446

La tabella delle partizioni primarie all'interno dell'MBR (quindi, non parlando di GPT qui) si trova a 446 byte, quindi chiediamo dddi cercare 446 byte prima di scrivere.

Le partizioni estese vengono generalmente create utilizzando uno slot di partizione primaria per puntare alla tabella delle partizioni estese, quindi se cancelliamo le 4 partizioni primarie, cancelliamo efficacemente anche la tabella delle partizioni estese; il sistema operativo non sarà in grado di trovarlo, quindi non sarà in grado di leggerlo e interpretarlo. (Se si desidera cancellare la tabella delle partizioni estese, è necessario conoscere meglio il sistema operativo; diversi sistemi operativi eseguono partizioni estese in diversi modi.)


2

Volevo fare la stessa cosa (tranne in Slackware 14.2) ma ho scoperto che non potevo effettuare la maggior parte delle soluzioni proposte qui, con la soluzione più elaborata e ben documentata che creava nuovi problemi per la creazione di partizioni di sostituzione. Ciò ha eliminato la partizione ma alcuni software di partizionamento hanno apparentemente trovato automaticamente i backup della partizione.

Ho trovato f3probe ( http://oss.digirati.com.br/f3 ) risolto il problema di eliminare tutte le partizioni, rapidamente e facilmente, lavorando con unità di grande capacità, e ho creato esattamente 1 partizione che copre l'intera unità, il che è stato facile cancellare.

È stato anche facile, da lì, creare nuove partizioni, in modo semplice.

vale a dire

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

Usa una versione non interattiva migliorata di fdisk, che è sfdisk

Per cancellare la tabella delle partizioni usare questo comando:

sfdisk --delete /dev/sda
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.