vkill'blog 何永鹏

mount iso文件提示could not find any device devloop# 解决办法

08:22 , vkill
参考自:
http://tonykorn97.itpub.net/post/6414/466682

操作系统
[root@vkillhost ~]# uname -r
2.6.25-ARCH

问题现象
[root@vkillhost ~]# mount -t iso9660 /media/hyp/archlinux-2008.06-core-i686.iso  /mnt/iso
mount: /media/hyp/archlinux-2008.06-core-i686.iso is not a block device (maybe try `-o loop'?)
[root@vkillhost ~]# mount -t iso9660 -o loop /media/hyp/archlinux-2008.06-core-i686.iso  /mnt/iso
mount: could not find any device /dev/loop#

解决方法分析:

1、原因分析,是因为/dev下没有任何loop设备导致

[root@vkillhost ~]# ls -l /dev/loop*
ls: cannot access /dev/loop*: No such file or directory

2、查看本机模块,发现没有loop模块

[root@vkillhost ~]# lsmod | grep loop
[root@vkillhost ~]#

3、查看loop模块信息,如果提示 modinfo: could not find module loop ,执行pacman -S kernel26 修复安装后再查看loop模块信息

[root@vkillhost ~]# modinfo loop
filename:       /lib/modules/2.6.25-ARCH/kernel/drivers/block/loop.ko
alias:          block-major-7-*
license:        GPL
depends:
vermagic:       2.6.25-ARCH SMP preempt mod_unload 686
parm:           max_loop:Maximum number of loop devices (int)

4、查看本机这个模块文件是否存在

[root@vkillhost ~]# [ -f /lib/modules/`uname -r`/kernel/drivers/block/loop.ko ] && (echo exist)
exist

5、查看这个模块文件属于哪个包

[root@vkillhost ~]# pacman -Q -o /lib/modules/2.6.25-ARCH/kernel/drivers/block/loop.ko
/lib/modules/2.6.25-ARCH/kernel/drivers/block/loop.ko is owned by kernel26 2.6.25.6-1

6、查看本机上这个包的信息

[root@vkillhost ~]# pacman -Q -l kernel26 | grep loop
kernel26 /lib/modules/2.6.25-ARCH/kernel/drivers/block/cryptoloop.ko
kernel26 /lib/modules/2.6.25-ARCH/kernel/drivers/block/loop.ko
kernel26 /usr/src/linux-2.6.25-ARCH/include/config/blk/dev/cryptoloop.h
kernel26 /usr/src/linux-2.6.25-ARCH/include/config/blk/dev/loop.h
kernel26 /usr/src/linux-2.6.25-ARCH/include/linux/loop.h

7、确认上面提示中包含loop.ko ,开始执行下列命令

#检测模块的相依性,供modprobe在安装模块时使用
[root@vkillhost ~]# depmod
#载入loop模块
[root@vkillhost ~]# modprobe loop

8、继续查看本机模块,发现已经有loop模块了

[root@vkillhost ~]# lsmod | grep loop
loop                   14212  0

9、查看/dev 下是否有loop设备,可以看到多了一些loop设备

[root@vkillhost ~]# ls -l /dev/loop*
lrwxrwxrwx 1 root root 6 2008-08-17 13:15 /dev/loop0 -> loop/0
lrwxrwxrwx 1 root root 6 2008-08-17 13:15 /dev/loop1 -> loop/1
lrwxrwxrwx 1 root root 6 2008-08-17 13:15 /dev/loop2 -> loop/2
lrwxrwxrwx 1 root root 6 2008-08-17 13:15 /dev/loop3 -> loop/3
lrwxrwxrwx 1 root root 6 2008-08-17 13:15 /dev/loop4 -> loop/4
lrwxrwxrwx 1 root root 6 2008-08-17 13:15 /dev/loop5 -> loop/5
lrwxrwxrwx 1 root root 6 2008-08-17 13:15 /dev/loop6 -> loop/6
lrwxrwxrwx 1 root root 6 2008-08-17 13:15 /dev/loop7 -> loop/7

/dev/loop:
total 0
brw-rw---- 1 root disk 7, 0 2008-08-17 13:15 0
brw-rw---- 1 root disk 7, 1 2008-08-17 13:15 1
brw-rw---- 1 root disk 7, 2 2008-08-17 13:15 2
brw-rw---- 1 root disk 7, 3 2008-08-17 13:15 3
brw-rw---- 1 root disk 7, 4 2008-08-17 13:15 4
brw-rw---- 1 root disk 7, 5 2008-08-17 13:15 5
brw-rw---- 1 root disk 7, 6 2008-08-17 13:15 6
brw-rw---- 1 root disk 7, 7 2008-08-17 13:15 7

10、现在继续挂载iso文件,成功挂载

[root@vkillhost ~]# mount -t iso9660 -o loop /media/hyp/archlinux-2008.06-core-i686.iso  /mnt/iso
[root@vkillhost ~]#


后记:
这样做重新启动后还是会失效,解决办法修改 /etc/rc.conf 文件加入开机加载模块中

[root@vkillhost ~]# vi /etc/rc.conf
.......
#加入loop模块
MODULES=(... loop)
......


Last modified by vkill on2008/09/07 10:37
类别:linux system | Tags: , , , , , | 1 条评论, 1546 次阅读
网友评论(1):
jia
2009/03/31 02:42
谢谢,我的问题解决了
谢谢你
Pages: 1/1 First page 1 Final page
发表评论:

Nickname: 
Email:
Site URI: