最近在看<<Linux內核0.11(0.95)詳細注釋>> ,對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顯示分區表,列名說明
start end blocks id system
起始磁道 終止磁道 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