GNU/Linux >> Linux の 問題 >  >> Cent OS

Linux で仮想ブロック デバイス (ループ デバイス/ファイルシステム) を作成する方法

Linux は、通常のファイルを仮想ブロック デバイスにマップするループ デバイスと呼ばれる特別なブロック デバイスをサポートしています。これにより、ファイルを別のファイル内の「仮想ファイル システム」として使用できます。 Linux では、単一のファイル内にファイル システムを作成できます。これらのストレージ デバイスは、/dev/device_name などのデバイス ファイルとして利用できます。 .

ファイルを作成

1. 最初のステップは、目的のサイズのファイルを作成することです。次のコマンドは、サイズが 1 GB のファイルを作成します:

# dd if=/dev/zero of=loopbackfile.img bs=100M count=10
10+0 records in
10+0 records out
1048576000 bytes (1.0 GB) copied, 1.26748 s, 827 MB/s

2. 作成したファイルのサイズを確認します。

# du -sh loopbackfile.img 
1000M	loopbackfile.img

ループ デバイスを作成する

1. 次のステップは、ファイルを使用してループ デバイスを作成することです。コマンド「losetup」を使用します ” ループデバイス “loop0” を作成します

# losetup -fP loopbackfile.img

ここで、
-f – 最初の未使用のループ デバイスを見つけます。ファイル引数が存在する場合、このデバイスを使用します。それ以外の場合は、その名前を出力します。
-P – 新しく作成されたループ デバイスのパーティション テーブルをカーネルがスキャンするように強制します。

2. 上記のコマンドを使用して生成されたループ デバイスを出力するには、「losetup -a」を使用します。

# losetup -a
/dev/loop0: [64769]:4199216 (/root/loopbackfile.img)

ファイルシステムを作成

1. 次に、ループバック デバイスに ext4 ファイルシステムを作成します。

# mkfs.ext4 /root/loopbackfile.img 
mke2fs 1.42.9 (28-Dec-2013)
/root/loopbackfile.img is not a block special device.
Proceed anyway? (y,n) y
Discarding device blocks: done                            
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
64000 inodes, 256000 blocks
12800 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=262144000
8 block groups
32768 blocks per group, 32768 fragments per group
8000 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

ループバック ファイルシステムをマウントする

1. これで、ループバック ファイルシステムをディレクトリにマウントできます。 「-o ループ」 追加のオプションは、ループバック ファイルシステムをマウントするために使用されます。

# mkdir /loopfs
# mount -o loop /dev/loop0 /loopfs

2. 以下のコマンドを使用して、新しいマウント ポイントのサイズとファイル システムのタイプを確認します。

# df -hP /loopfs/
Filesystem      Size  Used Avail Use% Mounted on
/dev/loop1      969M  2.5M  900M   1% /loopfs
# mount | grep loopfs
/dev/loop0 on /loopfs type ext4 (rw,relatime,seclabel,data=ordered)

ループ デバイスの削除

新しいファイル システムを削除する場合は、次の手順に従います。
1.ディレクトリ /loopfs をアンマウントして削除します

umount /loopfs
rmdir /loopfs

2.「losetup -d」コマンドで作成したループバックデバイス「loop0」を削除します。

# losetup -d /dev/loop0

3. 最後に、ループ デバイスの作成に使用されたファイル「/root/loopbackfile.img」を削除します。

# rm /root/loopbackfile.img

ループ ファイルシステムで暗号化を有効にする

「losetup」では、暗号化されたファイルシステムを取得するためにデータ暗号化を有効にすることもできます。以下に示すように、暗号化されたループ デバイス si を作成するための構文:

# losetup [ -e encryption ] loop_device file

次の暗号化アルゴリズムが受け入れられます:

  • なし 暗号化を使用しません (デフォルト)。
  • XOR 単純な XOR 暗号化を使用します。
  • DES DES 暗号化を使用します。

DES 暗号化は、オプションの DES パッケージがカーネルに追加されている場合にのみ使用できます。 DES 暗号化は、辞書攻撃からパスワードを保護するために使用される追加の開始値を使用します。

許容される最大 Lopback デバイス

8 つを超えるループバック デバイスを作成しているときに、「そのようなデバイスはありません」というエラー メッセージが表示される場合があります。これは、使用可能なループ デバイスの量によって制限されているために発生します。システムに応じて、「options loop max_loop=X」を CentOS/RHEL 5 の /etc/modprobe.conf に追加するか、disk.conf のような名前の新しいファイルを作成します。 ディレクトリ /etc/modprobe.d 内 CentOS/RHEL 6. (X は必要なループ デバイスの番号)。


Cent OS
  1. Linuxにデバイスドライバーをインストールする方法

  2. Linux –論理的に切断されたUSBデバイスを再接続する方法は?

  3. Linux .dts デバイス ツリー ファイルをプログラムする方法は?

  1. Linuxパーティションまたは論理ボリュームにファイルシステムを作成する方法

  2. RAM にブロック デバイスを作成する

  3. iscsi デバイスがマウントされた Linux ファイルシステムかどうかを判断するにはどうすればよいですか?

  1. Nginx仮想ホスト(サーバーブロック)を作成する方法

  2. ループバック デバイス内にパーティションを作成する方法

  3. ユーザー空間のLinuxブロックデバイスドライバーを作成するには?