/dev/loop 设备的使用和故障排查
2011-01-17 12:59
1031 查看
/dev/loop设备
所谓Loop,本意为循环,这里的“循环设备”在类Unix系统中指的是将一个镜像文件映射成为一个设备文件。最明显的用途就是虚拟光驱、虚拟软驱、挂载
ISO及文件、挂载磁盘映像等。
//生成一个块大小为512k, 且有100k个块(Blocks)的空白文件
显示被隐藏内容
1、
查看被使用的loop设备
# sudo /sbin/losetup -a
2、通
过进程状态查看被使用的loop设备
# ps -ef | grep loop
注意:loop是有内核拥有,因此如果某个loop设备出故障而不能正常删除时,将无法从内核中移除,从而导致该设备无法再被使用,而losetup可能
查看不到该设备在被使用,而使用ps却可以。这种情况将导致某些操作无法继续,如创建新的XEN虚拟机挂载磁盘文件等。
3、删除已停止的loop设备
# sudo /sbin/losetup -d
/dev/loopx (x表示要被删除的loop设备编号)
4、查看某个loop设备的信息
# sudo /sbin/losetup /dev/loopx (x表示要被删除的loop设备编号)
5、查看已
被使用中的loop设备
# sudo /sbin/losetup -f
更多用法详见man losetup
6、loop设备数不够用时的处理
Linux老内核只支持8个loop设备被编译到内核,因此缺省情况下你只能在一个网络上共享8个CD,所以如果你想支持更多的loop设备,你必须修改
内核源码,并从新编译一个新的内核。
而从Linux
2.4的内核开始,内核运行通过编辑/etc/modules.conf或使用一个引导参数来修改支持的loop设备数。因此要修改内核支持的loop设
备数,首先请确认当前使用的内核版本:
# uname -a
或 # cat
/proc/version
下面以新内核为例来添加支持更多的loop设备:
(1)通过编辑 /etc/modules.conf,添加以下内容
options loop max_loop = 64 # 让内核支持64个loop设备
用以下方式使设置生效
1)卸载所有使用中loop设置,以使用系统中的loop设备变为空闲且可用
2)#rmmod
loop
3)#insmod loop
4)如果采用前三步没有成功的使用设置生效,那么请重新启动系统。
(2)通过设置引导参数实现
如果loop设备支持已经被编译到内核,但没有作为模块导入,则可以在安装时设定:
boot: linux max_loop=64
或者在引导参数/boot/grub.conf(这里以Grub引导管理为例)加入以下语句
append="max_loop=64"
(3)
通过重新编译内核实现
编辑内核源码文件/usr/src/linux/drivers
/block/loop.c,找到以下语句并修改为打算支持的loop设备数:
#define MAX_LOOP 16
然后重新编译内核既可。
(4)
在/dev里创建loop设备
1)首先检测系统中已经有多少loop设备:
#ls -l /dev/loop*
2)创建新的loop设备(可创建的最大数为前面设置的
最大值):
#mknod -m660 /dev/loop8 b 7
8 # 这里以创建loop8为例
注意:mknod用于在/dev目录下创建设
备。loop设备有一个主版本号“7”,并且最小编号从0开始。
3)修改loop设备所属的用
户和组:
隐藏内容
该内容已经被作者隐藏,只有会员才允许查阅 登录
| 注册
#chown root.disk /dev/loop8
4)修改loop设备的权限:
#chmod 666 /dev/loop8
所谓Loop,本意为循环,这里的“循环设备”在类Unix系统中指的是将一个镜像文件映射成为一个设备文件。最明显的用途就是虚拟光驱、虚拟软驱、挂载
ISO及文件、挂载磁盘映像等。
//生成一个块大小为512k, 且有100k个块(Blocks)的空白文件
显示被隐藏内容
1、
查看被使用的loop设备
# sudo /sbin/losetup -a
2、通
过进程状态查看被使用的loop设备
# ps -ef | grep loop
注意:loop是有内核拥有,因此如果某个loop设备出故障而不能正常删除时,将无法从内核中移除,从而导致该设备无法再被使用,而losetup可能
查看不到该设备在被使用,而使用ps却可以。这种情况将导致某些操作无法继续,如创建新的XEN虚拟机挂载磁盘文件等。
3、删除已停止的loop设备
# sudo /sbin/losetup -d
/dev/loopx (x表示要被删除的loop设备编号)
4、查看某个loop设备的信息
# sudo /sbin/losetup /dev/loopx (x表示要被删除的loop设备编号)
5、查看已
被使用中的loop设备
# sudo /sbin/losetup -f
更多用法详见man losetup
6、loop设备数不够用时的处理
Linux老内核只支持8个loop设备被编译到内核,因此缺省情况下你只能在一个网络上共享8个CD,所以如果你想支持更多的loop设备,你必须修改
内核源码,并从新编译一个新的内核。
而从Linux
2.4的内核开始,内核运行通过编辑/etc/modules.conf或使用一个引导参数来修改支持的loop设备数。因此要修改内核支持的loop设
备数,首先请确认当前使用的内核版本:
# uname -a
或 # cat
/proc/version
下面以新内核为例来添加支持更多的loop设备:
(1)通过编辑 /etc/modules.conf,添加以下内容
options loop max_loop = 64 # 让内核支持64个loop设备
用以下方式使设置生效
1)卸载所有使用中loop设置,以使用系统中的loop设备变为空闲且可用
2)#rmmod
loop
3)#insmod loop
4)如果采用前三步没有成功的使用设置生效,那么请重新启动系统。
(2)通过设置引导参数实现
如果loop设备支持已经被编译到内核,但没有作为模块导入,则可以在安装时设定:
boot: linux max_loop=64
或者在引导参数/boot/grub.conf(这里以Grub引导管理为例)加入以下语句
append="max_loop=64"
(3)
通过重新编译内核实现
编辑内核源码文件/usr/src/linux/drivers
/block/loop.c,找到以下语句并修改为打算支持的loop设备数:
#define MAX_LOOP 16
然后重新编译内核既可。
(4)
在/dev里创建loop设备
1)首先检测系统中已经有多少loop设备:
#ls -l /dev/loop*
2)创建新的loop设备(可创建的最大数为前面设置的
最大值):
#mknod -m660 /dev/loop8 b 7
8 # 这里以创建loop8为例
注意:mknod用于在/dev目录下创建设
备。loop设备有一个主版本号“7”,并且最小编号从0开始。
3)修改loop设备所属的用
户和组:
隐藏内容
该内容已经被作者隐藏,只有会员才允许查阅 登录
| 注册
#chown root.disk /dev/loop8
4)修改loop设备的权限:
#chmod 666 /dev/loop8
相关文章推荐
- /dev/loop与设备文件系统
- losetup命令和loop设备的使用
- 使用strace工具故障排查的5种简单方法
- Linux驱动开发之使用dev_dbg调试设备驱动
- linux下的/dev/mem设备认识和使用
- 线上故障排查——drools规则引擎使用不当导致oom
- losetup命令和loop设备的使用
- F5 BIGIP3400设备风扇故障排查
- linux下的/dev/mem设备认识和使用
- Kubernetes之kubectl常用命令使用指南:2:故障排查
- linux下的/dev/mem设备认识和使用
- linux /dev 常见特殊设备介绍与应用[loop,null,zero,full,random]
- k8s技术预研3--使用kubeadm安装、配置Kubernetes集群以及进行故障排查的方法
- linux下的/dev/mem设备认识和使用
- [zz]使用strace工具故障排查的5种简单方法
- 使用strace工具故障排查的5种简单方法
- 使用loop设备挂载映像文件
- 使用mdev在/dev/下创建子目录放置设备节点
- linux /dev 常见特殊设备介绍与应用[loop,null,zero,full,random]
- linux下的/dev/mem设备认识和使用