如何创建 loopback 设备
============================================================================
from:
1.创建image文件
#dd if=/dev/zero of=./test.img bs=1k count=5M
创建一个大小为5G的loop文件
2.查找空闲的loop设备
#losetup -f
该命令将返回第一个空闲的loop设备文件名
3.将image文件关联到loop设备
#losetup /dev/loop0 ./test.img
4.使用fdisk对/dev/loop0进行分区,一下是分区后的结果:
# fdisk -l /dev/loop0
Disk /dev/loop0: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/loop0p1 1 13 104391 83 Linux
/dev/loop0p2 14 512 4008217+ 83 Linux
/dev/loop0p3 513 652 1124550 82 Linux swap / Solaris
============================================================================
from:
zeco
Linux环境下使用LOOP设备与bochs模拟盘交换数据的方法
Linux环境下使用LOOP设备与bochs模拟盘交换数据的方法
一种方法是使用软盘作为交换介质;
另一种方法是让 Linux 使用LOOP设备直接访问bochs模拟盘, 具体如下:
1. 先查看模拟盘分区情况,
# losetup /dev/loop0 hdc-0.11-new.img
# fdisk /dev/loop0
在fdisk中, 按 'x' 键再按 'p' 显示模拟盘分区后退出. 分区信息如下:
Nr AF Hd Sec Cyl Hd Sec Cyl Start Size ID
1 00 0 3 0 15 38 203 2 124030 81
2 00 0 1 204 15 38 407 124032 124032 81
3 00 0 0 0 0 0 0 0 0 00
4 00 0 0 0 0 0 0 0 0 00
2. 计算各分区的起始偏移量:
分区1: 从0头3区0道开始, 起始偏移量 = 2*512 = 1024
分区2: 从0头1区204道开始, 起始偏移量 = 204*16*38*512 = 63504384
3. 创建分区加载的目录:
$ mkdir part1
$ mkdir part2
4. 使用LOOP设备加载模拟盘各分区
# mount -o loop,offset=1024 hdc-0.11-new.img ./part1
# mount -o loop,offset=63504384 hdc-0.11-new.img ./part2
5. 使用完毕后另忘了 umount.
# umount part2
# umount part1
注意: 由于是访问旧 Minix 分区, 有可能造成数据损坏. 使用前请注意数据备份.
[DISABLELBCODE]
2005-1-10 18:14
redgrid
Linux环境下使用LOOP设备与bochs模拟盘交换数据的方法
第14章中已有相应说明了。但仍然谢谢特别指出。
2005-1-10 20:03
zeco
Linux环境下使用LOOP设备与bochs模拟盘交换数据的方法
抱歉, 发重了. [DISABLELBCODE]
============================================================================
from:
所谓loop device指的就是拿文件来模拟块设备。最近在看<内核0.11(0.95)详细注释>> ( 见 ),对Linux下loop设备的使用琢磨了一段时间。记录如下: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 目 前 的 状 况 .
最近在看<内核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 ============================================================================
from:
挂载loop设备时:losetup和mount的区别
[来源:网上转载 () | 作者:网友(网络转载) | 时间:2008-09-29 | 浏览:人次 ]
请问在挂载loop设备时,losetup命令和mount命令是否都可以挂载loop设备???
如果都可以,他们俩有什么区别吗???
$ whatis losetup mount
我也想知道,顶!!!!!!!!!!
man上有具体例子,要挂载loop设备
1. 先losetup
2. 再mount
这样就可以把loop设备当作普通block设备一样使用了。
我想问 mount -o loop 和先 losetup 再 mount 有什么区别
QUOTE:原帖由
自由建客 于 2008-9-25 19:30 发表
我想问 mount -o loop 和先 losetup 再 mount 有什么区别
好问题。。。容我查查去。。。
QUOTE:原帖由
qingkong9416 于 2006-12-9 19:40 发表
请问在挂载loop设备时,losetup命令和mount命令是否都可以挂载loop设备???
如果都可以,他们俩有什么区别吗???
loop设备就是把一个文件模拟成一个设备,典型的就是iso文件。
mount -o loop用来挂载loop设备,挂载后可以用umount卸载
losetup不能挂载,但可以给loop设备文件加密,还可以卸载loop设备。
你可以看一下man mount,里面提到了losetup,就是说losetup可以卸载。
man
============================================================================
============================================================================
from:
由 droplet 在 周六, 2008-03-15 17:42 提交
创建一个虚拟的硬盘,可以在qemu或者vmware里面运行。其实用qemu或者vmware也可以创建虚拟硬盘,但是需要安装,比较麻烦,而且不能mount到文件系统里面直接修改里面的文件,所以这个脚本还是有点用处。
#!/bin/bash
dd if=/dev/zero of=./temp.img bs=1M count=128
losetup /dev/loop0 ./temp.img
fdisk -u -S63 -H16 /dev/loop0
losetup -d /dev/loop0
losetup -o32256 /dev/loop0 ./temp.img
mke2fs -b1024 /dev/loop0
mount -text2 /dev/loop0 /mnt/mydisk
umount /dev/loop0
losetup -d /dev/loop0
创建成功后,可以用下面的命令直接mount后使用。
mount -text2 -oloop=/dev/loop0,offset=32256 ./temp.img /mnt/mydisk
umount /mnt/mydisk
============================================================================
from:
============================================================================
from:
============================================================================
from:
============================================================================
============================================================================
from:
============================================================================
from:
============================================================================
from:
============================================================================
from:
============================================================================
============================================================================
from:
============================================================================
from:
============================================================================
from:
============================================================================
from:
============================================================================