(转载)linux下loop device的使用
2009-12-25 11:47
295 查看
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
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
相关文章推荐
- linux loop device介绍
- 在linux下使用用Valgrind查找内存泄漏和无效内存访问(转载)
- 使用 udev 高效、动态地管理 Linux 设备文件(转载)--2
- 【转载】Linux下配置TimesTen使用HugePage
- 【转载】我使用过的Linux命令之declare
- Linux-C语言中gettimeofday()函数的使用方法(转载)
- linux不使用任务门【转载】
- linux下的sqlite3的编译安装和使用 -----转载
- (转载)使用kgdb调试linux内核及内核模块
- linux下mysql(rpm)安装使用手册(转载)
- Linux下利用nc命令来监控检测服务器的端口使用情况(转载)
- [转载]通过ssh连接开发板之arm-linux下ssh的安装使用
- Linux中history历史命令使用方法详解【转载】
- linux使用crontab -e 遇到No space left on device
- 转载备忘:【实验】【VNC】Linux环境VNC服务安装、配置与使用
- 转载_Linux core dump file详解及使用GDB调试Coredump文件
- <转载>linux gcc编译器中使用gdb单步调试程序,程序不是顺序执行的。
- linux下curl的使用方法(转载和修改)
- 如何在Linux上使用Bochs(转载的)
- laravel定时任务(使用linux Cron)(转载)