ioctl LOOP_SET_FD 失败:设备或资源繁忙

ioctl LOOP_SET_FD 失败:设备或资源繁忙

我正在尝试让 Backtrack 在我的 Droid DNA 上运行。我一直在一点一点地调整脚本,但我仍然想出了以下问题。我更改了它的循环,但另一个程序似乎总是跳到前面,或者我仍然收到 ioctl 错误,然后再次运行它时会显示循环设备存在(第一次不存在)。有什么想法吗?

root@android:/sdcard/bt5 # sh bootbt
循环设备存在
ioctl LOOP_SET_FD 失败:设备或资源繁忙
挂载:没有此文件或目录
挂载:没有此文件或目录
挂载:没有此文件或目录
net.ipv4.ip_forward = 1
chroot:无法执行“/bin/bash”:没有此文件或目录
关闭 BackTrack ARM For DNA
失败:没有此文件或目录
失败:没有此文件或目录
失败:没有此文件或目录
失败:参数无效

1|root@android:/sdcard/bt5 # losetup
/dev/loop7: 0 /data/app-asec/fahrbot.apps.screen.pro1-1.asec root@android:/sdcard/bt5 #

内核确实支持循环。我发现了这一点。这是我修改后的启动脚本来启动 Backtrack:

烫发=$(id | cut -b 5)

如果 [ “$perm” != “0” ];then echo “此脚本需要 Root!输入:su”;exit;fi

mount -o remount,rw /dev/block/mmcblk0p5 /system export kit=/sdcard/bt5 export bin=/system/bin export mnt=/data/local/mnt mkdir -p $mntcd / export PATH=$bin:/usr/bin:/usr/local/bin:/usr/sbin:/bin:/usr/local/sbin:/usr/games:$PATH
export TERM=linux
export HOME=/root
if [ -b /dev/block/loop99 ]; then
echo "循环设备存在"
else
busybox mknod /dev/block/loop99 b 7 99
fi

echo "设置循环设备"
losetup /dev/block/loop99 /sdcard/bt5/bt5.img

mount -o loop,noatime -t ext2 $kit/bt5.img $mnt
mount -t devpts devpts $mnt/dev/pts
mount -t proc proc $mnt/proc
mount -t sysfs sysfs $mnt/sys
busybox sysctl -w net.ipv4.ip_forward=1
echo "nameserver 8.8.8.8" > $mnt/etc/resolv.conf
echo "127.0.0.1 localhost bt5" > $mnt/etc/hosts
busybox chroot $mnt /bin/bash

echo "关闭 BackTrack ARM For DNA"
umount $mnt/dev/pts
umount $mnt/proc
umount $mnt/sys
umount $mnt
losetup -d /dev/block/loop99

即使使用 loop99,我仍然会得到 ioctl LOOP_SET_FD failed: Device or resource busy

答案1

搞定了!必须将映像文件附加到 /dev/block/loopxxx,然后将 /dev/block/loopxxx 安装为 ext4 文件系统。

我写的完整指南http://forum.xda-developers.com/showthread.php?t=2194237以防万一有人需要帮助来解决我所做的事情。

相关内容