mvコマンドで/dev/sdaを上書きしました

mvコマンドで/dev/sdaを上書きしました

コマンドを速く書きすぎたために、ディレクトリ/dev/sda内のファイルを移動せずに「上書き」してしまいました/dev。どうすれば回復できますか?

また、 とは正確には何ですか/dev/sda? ハードドライブ/SSD がマウントされているディレクトリですか?

答え1

私が(通常のファイルで)行う場合:

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

すると になります2。これは に何も書き込まれずtarget、 がsource名前変更される前にリンクが解除されただけであることを意味します。 を使用すると、が以前存在していたとしても inode 番号を保持しているls -i -1ことを確認できます。sourcetarget

もう一つのテストは

mv /dev/urandom /dev/sr0

光学ドライブにデータを送信しません。代わりに、その後は/dev/sr0として動作します/dev/urandom

結論は次のとおりです。あなたの/dev/sdaエントリは他の「エントリ」に置き換えられました (これも元の名前を失いました)。システムがこれらのデバイス ファイルを静的に保持する古い (または珍しい) システムでない限り、再起動するとこの問題は修正されます。


また、正確には何ですか/dev/sda?

これは、(通常) HDD または別のストレージに対応する特別なファイルです。 Unix は、このようなリソースをメジャー番号とマイナー番号で識別します。 一般に、メジャー番号はデバイス ドライバーを識別し、マイナー番号はドライバーが制御する特定のデバイス (多数のデバイスのうちの 1 つ) を識別します。 これらの番号を確認するには、 を試してくださいls -l /dev/sda。 出力は次のようになります。

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

この8, 0フラグメントは<major>, <minor>ここではタプルです。

私はこう書いた/dev/sda いつものあなたの HDD に対応します。なぜなら、あなたの場合 ( 以降mv) では、この名前で別のものが存在するからです。

ハードドライブ/SSDがマウントされているディレクトリですか?

いいえ。マウントするときのコマンドは次のようになります

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

つまり、これらは2つの異なるものです。

/dev/sda1(コマンドに渡されるのは通常 または でありmount、 ではありません/dev/sda。これは、sda1が に対応するためです。パーティションsda一方、HDD全体ファイルシステムは通常パーティション内に存在しますが、パーティションがないデバイス上にファイルシステムが存在する可能性もあるため、上記のコマンドが実行される場合があります。比較:単一パーティションディスク構成の用途)。

関連情報