/dev/sda mit mv-Befehl überschrieben

/dev/sda mit mv-Befehl überschrieben

Mir ist beim Schreiben meines Befehls ein Fehler unterlaufen, und ich habe /dev/sdaeine Datei im Verzeichnis „überschrieben“(?), anstatt sie zu verschieben /dev. Wie kann ich das wiederherstellen?

Und was genau ist das /dev/sda? Ist es das Verzeichnis, in dem die Festplatte/SSD gemountet ist?

Antwort1

Wenn ich das mache (mit normalen Dateien):

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

dann bekomme ich 2. Das bedeutet, dass nichts in geschrieben wird target, es wird nur die Verknüpfung aufgehoben, bevor sourcees umbenannt wird, glaube ich. Mit ls -i -1kann ich überprüfen, dass es sourceseine Inode-Nummer behält, auch wenn targetes vorher schon existierte.

Ein weiterer Test ist

mv /dev/urandom /dev/sr0

Es sendet keine Daten an mein optisches Laufwerk. Stattdessen /dev/sr0verhält es sich danach wie /dev/urandom.

Das Fazit lautet:Ihr /dev/sdawurde durch einen anderen „Eintrag“ ersetzt (der auch seinen ursprünglichen Namen verloren hat). Ein Neustart behebt dies, es sei denn, Ihr System ist alt (oder ungewöhnlich) und behält diese Gerätedateien statisch bei.


Und was genau ist /dev/sda?

Es handelt sich um eine spezielle Datei, die (normalerweise) Ihrer Festplatte oder einem anderen Speicher entspricht. Unix identifiziert solche Ressourcen durch eine Hauptnummer und eine Nebennummer. Im Allgemeinen identifiziert die Hauptnummer den Gerätetreiber und die Nebennummer ein bestimmtes Gerät (möglicherweise von vielen), das der Treiber steuert. Um diese Nummern anzuzeigen, versuchen Sie ls -l /dev/sda. Meine Ausgabe ist:

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

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

Ich habe das geschrieben/dev/sda normalerweiseentspricht deiner HDD, da mvdu in deinem Fall (nach ) nun etwas anderes unter diesem Namen hast.

Ist es das Verzeichnis, in dem die Festplatte/SSD gemountet ist?

Nein. Wenn Sie es mounten, lautet der Befehl wie folgt

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

das sind also zwei verschiedene Dinge.

(Beachten Sie, dass normalerweise /dev/sda1oder so an einen mountBefehl übergeben wird, nicht /dev/sda. Dies liegt daran, dass sda1entspricht einemPartitionwährend sdaentspricht demgesamte Festplatte. Dateisysteme befinden sich normalerweise in Partitionen, aber es ist möglich, dass sich eines auf einem Gerät befindet, auf dem es keine Partitionen gibt. Daher kann der obige Befehl ausgeführt werden. Vergleichen Sie:Verwendungsmöglichkeiten einer Festplattenkonfiguration mit einer einzigen Partition).

verwandte Informationen