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

Linux での仮想ファイルへのファイルの連結

「すべてがファイル」のおかげで、ループデバイスとデバイスマッパーを組み合わせることでそれを行うことができます。ただし、1 つの制限があります。ファイル サイズを変更することはできません (ブロック デバイスに書き込みを行ってブロック デバイスを増やすことはできないため)。したがって、データを追加したい場合は、より大きなブロック デバイスを作成し、追加されたダミー データを上書きする必要があります。

# for testing, Create 4 files
echo foo | dd of=block0 cbs=512 conv=block
echo bar | dd of=block1 cbs=512 conv=block
echo bat | dd of=block2 cbs=512 conv=block
echo baz | dd of=block3 cbs=512 conv=block
# Create a loop device for each of the 4 files
losetup /dev/loop0 block0
losetup /dev/loop1 block1
losetup /dev/loop2 block2
losetup /dev/loop3 block3
# Create a device map named "test" using those loop devices
(
    echo "0 1 linear /dev/loop0 0"
    echo "1 1 linear /dev/loop1 0"
    echo "2 1 linear /dev/loop2 0"
    echo "3 1 linear /dev/loop3 0"
) | dmsetup create test
$EDITOR /dev/mapper/test # use overwrite mode only

ファイルを拡張するために、大きなスパース ファイルを作成し、それを追加のデバイスとして使用できます。


Linux
  1. Linuxでスワップを作成する方法

  2. Linuxでスワップファイルを作成する方法

  3. Linuxで特定のサイズのファイルを作成するには、fallocateコマンドを使用します

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

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

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

  1. Linuxでmvなしでファイルを移動する

  2. Linuxスワップファイルを作成する

  3. Linux で 2 GB を超えるファイルを作成できないのはなぜですか?