losetup
来源:百度文库 编辑:神马文学网 时间:2024/04/29 21:28:29
losetup 用 来 将loop device 与 档 案 或 block device 联 结 、 分 离 . 以 及 查 询 loop device 目 前 的状 况 , 如 只 给 定 loop_device 的 参 数 . 则 秀 出 loop device 目 前 的 状 况 .
用琢磨了一段时间。记录如下:
一、img 文件的生成
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
------------------------------
名称
losetup - 设 定 与 控 制 loop devices
语 法
losetup [ -e encryption ] [ -o offset ] loop_device file losetup [ -d ] loop_device
描 述
losetup 用 来 将 loop device 与 档 案 或 block device 联 结 、 分 离 . 以 及 查 询 loop device 目 前 的 状 况 , 如 只 给 定 loop_device 的 参 数 . 则 秀 出 loop device 目 前 的 状 况 .
选 项
-d
将 某 个 档 案 或 装 制 与 loop 装 置 分 离
-e encryption
启 动 资 料 编 码 . 下 列 为 可 用 的 选 项 参 数 :
NONE
不 编 码 ( 定 义 值 ) .
XOR
使 用 简 易 的 XOR 编 码
DES
使 用 DES 编 码 . DES 编 码 须 在 kernel 上 加 上 DES 编 码 功 能 . DES 编 码 是 利 用 启 始 值 做 为 密 码 保 护 来 防 止 他 人 用 字 典 功 击 法 破 解 .
-o offset
资 料 开 启 时 资 料 平移(offset) 几 个 bytes 来 与 档 案 或 装 置 联 接 .
档 案
/dev/loop0,/dev/loop1,... loop devices (major=7)
范 例
如 核 心 使 用 模 组 , 须 先 使 用 下 列 命 令 将 模 组 载 入 .
# insmod loop.o
下 列 为 使 用 loop 装 置 的 简 单 范 例 .
dd if=/dev/zero of=/file bs=1k count=100 losetup -e des /dev/loop0 /file
Password:
Init (up to 16 hex digits):
mkfs -t ext2 /dev/loop0 100
mount -t ext2 /dev/loop0 /mnt
...
umount /dev/loop0
losetup -d /dev/loop0
核 心 使 用 模 组 , 须 利 用 下 列 命 令 移 除 loop 模 组 .
# rmmod loop
限 制
DES 编 码 十 分 慢 , 而 使 用 XOR 却 十 分 脆 弱 .