“五分钟学命令系列”之十一《mount的艺术》

2015年9月30日11:31:35 1 6,802

1、挂载U盘

如果Linux系统会自动加载,应该在/media里有一个目录,名字类似于disk,你进入目录就等于进入你的U盘了。

如果不会自动加载就要mount了

$ mkdir /mnt/usb

$ mount -t vfat /dev/sda /mnt/usb

PS:-t选项用于设定文件系统类型,大部分U盘是fat32的。

2、加载光驱

$ mkdir /mnt/cdrom

$ mount -t iso9660 /dev/cdrom /mnt/cdrom

3、加载ISO文件

$ mount -o loop windows 10.iso /mnt/cdrom

4、下载了10个iso文件,从fifa2000.iso到fifa2009.iso,但是当我mount到fifa2007.iso时,就提示不让我mount了

这个涉及到mount -o loop的原理。查看一下/dev下的以loop开头的文件,你就会发现在/dev里只预设了8个加载iso的地方

$ ls /dev/loop*

/dev/loop0 /dev/loop2 /dev/loop4 /dev/loop6

/dev/loop1 /dev/loop3 /dev/loop5 /dev/loop7

先用modinfo命令查看loop信息:

# modinfo loop

filename: /lib/modules/2.6.26.5-45.fc9.i686/kernel/drivers/block/loop.ko

alias: block-major-7-*

license: GPL

srcversion: 7595F5D46DFDB4A2D489DDD

depends:

vermagic: 2.6.26.5-45.fc9.i686 SMP mod_unload 686 4KSTACKS

parm: max_loop:Maximum number of loop devices (int)

parm: max_part:Maximum number of partitions per loop device (int)

可以看出max_loop来限制最大loop的数目;而max_part用来设定每个loop的设备所能支持的分区数目。

你还可以看到控制loop的是一个内核模块:/lib/modules/2.6.26.5-45.fc9.i686/kernel/drivers/block/loop.ko

目标就是修改max_loop值(可以随意设置,这里设置20)

$ echo  “options loop max_loop=20″>>/etc/modprobe.conf

设置完成后需要重新加载内核模块

# modprobe -l|grep loop.ko

/lib/modules/2.6.26.5-45.fc9.i686/kernel/drivers/block/cryptoloop.ko

/lib/modules/2.6.26.5-45.fc9.i686/kernel/drivers/block/loop.ko

# modprobe -r loop

# modprobe loop

PS:modprobe命令的选项-r表示remove,即删除某个模块

最后,用ls /dev/loop*查看就已经有20个loop设备了。

5、加载/etc/fstab里的内容

# mount -a    ##mount会乖乖的按照/etc/fstab文件的内容来加载所有的设备

6、除了加载设备,还可以做什么

可以用来装载支持acl的分区。具体可查询mount和acl;

可以用来设定ftp登录目录,用–bind参数可以实现;

可以设定和修改已加载的文件系统的属性,具体可查看mount的-o参数。

weinxin
聂扬帆博客
一个分享IT运维相关工作经验和实战技巧的个人博客

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:1   其中:访客  1   博主  0

    • avatar 孤军奋战 0

      linux正是我在学习的,感谢分享