GNU/Linux >> Linux の 問題 >  >> Linux

「dd」コマンドを使用して Linux でスパース ファイルを作成する方法

スパース ファイルとは

スパース ファイルは、ファイル システム全体を占有することなく、事前に割り当てられた大量の領域を持つファイルです。これらは、ループ ファイルシステムや仮想化ゲスト用の大きなディスク イメージの作成にかかる時間とディスク容量を削減するのに役立ちます。スパース ファイルは、ディスク イメージ、データベース スナップショット、ログ ファイルなどによく使用されます。

スパース ファイルの利点
スパース ファイルの利点は、実際に必要なときにのみストレージが割り当てられることです。ディスク容量が節約され、ファイル システムに十分な空き容量がない場合でも大きなファイルを作成できます。

スパース ファイルの欠点
欠点は、スパース ファイルが断片化する可能性があることです。ファイル システムの空き容量レポートは誤解を招く可能性があり、それらを明示的にサポートしていないプログラムでスパース ファイルをコピーすると、ディスク上にないほとんどゼロのスパース セクションを含むファイルの圧縮されていないサイズ全体がコピーされる可能性があり、利点が失われます。ファイル内のスパース プロパティの。

この動作は /var/log/lastlog ファイルで確認できます。

# ls -lh /var/log/lastlog
-rw-r--r--. 1 root root 286K Dec  3 04:50 /var/log/lastlog
# du -sh /var/log/lastlog
12K     /var/log/lastlog

スパース ファイルの作成

1. 「dd」を使用してスパース ファイルを作成できます ‘ コマンドの ‘seek ‘オプション。

# dd if=/dev/zero of=sparse_file bs=1 count=0 seek=512M
0+0 records in
0+0 records out
0 bytes (0 B) copied, 0.000213705 s, 0.0 kB/s
# ls -hl sparse_file
-rw-r--r--. 1 root root 512M Dec  3 05:51 sparse_file
# du -sh sparse_file
0       sparse_file

2.「ls」コマンドでファイルのディスク使用量を確認するには、「-s」を使用できます ” オプション:

# ls -lhs sparse_file
0 -rw-r--r--. 1 root root 512M Dec  3 05:51 sparse_file

3.「du」を使用してファイルの見かけのサイズを確認するには、「–apparent-size」を使用できます ” オプション:

# du -h --apparent-size sparse_file
512M    sparse_file

スパース ファイルをコピーする方法

スパース ファイルを明示的にサポートしていないプログラムを使用してスパース ファイルをコピーすると、スパース ファイルを含む圧縮されていないサイズのファイル全体がコピーされる場合があります。そのため、cp コマンドを使用してスパース ファイルをコピーすると、宛先ファイルは完全に割り当てられたファイルに変更されます。コピー先のコピーをスパース ファイルのままにしてスパース ファイルをコピーするには、以下のいずれかのコマンドを使用します。

# cp --sparse=always source_file new_file
# rsync --sparse source_file new_file
# cpio --sparse
# tar --sparse


Linux
  1. diffコマンドを使用してLinuxでファイルを行ごとに比較する方法

  2. Linuxで特定のサイズのファイルを作成する方法

  3. Linuxのコマンドラインを使用してファイルを作成する

  1. LKM を使用して C プログラムで Linux proc ファイルを作成する方法

  2. Sort コマンドを使用して Linux でファイルをソートする方法

  3. Linux で「split」コマンドを使用して iso またはファイルを分割する方法

  1. ターミナル/コマンドラインを使用してLinuxでファイルを作成する方法

  2. Linuxでファイルを作成する方法

  3. bzip2 コマンドを使用して Linux で .bz2 ファイルを圧縮および解凍する方法