tips:linux:common:losetup

ループバックデバイス (losetup)

前提として ArchLinux 上で。ただし Ubuntu Debian などのほかのLinuxでも似たようなものかと思われます。

user$ dd if=/dev/zero of=loop1.img bs=1M count=100
(イメージ作成  fallocate -l 100M loop1.img でもよい)
user$ sudo losetup /dev/loop0 loop1.img 
(loop1.imgを loop0 に紐づけ)
user$ sudo mkfs.ext4 /dev/loop0
(ファイルシステム作成)
user$ sudo mkdir /mnt/loop0; sudo mount -t ext4 /dev/loop0 /mnt/loop0
(マウントする)
user$ sudo umount /mnt/loop0
user$ sudo losetup -d /dev/loop0
(紐づけを解除)
user$ shred -z -v -u loop1.img
(ファイル抹消)

losetup -fP でファイルをパーティション検出ありでやる方法

ファイルを割り当て

user$ fallocate -l 2G Disk2G.img
(2GBファイルを作成)
user$ ls -l Disk2G.img
(ファイルを確認)
user$ sudo losetup -fP ./Disk2G.img
(割当実施)
user$ sudo losetup -l
(割当結果を確認)

fdisk / gdisk + mkfs + mount

loop0 に割り当てられたと仮定

user$ sudo fdisk /dev/loop0
(適当にパーティションを確保する たとえば 512M FAT16, 512M ext4)
user$ sudo mkfs.vfat -F 16 /dev/loop0p1; sudo mkfs.ext4 /dev/loop0p2
user$ sudo mkdir -p /tmp/mnt; sudo mkdir -p /tmp/mnt/fat; sudo mkdir -p /tmp/mnt/ext4; sudo mount -t msdos /dev/loop0p1 /tmp/mnt/fat; sudo mount /dev/loop0p2 /tmp/mnt/ext4; 
user$ sudo umount /tmp/mnt/fat; sudo umount /tmp/mnt/ext4
user$ sudo losetup -D
(大文字のDオプションで losetup は全部解除)
user$ qemu-img create -f qcow2 ./Disk2G.qcow2 2G
user$ sudo modprobe nbd max_part=8
user$ sudo qemu-nbd --connect=/dev/nbd0 ~/Disk2G.qcow2
user$ sudo fdisk /dev/nbd0 -l
(ここでfdiskとかgdiskとかいろいろやる。あと sudo mkfs.ext4 /dev/nbd0p1 とか
user$ sudo mkdir /tmp/mnt/; sudo mount /dev/nbd0p1 /tmp/mnt
(ここから終わらせ方)
user$ sudo umount /tmp/mnt
user$ sudo qemu-nbd -d /dev/nbd0 
  • 最初は基本と共通
    • user$ dd if=/dev/zero of=loop1.img bs=1M count=100
      user$ sudo losetup /dev/loop0 loop1.img 
      ここからちょっと発展
      user$ sudo cryptsetup luksFormat /dev/loop0
      (YES と、パスフレーズを入力)
      user$ sudo cryptsetup luksOpen /dev/loop0 MyCryptTest
      (パスフレーズをいれる)
      user$ sudo mkfs.ext4 /dev/mapper/MyCryptTest
      (ファイルシステム作成)
      user$ sudo mkdir /mnt/loop0; sudo mount -t ext4 /dev/mapper/MyCryptTest /mnt/loop0
      (マウントする)
  • 削除例
    • user$ sudo umount /mnt/loop0
      user$ sudo cryptsetup luksClose MyCryptTest
      user$ sudo losetup -d /dev/loop0
      user$ shred -z -v -u  loop1.img
  • どっかから .tc か .hc をもってくる (仮に test.tc とする)
    • user$ sudo losetup /dev/loop0 test.tc 
      user$ sudo cryptsetup open --type tcrypt /dev/loop0 MyCryptTest
      (パスワード入力)
      user$ sudo mkdir /mnt/loop0; sudo mount -t vfat /dev/mapper/MyCryptTest /mnt/loop0
      (vfatでマウントする例)
      user$ ls /mnt/loop0
      (ファイル内容を確認)
  • 削除例
    • user$ sudo umount /mnt/loop0
      user$ sudo cryptsetup close MyCryptTest
      user$ sudo losetup -d /dev/loop0
      user$ rm test.tc
  • tips/linux/common/losetup.txt
  • 最終更新: 2025/09/17 21:57
  • by asaasa