2010-12-07 43 views
3

デバイス/ソケットのinodeをstatで知ることができるので、何とかこのファイルをバックアップすることができます。もちろん、ソリューションは "dd"ですが、デバイスが無限大の場合(ランダムなものと同じように)、何ができるか分かりません。とにかくiノードをコピーすることはできますか?デバイス/ソケットファイルのコピーを作るにはどうすればいいですか

+0

正確にあなたが何をやろうとしている? –

+1

あなたは何のバックアップをしようとしていますか?デバイス上のデータ?デバイス自体をバックアップしても、物理的には意味がありません。 –

+0

これらの種類のファイルからデータを取得してバックアップする方法を知りたいのですが。しかし、情報をバックアップすることができない場合(なぜ私があなたに私に教えれば本当にうれしいでしょう)、私はそれらのファイルの鏡のようなものを作っています。 – Ximik

答えて

5

これらを「特殊ファイル」または「特殊ノード」と呼びます。その内容をコピーすることは意味をなさない。なぜなら、コンテンツは必要に応じてカーネルによってプログラム的に一方向に生成されるからである。

"tar"のようなプログラムは、これらの異なるノードのそれぞれをサポートするカーネルの部分を参照するinodeの内容をコピーする方法を知っています。詳細については、 "mknod"コマンドのドキュメントを参照してください。

+0

それでは、このプログラムはどのように機能しますか?これが私の必要としているようです。ありがとうございました。 UPD:マンページを調べましたが、理解できませんでした。どのようにして既存のデバイスファイルのメジャー番号とマイナー番号を知ることができますか? – Ximik

+0

私は見つけました。どうもありがとう。 – Ximik

+0

私はmkfifoを使って名前付きパイプを作成できることを理解します。 (ls -lではprw -...と見なされます)。ソケットファイルを作成するための同様のコマンドがありますか?ソケットファイルは(srw -...ls -l)&fifoと同じではありません。 – anishsane

0

コピーが必要なデバイスファイルのメジャー番号とマイナー番号を見つけ、mknodを使用して同じメジャー番号とマイナー番号を持つデバイスファイルを作成します。メジャー番号は、プログラムがカーネルデバイスのスイッチテーブルにアクセスし、適切なカーネル機能(通常はデバイスドライブ)を呼び出すために使用されます。マイナーナンバーは、これらの関数を呼び出すためのパラメータ(密度、ディスクなど)に使用されます。

-3

以下のように現用システムからマシン間の共有ロケーションにコピーし、共有ロケーションから他のシステムにコピーすることができます。

マシンA

cp -rf /dev/SRC shared_directory 

マシンB

cp -rf shared_directory /dev/ 
+1

これはこれまで数年前ですが、この解決策はソケットファイルのコピーには使用できません。 – sherrellbc

0

そして、あなたは、tarでデバイスノードをコピーするワンライナーが必要な場合は、ここにある:

cd /dev && tar -cpf- sda* | tar -xf- -C /some/destination/path/ 
関連する問題