所謂 loop device 指的就是拿文件" name="description" />
Albert Woodhull語:"The Linux loop device can be used to handle this - it makes a file look like a filesystem, and the file can be defined as a byte offset from the beginning of a primary partition"。 losetup 用 來 將 loop device 與 檔 案 或 block device 聯 結 、 分 離 . 以 及 查 詢 loop device 目 前 的 狀 況 , 如 只 給 定 loop_device 的 參 數 . 則 秀 出 loop device 目 前 的 狀 況 . 最近在看<<Linux內核0.11(0.95)詳細注釋>> ( 見 http://www.oldlinux.org/index_cn.html),對Linux下loopback設備的使用琢磨了一段時間。記錄如下: 一、imag 文件的生成 1. 可以通過bochs提供的bximage.exe生成。 2. 在FC3下通過命令dd if=/dev/zero of=test.img bs=512 count=524160 命令生成。 二、對生成的文件進行分區 1、可以將生成的image文件掛載在bochs下,當作從屬硬盤 fdisk /dev/hdb 命令對硬盤分區 2、在FC3下 losetup /dev/loop0 test.img fdisk /dev/loop0 不過發現在這種方式下的fdisk在保存的時候會提示參數錯誤。 三、創建文件系統 經測試只能在bochs下創建文件系統,無法在loopback設備上創建文件系統。 如 mkfs /dev/hdb1 64000 四、Fdisk分區表顯示參數(本文精華) 在normal模式下按p顯示分區表,列名說明 起始磁道 終止磁道 block數(1 block size=1k bytes) 分區類型id 分區類型 其中的blocks數用于創建文件系統mkfs 所需的blocks 如: mkfs /dev/sdb1 65015 在expert模式下按p顯示分區表,其中 start 列指當前分區起始sector size 列指當前分區所占的sectors. (1 secotr size=512 byte) 如果一個loop設備含有幾個文件系統(即幾個分區)的話,要正確讀取分區中的文件,要正確計算分區的偏移值。 假設一個/dev/hdb1 的 start sector=63 size=1023 /dev/hdb2 的 start sector=1086 size=2048 具體如下: 1、mount /dev/hdb1的操作 (63*512 = 32256) losetup -o 32256 /dev/loop0 test.img mount -t minix /dev/loop0 /mnt ls /mnt umount /mnt losetup -d /dev/loop0 2、mount /dev/hdb2的操作 (1086*512 = 556032) losetup -o 556032 /dev/loop0 test.img mount -t minix /dev/loop0 /mnt ls /mnt umount /mnt losetup -d /dev/loop0
start end blocks id system