Überschreibe / dev / sda mit dem Befehl mv

446
Anosen

Ich habe einen Fehler beim Schreiben meines Befehls gemacht und "überschrieben" (?), /dev/sdaAnstatt eine Datei in das /devVerzeichnis zu verschieben. Wie kann ich es wiederherstellen?

Was genau ist das auch /dev/sda? Ist es das Verzeichnis, in dem sich die Festplatte / SSD befindet?

1
Beim Neustart werden alle Ihre / dev-Dateien wiederhergestellt. [Diese] (https://stackoverflow.com/a/18423187/7544655) Antwort auf stackoverflow erklärt viel über Gerätedateien. doriclazar vor 7 Jahren 1
Du meinst, du hast 'mv somefile / dev / sda' ausgeführt? Ich würde davon ausgehen, dass es ähnlich funktioniert wie "cp", das heißt, der Anfang Ihrer Festplatte wird mit den Daten dieser Datei überschrieben. Die Daten, die sich auf diesem Teil der Platte befinden, sind MBR, Partitionstabelle und möglicherweise Teil des Dateisystems der ersten Partition und möglicherweise mehr. Es hängt davon ab, wie groß die Datei war, die Sie verschoben haben. Tom Yan vor 7 Jahren 1

1 Antwort auf die Frage

1
Kamil Maciorowski

Wenn ich (mit regulären Dateien):

echo 1 > source echo 2 > target cp -l target target2 mv source target cat target2 

dann bekomme ich 2. Das bedeutet, dass nichts geschrieben targetwird. Es ist nur nicht verbunden, bevor es sourceumbenannt wird, denke ich. Mit ls -i -1kann ich überprüfen, dass sourceseine Inode-Nummer auch dann beibehalten wird, wenn targetes vorher existiert.

Ein weiterer Test ist

mv /dev/urandom /dev/sr0 

Es werden keine Daten an mein optisches Laufwerk gesendet. Stattdessen /dev/sr0verhält sich danach als /dev/urandom.

Die Schlussfolgerung lautet: Ihr /dev/sdawurde durch einen anderen "Eintrag" ersetzt (der auch seinen ursprünglichen Namen verloren hat). Durch einen Neustart wird dies behoben, es sei denn, Ihr System ist ein altes (oder ungewöhnliches) System, das diese Gerätedateien statisch hält.


Was genau ist das auch /dev/sda?

Dies ist eine spezielle Datei, die (normalerweise) Ihrer Festplatte oder einem anderen Speicher entspricht. Unix identifiziert solche Ressourcen anhand einer Hauptnummer und einer Nebennummer. Im Allgemeinen identifiziert die Hauptnummer den Gerätetreiber und die Nebennummer ein bestimmtes Gerät (möglicherweise von vielen Geräten), das der Treiber steuert. Um diese Zahlen zu sehen, versuchen Sie es ls -l /dev/sda. Meine Ausgabe ist:

brw-rw---- 1 root disk 8, 0 Jul 8 00:48 /dev/sda 

Dieses 8, 0Fragment ist hier ein <major>, <minor>Tupel.

Ich habe geschrieben, das entspricht in der /dev/sda Regel Ihrer Festplatte, denn in Ihrem Fall (nachher mv) haben Sie jetzt etwas anderes unter diesem Namen.

Ist es das Verzeichnis, in dem sich die Festplatte / SSD befindet?

Wenn Sie es mounten, ist der Befehl wie

mount /dev/sda /a/directory/to/mount/to/ 

Das sind also zwei verschiedene Dinge.

(Beachten Sie, es ist in der Regel /dev/sda1so, dass zu einem bestandenen mountBefehl, nicht /dev/sda. Das liegt daran, sda1entspricht eine Partition während sdaentspricht die gesamte Festplatte . Dateisysteme in der Regel innerhalb Partitionen leben, aber es ist möglich, eine auf einem Gerät zu haben, wo es keine Partitionen, so Der obige Befehl kann passieren: Compare: Verwendet die Festplattenkonfiguration mit einer Partition ).

Okay, '/ dev / sda' ist nur eine Datei, die dazu dient, Informationen über die erste SCSI / SATA-Platte [link] (http://wiki.linuxquestions.org/wiki//dev) zu geben, die an den Computer angeschlossen ist Recht ? Anosen vor 7 Jahren 0
Und ich hätte den Inhalt meines Laufwerks nur dann herabsetzen können, wenn ich es irgendwie geschafft habe, das Verzeichnis zu überschreiben, in das mein Laufwerk geladen ist, mit der Datei, die ich nicht gefunden habe, was unmöglich ist (?). Trotzdem vielen Dank für Ihre Antwort und bitte entschuldigen Sie mein schlechtes Englisch, aber ich bin kein Muttersprachler :) Anosen vor 7 Jahren 0
Ach ja, der Neustart hat das Problem behoben, fast vergessen Anosen vor 7 Jahren 0