タグ付けされた質問 「sparse-files」

8
パーティション全体またはハードドライブをスパースファイルに複製する
パーティション全体またはハードドライブ全体をより大きな外部ディスクに複製したいのですが、スパースファイルを作成したいです。ddクローン作成によく使用しますが、スパースファイルはサポートしていません。回避策として、次のようなものを使用しました。 cp --sparse=always <(dd if=/dev/sda1 bs=8M) /mount/external/backup/sda1.raw しかし、これは私の趣味にはややトリッキーすぎて、中止された場合にプロセスを再開することはできません。このためのNTFSツールがあることは面白いですが(ntfsclone)、Linuxのネイティブファイルシステム(EXT2-4)にはそのようなツールは存在しません。 ddスパースをサポートするバリアントなど、これに適したツールはありますか?ディスクバックアップ用の独自のソフトウェアは探していませんが、必要に応じてループデバイスとしてマウントできるスパースクローンコピーを作成したいだけです。

4
元々スパースだったファイルを再びスパースにすることはできますか?
スパースファイルを理解するユーティリティを使用せずに元々スパースファイルであったものをコピーまたは転送すると、「穴」が埋められることがわかります。かつてスパースファイルだったものをスパースに戻す方法やユーティリティはありますか? 例: スパースファイルの作成: % dd if=/dev/zero of=TEST bs=1 count=0 seek=1G # do some op that pads out the holes % scp TEST localhost:~/TEST2 % ls -lhs TEST* 0 -rw-rw-r--. 1 tony tony 1.0G Oct 16 13:35 TEST 1.1G -rw-rw-r--. 1 tony tony 1.0G Oct 16 13:37 TEST2 次の方法があります: % resparse …

3
コマンドラインを使用してファイルをトリミングするにはどうすればよいですか?
次のPythonコードに相当するコンソールは何ですか: target = file("disk", "w") # create a file target.seek(2*1024*1024*1024) # skip to 2 GB target.write("\0") target.close() 多分DDの呪文?このアイデアは、仮想化などで使用するために、見かけのサイズが2 GBのファイルを作成することです。 kvm disk -cd whatever.iso #Only allocate space as necessary
18 files  dd  sparse-files 

4
任意のサイズの「偽物」ファイルを作成する
/dev/nullまたは/dev/randomに似た特別なファイルを作成したいと思います。ファイルは実際には存在しませんが、ファイルの見かけのサイズに実際に上限を設定できることを除いて、すべて同じように読み取ることができます。 別の言い方をすれば、ファイルを「cat」すると500GBのファイルをすべて出力して停止する特別なファイルを作成します(上限を500GBに設定すると仮定します)。実際の500GBファイルと同じように動作する必要がありますが、スペースを取りません。このファイルの内容は重要ではありません。すべて\0ののようなもの/dev/nullでも、繰り返し送信される小さな文字列などでもかまいません。 これはできることですか?私が見つけることができたのは、リモートで閉じることができる唯一のものは、manページについて話しているだけですmknodが、それらはあまり役に立ちませんでした。

3
ファイルの「まばら」を出力するにはどうすればよいですか?
実際にファイルの公称サイズのどれだけがデータで満たされているかを出力するにはどうすればよいですか?同様に、vmtouch現在どのくらいのファイルがメモリにあるかを示します... ワークフローは次のようになります。 $ fallocate -l 1000000 data $ measure_sparseness data 100% $ fallocate -p -o 250000 -l 500000 data $ measure_sparseness 50% 回避策:それらを使用du -bshしdu -shて比較します。

1
tmpfsの/でのこの奇妙なスパースファイル処理を説明できるものは何ですか?
私のext4ファイルシステムパーティションで、次のコードを実行できます。 fs="/mnt/ext4" #create sparse 100M file on ${fs} dd if=/dev/zero \ of=${fs}/sparse100M conv=sparse seek=$((100*2*1024-1)) count=1 2> /dev/null #show its actual used size before echo "Before:" ls ${fs}/sparse100M -s #setting the sparse file up as loopback and run md5sum on loopback losetup /dev/loop0 ${fs}/sparse100M md5sum /dev/loop0 #show its actual used size …

3
Linuxでのスパースファイルの詳細情報
いくつかのブロックのみが割り当てられているスパースファイルがあります。 ~% du -h --apparent-size example 100K example ~% du -h example 52K example ファイルのどのブロックが実際に割り当てられているのか知りたいのですが。割り当てまたはファイルのホールのリストを取得するために使用できるシステムコールまたはカーネルインターフェイスはありますか? ゼロの十分に長い文字列をチェックするだけでは(GNU cp、rsyncなどで使用されるアプローチ)正しく動作しません。 ~% cp example example1 ~% du -h example1 32K example1 実際に割り当てられたゼロの他のシーケンスを検出しました。

