Um von einem sauberen Zustand zu starten, muss ich die Festplatte über die Befehlszeile auf einen leeren Zustand zurücksetzen.
Es geht nicht darum, ein Löschdienstprogramm auszuführen, die Daten müssen nicht überschrieben werden.
Diese Frage ähnelt dem Löschen aller Partitionen über die Befehlszeile
Die Lösung dort funktioniert ganz gut,
dd if=/dev/zero of=/dev/sda bs=512 count=1 conv=notrunc
Wenn ich jedoch mit einer solchen überschriebenen Festplatte arbeiten möchte, wird die Fehlermeldung angezeigt, dass das Gerät noch verwendet wird.
root@grml ~ # blockdev --rereadpt /dev/sda
BLKRRPART: Device or resource busy
oder
root@grml ~ # partprobe
Error: Partition(s) 2, 3 on /dev/sda have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use. As a result, the old partition(s) will remain in use. You should reboot now before making further changes.
Error: Partition(s) 2, 3 on /dev/sdb have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use. As a result, the old partition(s) will remain in use. You should reboot now before making further changes.
Also muss ich alles, was auf dem Gerät "sitzt", manuell deaktivieren
umount /mnt/debootstrap
umount /mnt/debootstrap/tmp
umount /mnt/debootstrap/var/log
umount /mnt/debootstrap/var
umount /mnt/debootstrap/home
service mdadm stop
service lvm2 stop
vgremove vg_main
pvremove /dev/md1
mdadm --stop /dev/md0
mdadm --stop /dev/md1
mdadm --remove /dev/md0
mdadm --remove /dev/md1
danach partprobe
funktioniert der Befehl.
Gibt es einen Befehl, der einfacher funktioniert? mögen
harddiskreset /dev/sda
kann es also problemlos auf Systemen mit unterschiedlichem Partitions- / lvm / md-Layout verwendet werden?
Antworten:
Mit dem
wipefs
Programm können Sie die Signatur der Partitionstabelle einfach löschen:Sie müssen jedoch weiterhin alle Prozesse stoppen, die das Gerät verwenden, z. B. LVM.
Von
man wipefs
quelle
Ich habe immer einfach getrennt dafür verwendet. Es eignet sich gut zum Ändern des Datenträgertyps und zum Hinzufügen / Entfernen von Partitionen, insbesondere da es im Gegensatz zu fdisk moderne große Festplatten verarbeiten kann.
Du kannst rennen
Dies wird die Dinge in Gang bringen und Sie in das getrennte Terminal bringen. Anschließend können Sie den Hilfebefehl ausführen, um alle verfügbaren Befehle anzuzeigen. Es ist sehr selbsterklärend.
Ich werde erwähnen, dass ja, Sie müssen alle Partitionen der Festplatte, die Sie formatieren möchten, nicht gemountet haben. Wenn Sie einfach nach einem schnelleren Weg suchen, um alle Partitionen zu entfernen, könnten Sie dies mit einem regulären Ausdruck im Befehl umount tun, aber das scheint albern.
Mit parted zur Verwaltung der Festplatte musste ich nie eine Aktualisierung der Festplatte oder ähnliches erzwingen.
Um ein Laufwerk für die brandneue Verwendung vollständig zu aktualisieren, gehe ich normalerweise wie folgt vor:
1) Trennen Sie sich durch Laufen
sudo parted /dev/sda
2) Finden Sie vorhandene Partitionen, indem Sie ausführen
print
3) Entfernen Sie vorhandene Partitionen,
rm 1
indem Sie 1 durch die Partitionsnummer ersetzen, die Sie entfernen möchten. Wiederholen Sie diesen Vorgang für alle verbleibenden Partitionen auf der Festplatte.4) Setzen Sie das Disklabel zurück, indem Sie ausführen.
mklabel gpt
Ich verwende den gpt-Label-Typ, aber Sie können die Standard-MSDOS verwenden oder was auch immer Ihre Präferenz ist. Hier ist eine Liste der Datenträgertypen5) Erstellen Sie neue Partitionen, indem
mkpart
Sie ausführen. Dies führt Sie durch den Assistenten zum Erstellen von Partitionen. Die Start- und Endpunkte sind standardmäßig auf Sektoren eingestellt. Sie können dies ändern, indem Sie denunit
Befehl ausführen, bevor Sie ihn ausführen. Aufmkpart
diese Weise können Sie ihn in GB, TB oder MB usw. angeben.6) Überprüfen Sie Ihre Ergebnisse mit
print
, um Ihre neuen Partitionstabelleninformationen anzuzeigen7) Anschließend müssen Sie die Partitionen formatieren. Dies sollte nicht durch Teilung erfolgen, obwohl einige Optionen dafür verfügbar sind. Ich würde vorschlagen, stattdessen das Partitionsterminal zu
quit
beenden und dannmkfs
die Partitionen zu formatieren. Denken Sie daran, 'mkfs' unter / dev / sda1 anstelle von / dev / sda auszuführen, da Sie die Partition und nicht die Festplatte als Ganzes formatieren.Das ist alles.
Ich hoffe das beantwortet deine Frage.
Hier finden Sie auch das online geteilte Handbuch als Referenz: https://www.gnu.org/software/parted/manual/html_node/index.html
BEARBEITEN:
Das OP wollte so etwas von einem Skript aus und nicht von einem Terminal aus tun. Sie können dieselbe Prozedur über ein Skript ausführen, indem Sie parted über einzeilige Befehle anstatt innerhalb des parted Terminals ausführen.
Zum Beispiel der Befehl
Druckt die Laufwerksinformationen und die Partitionstabelle auf der Bash-Konsole aus, die dann mit grep usw. bearbeitet werden kann, um Variablen oder was auch immer in einem Bash-Skript zu erstellen.
quelle
parted /dev/sda print
wird die Partitionstabelle für / dev / sda ausgedruckt. Sie können das gleiche, was ich oben beschrieben habe, nur mit einzeiligen Befehlen ausführen, wenn Sie dies in einem Bash-Skript tun müssen.parted /dev/sda
Ich muss auch wissen, wie viele Partitionen sich auf dem Laufwerk befinden, um aufzurufenrm 1
. Ich suche nach einem Befehl, um die Festplatte einfach zu bereinigen, damit ich sie neu partitionieren kann. ohne all die manuellen Dinge zu tun, um MDs herunterzufahren, Lvs zu entfernen und so weiter.df
wenn das Laufwerk montiert ist. Wie wollen Sie ein "Skript" erstellen, wenn Sie den Speicherort des Laufwerks nicht ermitteln können? 2) Es ist einfach genug,parted $drive print
die Ergebnisse auszuführen und zu überprüfen, um alle verfügbaren Partitionsnummern zu finden und sie dann in einem Array zu speichern. Verwenden Sie dann diese Werte zum Ausführenparted $drive rm $partition
. All dieses Zeug ist ziemlich einfaches Bash-Scripting.Verwenden Sie eine verbesserte nicht interaktive Version von fdisk, nämlich sfdisk
Verwenden Sie diesen Befehl, um die Partitionstabelle zu löschen:
quelle
Grundsätzlich ist dieser Fehler
wird angezeigt, wenn Sie beim Partitionieren Ihrer Festplatte einen Parameter übersehen. Sie können diesen Fehler beheben, indem Sie sich die Parameter genau ansehen, die Sie beim Partitionieren definiert haben.
Verwenden
fdisk -l
Sie:, um die Parameter Ihrer Festplatte zu überprüfen:quelle