Linux losetup コマンド

Linux 命令大全Linux コマンド大全

Linux losetup コマンドはループデバイスを設定するために使用します。

ループデバイスはファイルをブロックデバイスとして仮想化し、それによってファイルシステム全体をシミュレートできます。ユーザーはこれをハードディスクドライブ、CD-ROMドライブ、フロッピードライブなどのデバイスとして扱い、ディレクトリとしてマウントして使用できます。

構文

losetup [-d][-e <加密方式>][-o <平移数目>][循环设备代号][文件]

パラメータ:

  • -d デバイスを切り離します。
  • -e<暗号化方式> 暗号化を有効にします。
  • -o<オフセット数> データオフセットの数を設定します。

実例

(1)空のディスクイメージファイルを作成します。ここでは1.44Mのフロッピーディスクを作成します。

$ dd if=/dev/zero of=floppy.img bs=512 count=2880

(2)losetup を使用してディスクイメージファイルをブロックデバイスとして仮想化します。

$ losetup /dev/loop1 floppy.img

(3)ブロックデバイスをマウントします。

$ mount /dev/loop0 /tmp

上記の3つの手順を経て、/tmpディレクトリを通じて、実際のブロックデバイスにアクセスするのと同じようにディスクイメージファイル floppy.img にアクセスできます。

(4)ループデバイスを切り離します。

$ umount /tmp
$ losetup -d /dev/loop1

完全なテストの実例

1. まず 1G サイズの空ファイルを作成します:

# dd if=/dev/zero of=loopfile.img bs=1G count=1
1+0 records in
1+0 records out
1073741824 bytes (1.1 GB) copied, 69.3471 s, 15.5 MB/s

2. そのファイルを ext4 フォーマットにフォーマットします:

# mkfs.ext4 loopfile.img
。。。。

3. file コマンドでフォーマット後のファイルタイプを確認します:

# file loopfile.img
loopfile.img: Linux rev 1.0 ext4 filesystem data, UUID=a9dfb4a0-6653-4407-ae05-7044d92c1159 (extents) (large files) (huge files)

4. 上記のファイルをマウントする準備をします:

# mkdir /mnt/loopback
# mount -o loop loopfile.img /mnt/loopback

mount コマンドの -o loop オプションは、任意のループバックファイルシステムをマウントできます。

上記の mount コマンドは、実際には以下の2つのコマンドと同等です:

# losetup /dev/loop0 loopfile.img
# mount /dev/loop0 /mnt/loopback

したがって実際には、mount -o loop は内部でデフォルトでファイルと /dev/loop0 をマウントしています。

しかし、最初の方法(mount -o loop)はすべてのシナリオに適しているわけではありません。たとえば、ハードディスクファイルを作成してからそのファイルをパーティション分割し、その中の1つのサブパーティションをマウントしたい場合は、-o loop の方法は使用できません。したがって、次のように行う必要があります:

# losetup /dev/loop1 loopfile.img
# fdisk /dev/loop1

6. マウントポイントのマウントを解除します:

# umount /mnt/loopback

Linux 命令大全Linux コマンド大全

その他の拡張