1
`cp --sparse = always`の欠点はありますか?
を呼び出すたびにuseを使用しない理由はありますか?--sparse=alwayscp info cp 言う: ‘--sparse=WHEN’ A “sparse file” contains “holes”—a sequence of zero bytes that does not occupy any physical disk blocks; the ‘read’ system call reads these as zeros. This can both save considerable disk space and increase speed, since many binary files contain lots of consecutive zero bytes. …

2
ext4ファイルシステムをスパースにする方法は?
VirtualBoxでゲストOSとしてLinuxを使用しています。ファイルシステムから膨大な数のファイルを削除しました。次に、ファイルシステムイメージファイル(vdi)を縮小します。圧縮は、ディスク内に「null」値がある場合は常にファイルシステムイメージを圧縮することによって機能します。 zerofreeと呼ばれるアプリケーションは、ファイルシステムの空き領域にスパースになるように「null」を書き込むことができるようです。しかし、指示はそれがext2 / ext3でのみ機能することを述べています。ゲストOSにext4があります。 なぜそれがext 4で機能しないのですか(引用されている理由は「範囲」ですが、誰かがより多くの光を当てることができます)? 私はマウントした場合には、動作しますEXT 4としてEXT 3として再マウント当時とEXT 4? extでzerofreeとして同様のことができる他のツールはありますか?

2
tar、gzip、rsyncを使用してスパースファイルの操作を高速化するにはどうすればよいですか?
スパースファイルがあります。(du -h3Gをdu -h --apparent-size報告し、100G を報告します。)これまでのところ、とても良い。 今、を使用してファイルを圧縮するtarか、ネットワーク経由で送信rsyncする場合、3Gと同じくらいの時間がかかります。これらのツールはすべてゼロを読み取るようです。 穴はどういうわけかマークされていて、これらのツールはどういうわけかそれらをスキップできると思いましたか? 私のファイルにはおそらく問題はありませんか? これはスパースファイルの欠落機能でtarありrsync、スパースファイルを検索しないのですか?tarパラメータを使用しました--sparseが、速度は向上しませんでした。rsyncパラメータもしませんでした--sparse。 スパースファイルでこれらのツールを高速化する方法はありますか?

2
他のファイルシステムを含むファイルで断片化レベルが非常に大きいのはなぜですか?
スパースファイルが何であるかを知り、それらについていくつかの実験を行いたいと思っています。ウィキでは、ファイルが簡単に断片化する可能性があることを読むことができます。それがいかに悪いかチェックしたかった。次の方法でファイルを作成しました。 # truncate -s 10G sparse-file # mkfs.ext4 -m 0 -L sparse ./sparse-file スパースファイルをマウントし、600Mファイルを入れました。断片化レベルは次のようになります。 # filefrag -v "/media/Grafi/sparse-file" Filesystem type is: ef53 File size of /media/Grafi/sparse-file is 10737418240 (2621440 blocks of 4096 bytes) ext: logical_offset: physical_offset: length: expected: flags: 0: 0.. 1032: 36864.. 37896: 1033: 1: 1043.. 1043: 37907.. 37907: …

1
スパースファイルを非スパースファイルにインプレースで変換する
Linuxでは、スパースファイルが与えられた場合、そのファイルを非スパースにする方法を教えてください。 でコピーすることもできcp --sparse=never ...ますが、ファイルが10Gで、穴が2Gの場合(つまり、割り当てられたスペースは8Gです)、元の8Gを新しいファイルにコピーせずに、ファイルシステムに残りの2Gを割り当てる方法は?

1
スパースファイルの非スパース部分を表示する方法は?
次のように作成されたファイルを想像してください。 truncate -s1T file echo test >> file truncate -s2T file 現在、2テビバイトのファイル(ディスク上で4kiBを占めています)"test\n"があり、中央に書き込まれています。 それを"test"効率的に回復するにはどうすればよいでしょうか。つまり、ファイル全体を読み取る必要がありません。 tr -d '\0' < file 結果は出ますが、それは数時間かかります。 私"test\n"が欲しいのは、ファイルの非スパース部分のみを出力するものです(そのため、そのデータを格納するディスクに割り当てられた4kiBブロックのみまたはそれ以上の可能性があります)。 ファイルのどの部分が割り当てられているかを確認するAPI (FIBMAP、FIEMAP、SEEK_HOLE、SEEK_DATA ...)がありますが、それらを公開しているツールは何ですか? ポータブルソリューション(少なくともこれらのAPIをサポートするOSにとって)が評価されます。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.