(转载)linux下loop device的使用

http://en.wikipedia.org/wiki/Loop_device

In Unix-like operating systems, a loop device, vnd (vnode disk), or lofi (loopback file interface) is a pseudo-device that makes a file accessible as a block device.

所谓loop device指的就是拿文件来模拟块设备。

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 目 前 的状 况 . 

最近在看<> ( 见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显示分区表,列名说明
           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  

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值