
Mir ist beim Schreiben meines Befehls ein Fehler unterlaufen, und ich habe /dev/sda
eine 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 source
es umbenannt wird, glaube ich. Mit ls -i -1
kann ich überprüfen, dass es source
seine Inode-Nummer behält, auch wenn target
es vorher schon existierte.
Ein weiterer Test ist
mv /dev/urandom /dev/sr0
Es sendet keine Daten an mein optisches Laufwerk. Stattdessen /dev/sr0
verhält es sich danach wie /dev/urandom
.
Das Fazit lautet:Ihr /dev/sda
wurde 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, 0
Fragment ist <major>, <minor>
hier ein Tupel.
Ich habe das geschrieben/dev/sda
normalerweiseentspricht deiner HDD, da mv
du 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/sda1
oder so an einen mount
Befehl übergeben wird, nicht /dev/sda
. Dies liegt daran, dass sda1
entspricht einemPartitionwährend sda
entspricht 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).