Voudrais
dd if=/dev/zero of=somepartition bs=512
effacer également les partitions après somepartition
ou arrêter à la fin de somepartition
?
Voudrais
dd if=/dev/zero of=somepartition bs=512
effacer également les partitions après somepartition
ou arrêter à la fin de somepartition
?
Réponses:
dd
dd
est un outil très puissant mais aussi dangereux. Il fait ce que vous lui demandez de faire sans poser de questions. Donc, si vous lui dites d'effacer les photos de famille, ... et c'est une erreur de frappe mineure.
Mais si vous vérifiez et revérifiez, vous pouvez l'utiliser.
dd if=/dev/zero of=somepartition bs=512
ou je suggérerais
dd if=/dev/zero of=/dev/sdxn bs=4096
où x
est la lettre de lecteur et n
le numéro de partition et la taille de bloc 4096 octets accélère le processus d'écriture.
Dans ce cas, il est important que vous écriviez sur une partition . Si vous écrivez sur le lecteur entier (la tête de lecteur), /dev/sdx
le lecteur entier sera écrasé. Mais l'écriture sur la partition sera interrompue à la fin de la partition et les partitions derrière elle seront conservées. (J'ai testé maintenant sur une clé USB dans Lubuntu 16.04 LTS, donc je sais que cela fonctionne comme ça.)
Il existe une exception pour une partition étendue (qui est un conteneur pour les partitions logiques, afin d'avoir plus de quatre partitions dans une table de partition MSDOS). Ceci est décrit dans le lien suivant,
Puis-je créer une image de partition «étendue» en utilisant dd?
Mais il y a aussi un autre problème. J'ai testé votre commande dans un environnement de test, et j'ai lu un seul kibioctet (1024 octets) quand je voulais qu'il fasse une image d'une partition étendue.
J'ai également testé cela maintenant sur une clé USB dans Lubuntu 16.04 LTS, et cela s'applique à l'écriture (ainsi qu'à la lecture). Seul le premier kibibyte est écrasé.
Pour résumer, l'écrasement des partitions principales et des partitions logiques fonctionne selon la description principale de cette réponse. Mais n'utilisez pas cette méthode pour écraser une partition étendue car seul le premier kibioctet sera écrasé. Les partitions logiques de la partition étendue ne seront plus trouvées via la table de partition, mais les données qui y sont stockées sont toujours là.
dd
et qu'il soit risqué, afin d'être très prudent lors de son utilisation. Bonne chance :-) En général, vous devriez toujours avoir une sauvegarde de tous les fichiers que vous ne pouvez pas vous permettre de perdre.
Les écritures sur un périphérique de partition n'écriront pas en dehors de cette partition, avec dd ou autre chose. Vous auriez besoin d'utiliser un périphérique à disque complet pour avoir un effet en dehors d'une seule partition.
(Avertissement: sauf si votre disque a une table de partition avec des partitions qui se chevauchent, ce qui ne devrait jamais arriver.)
Je pense que votre question est basée sur un malentendu fondamental sur le fonctionnement dd
(et en fait les systèmes d'exploitation de type Unix en général):
dd
ne peut pas écraser les partitions adjacentes, tout simplement parce que dd
ne peut pas écraser les partitions, point .
dd
écrit simplement dans des fichiers . C'est ça.
Maintenant, si vous passez dd
un fichier qui représente plusieurs partitions, puis dd
écrasera ce fichier . Mais dans ce cas, il n'écrit pas dd
après la fin de la partition. dd
écrira toujours jusqu'à la fin du fichier, et seulement jusqu'à la fin du fichier.
Mais, si vous passez dd
un fichier qui ne représente qu'une seule partition, alors dd
il n'écrira pas après la fin de cette partition. Encore une fois, cela n'a rien à voir avec dd
. dd
écrit simplement dans le fichier sur lequel vous lui demandez d'écrire. Le fait que ce fichier représente une seule partition est (dans ce cas) assuré par le pilote de périphérique de bloc dans le noyau. dd
n'a rien à voir avec ça.
Donc, en bref: dd
écrit dans des fichiers. Ce que ces fichiers représentent, cela ne nous dd
inquiète pas. dd
ne sait rien des partitions.
dd
pour écrire sur des partitions brutes. Vous ne pouvez écrire que dans des fichiers. Vous pouvez bien sûr écrire dans un fichier de périphérique de bloc qui représente une partition (telle que /dev/sda1
), mais vous ne pouvez pas écrire sur une partition brute. Et comme vous ne pouvez écrire que dans un fichier qui représente une partition, vous ne pouvez pas écrire au-delà de la fin de la partition, car le fichier ne représente que la partition, et non la partition et un peu après la fin.
/dev/sda
dans votre éditeur de texte et modifier les données, dd
n'est pas différent de tout autre programme en termes d'accès aux partitions. Très bonne réponse!
Il existe un scénario spécial dangereux, mais rare, dans lequel cela peut se produire même avec des pilotes de périphérique de bloc non buggés:
Vous devez être prudent avec dd car si vous faites une erreur, vous pouvez écraser plus que ce que vous aviez négocié et cela dépend de ce que vous utilisez pour dd (l'OP était vague dans son utilisation de dd et la syntaxe exacte du dd commander).
Si vous spécifiez une partition, il écrit sur cette partition jusqu'à ce que la partition soit pleine.
Si vous faites une erreur et placez le lecteur entier, par exemple de = / dev / sda, dd écrira sur le disque entier pour commencer à ignorer (et écraser) votre table de partition.
Vous pouvez également utiliser dd sur une partition pour écraser les fichiers supprimés (les fichiers supprimés peuvent rester sur la partition et découverts par divers outils de récupération avec différents degrés de succès jusqu'à ce qu'ils soient écrasés. Dans ce cas, vous pouvez utiliser dd pour remplir l'espace libre en écrire dans un fichier.
dd if=/dev/zero of=/path/to/mount_point/zero_file bs=4096
rm -f /path/to/mount_point/zero_file
Selon ce que vous faites, cependant, vous souhaiterez peut-être utiliser un autre outil pour supprimer les fichiers en toute sécurité. Voir Comment supprimer des fichiers de manière sécurisée? pour les options.
dd
n'est pas si bas. En fait, la plupart des choses que les gens utilisent dd
auraient pu être faites de la même façon cat
. En fait, il cat
est légèrement plus rapide car il utilise des blocs plus gros que ceux dd
par défaut. Tout le code de bas niveau est dans le noyau. Et le conducteur ne se soucie pas vraiment si vous utilisez dd
ou cat
.
dd if=/dev/zero of=/dev/sda bs=512 count=1
ou dd if=/dev/zero of=/dev/sda bs=512
sont des exemples. Avec la deuxième commande, il continuera d'écrire et remplira le disque entier en "ignorant" la table de partition. Si vous spécifiez une partition, dd if=/dev/zero of=/dev/sda1
elle ne dépassera pas la partition. Cela dépend de ce que vous voulez faire avec dd.
of=somepartition
, donc le cas où vous écrivez sur le périphérique de disque entier ne s'applique pas. dd
ne peut pas contourner les restrictions du pilote de périphérique.
/dev/sda1
, sont créés par le noyau de telle manière qu'il est impossible d'accéder au stockage adjacent à travers eux (en supposant que la table de partition n'a pas été modifiée après la dernière lecture du noyau par le noyau). Si vous pouviez accéder au stockage adjacent de cette manière, cela serait considéré comme un énorme bug.