linux增加loop设备上限

2016年7月28日 发表评论 阅读评论

一般在linux中会有8个loop设备,一般是/dev/loop0~loop7,可用通过losetup -a查看所有的loop设备,如果命令没有输出就说明所有的loop设备都没有被占用。而如果8个loop设备不够用,会提示"mount: could not find any free loop device",但可以通过修改内核启动参数,增加loop设备的数量的。由loop设备的增加比较简单,本篇就先介绍下如何增加loop设备,后面再介绍loop设备的作用。

一、loop设备的增加

找到/boot/grub/grub.cfg(rhel6、centos6下)、boot/grub2/grub.cfg(rhel7、centos7下)文件,找到如下内容部分:

linux16 /vmlinuz-0-rescue-993ea53b6af54870b20c82807c2719a3 root=/dev/mapper/centos-root ro rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet
initrd16 /initramfs-0-rescue-993ea53b6af54870b20c82807c2719a3.img

修改其中linux16部分的最后,增加max_loop=64 ,就会将loop设备上限改为64个。

linux16 /vmlinuz-0-rescue-993ea53b6af54870b20c82807c2719a3 root=/dev/mapper/centos-root ro rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb max_loop=64 quiet
initrd16 /initramfs-0-rescue-993ea53b6af54870b20c82807c2719a3.img

修改完重启OS生效。

二、loop设备的作用

loop设备是一种伪设备,是使用文件来模拟块设备的一种技术。其经常应用在两个场景下:1、光盘挂载(iso文件挂载);2、dd创建的img文件的挂载。

[root@361way opt]# mount CentOS-7-x86_64-Minimal-1604.iso /mnt
mount: /dev/loop0 is write-protected, mounting read-only

由于我这里使用的是比较新的OS版本,在一些老的版本里必须还要使用mount -t iso9660  -o loop  xxx.iso /mnt这样的方式去挂载。

对于这个img镜像文件,可以按如下方法进行挂载:

dd if=/dev/zero of=ftp.img bs=1M count=2000
losetup /dev/loop0 ftp.img
mkfs.ext4 /dev/loop0
mkdir /ftptest
mount -o loop ftp.img /ftptest

其实上面的步骤还可以精简为如下:

dd if=/dev/zero of=ftp.img bs=1M count=2000
mkfs.ext4  ftp.img
mkdir /ftptest
mount -o loop ftp.img /ftptest

这样挂载的时候,系统会自动给其分配loop设备。

三、loop设备的查看和删除

可以通过如下方法查看挂载的loop设备

lsblk |grep loop0
losetup -a

删除loop设备可以使用下面的命令:

losetup -d /dev/loop0




本站的发展离不开您的资助,金额随意,欢迎来赏!

You can donate through PayPal.
My paypal id: itybku@139.com
Paypal page: https://www.paypal.me/361way

分类: Linux/unix/mac 标签:
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.