Suppression de toutes les partitions de la ligne de commande

40

Comment supprimer toutes les partitions d'un périphérique à partir de la ligne de commande sous Linux (en particulier Ubuntu)? J'ai essayé de regarder fdisk, mais il présente une invite interactive. Je cherche une seule commande, que je peux donner à un chemin de périphérique (par exemple / dev / sda) et qui supprimera les extensions ext4, linux-swap et toutes les autres partitions trouvées. En gros, ce serait la même chose que si je devais ouvrir GParted et sélectionner et supprimer manuellement toutes les partitions. Cela semble assez simple, mais malheureusement, je n'ai rien trouvé dans Google.

Cerin
la source

Réponses:

44

Cela suffirait-il?

dd if=/dev/zero of=/dev/sda bs=512 count=1 conv=notrunc
pk.
la source
4
Cela ne supprimera pas les partitions. En supprimant les partitions, il voulait préserver le MBR et vider simplement la table des partitions.
Mircea Vutcovici
2
Non, cela semble faire exactement ce dont j'ai besoin. Je ne me soucie pas vraiment si les données sont toujours là. GParted montre que les partitions ont disparu après avoir exécuté ceci, et c'est ce que je voulais.
Cerin
Mircea Vutcovici ne parlait pas de vos données, mais du code d'amorçage dans votre MBR. Cela a maintenant disparu, car vous l'avez effacé avec les 4 entrées principales de la table de partition de style MBR.
JdeBP
1
N'oubliez pas de démonter le pilote, sinon cela ne fonctionnera pas.
OrangeTux
Cela fonctionne également très bien si vous avez utilisé ZFS sur un lecteur et que vous le réutilisez pour autre chose. Ni un formatage ni un partitionnement Windows ou Linux standard ne peuvent éliminer les étiquettes ZFS dessus, ce qui peut entraîner de graves problèmes.
Tony Maro
33

Le wipefsprogramme vous permet de supprimer facilement la signature de table de partition:

wipefs -a /dev/sda

De man wipefs

wipefs peut effacer les signatures de système de fichiers, de raid ou de table de partition (chaînes magiques) du périphérique spécifié pour rendre les signatures invisibles pour libblkid.

wipefs n'efface pas le système de fichiers ni aucune autre donnée de l'appareil. Wipefs répertorie tous les systèmes de fichiers visibles ainsi que les décalages de leurs signatures de base.

wipefs appelle BLKRRPART ioctl lorsqu'il a effacé une signature de table de partition pour informer le noyau de la modification.

utilisateur144437
la source
12

Rapide et sale: utilisez gpartedpour supprimer les partitions, ou si vous êtes pressé:

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

Cela zappera le MBR du lecteur (les données sont encore intactes).

Alternativement:

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

pour effacer tout le disque (écrivez un seul passage de zéros sur tout. Pas "sécurisé" mais assez bon), ou utilisez un outil "déchiqueteur de disque" pour un effacement sécurisé.

voretaq7
la source
7

See man sfdisk, qui est une variante non interactive de fdisk. Autre que cela, vous pouvez supprimer toute la table de partition avec dd, comme l'a écrit pk.

Sven
la source
6

Vous devriez pouvoir utiliser parted pour cela également, bien que cela puisse impliquer des scripts pour parcourir les partitions.

Decado
la source
3

Si nous parlons de partitions de style MBR ...

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

Explication:

dd

Cette commande standard copie les octets d'une source et les écrit dans une destination. C'est l'outil flexible le plus simple pour ce travail.

if=/dev/zero

Ici, nous spécifions que nous lisons /dev/zero, qui est un périphérique spécial qui émet des NULoctets - zéros.

of=/dev/[disk device]

Ici, nous spécifions le périphérique sur lequel nous écrivons.

bs=1

ddpense en termes de blocs . La taille de bloc par défaut peut être de 512 octets, 1024 octets ou 4096 octets, selon votre système. Cependant, nous devons traiter les choses plus précisément que cela, nous recommandons donc ddd'utiliser une taille de bloc de 1 octet.

compte = 64

Ici, nous demandons ddd'écrire 64 blocs (ou octets, à cause de notre bs=1paramètre), car la table de partition principale est composée de 4 entrées de partition de 16 octets, pour un total de 64 octets.

chercher = 446

La table de partition principale dans le MBR (donc, ne parlant pas de GPT ici) est située à 446 octets, nous vous conseillons donc ddde rechercher 446 octets avant d'écrire.

Les partitions étendues sont généralement créées en utilisant un emplacement de partition principale pointant vers la table de partition étendue. Par conséquent, si nous effaçons les 4 partitions principales, nous effacerons également la table de partition étendue; le système d'exploitation ne pourra pas le trouver, il ne pourra donc pas le lire ni l'interpréter. (Si vous souhaitez effacer la table de partitions étendues, vous devez en savoir plus sur le système d'exploitation. Différents systèmes d'exploitation créent des partitions étendues de différentes manières.)

Michael Mol
la source
2

Je voulais faire la même chose (sauf dans Slackware 14.2), mais je ne pouvais pas appliquer la plupart des solutions proposées ici, la solution la plus élaborée et la mieux documentée créant de nouveaux problèmes pour la création de partitions de remplacement. Cela a supprimé la partition, mais certains logiciels de partitionnement ont apparemment trouvé la sauvegarde de la partition automatiquement.

J'ai trouvé que f3probe ( http://oss.digirati.com.br/f3 ) résolvait le problème de la suppression rapide et facile de toutes les partitions, fonctionnant avec des disques de grande capacité et créant exactement une partition couvrant l'ensemble du disque, ce qui était facile supprimer.

Il était également facile, à partir de là, de créer de nouvelles partitions, de manière simple.

c'est à 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....
John
la source
0

Utiliser la version non interactive améliorée de fdisk, qui est sfdisk

Pour effacer la table de partition, utilisez cette commande:

sfdisk --delete /dev/sda
Suncatcher
la source