文書の表示以前のリビジョンバックリンク文書の先頭へ この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。 ====== ループバックデバイス (losetup) ====== 前提として ArchLinux 上で。ただし Ubuntu Debian などのほかのLinuxでも似たようなものかと思われます。 ===== 基本のき ===== ==== 作成 ==== <code bash> 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 (マウントする) </code> ==== 削除 ==== <code bash> user$ sudo umount /mnt/loop0 user$ sudo losetup -d /dev/loop0 (紐づけを解除) user$ shred -z -v -u loop1.img (ファイル抹消) </code> ===== 基本のき 別解 ===== losetup -fP でファイルをパーティション検出ありでやる方法 ==== 作成 ==== === ファイルを割り当て === <code bash> user$ fallocate -l 2G Disk2G.img (2GBファイルを作成) user$ ls -l Disk2G.img (ファイルを確認) user$ sudo losetup -fP ./Disk2G.img (割当実施) user$ sudo losetup -l (割当結果を確認) </code> === fdisk / gdisk + mkfs + mount === loop0 に割り当てられたと仮定 <code bash> 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; </code> ==== 割当全解除 ==== <code bash> user$ sudo umount /tmp/mnt/fat; sudo umount /tmp/mnt/ext4 user$ sudo losetup -D (大文字のDオプションで losetup は全部解除) </code> ===== 応用 ===== ==== qcow2 をマウントする ==== <code bash> 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 </code> ==== 暗号化、LUKSつき ==== * 最初は基本と共通 * <code bash> 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 (マウントする) </code> * 削除例 * <code bash> user$ sudo umount /mnt/loop0 user$ sudo cryptsetup luksClose MyCryptTest user$ sudo losetup -d /dev/loop0 user$ shred -z -v -u loop1.img </code> ==== truecryptとか ==== * どっかから .tc か .hc をもってくる (仮に test.tc とする) * <code bash> 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 (ファイル内容を確認) </code> * 削除例 * <code bash> user$ sudo umount /mnt/loop0 user$ sudo cryptsetup close MyCryptTest user$ sudo losetup -d /dev/loop0 user$ rm test.tc </code> tips/linux/common/losetup.txt 最終更新: 2025/09/17 21:57by asaasa