日期:2014-05-16  浏览次数:20720 次

Linux下加载ISO文件的方法介绍
其实ISO也是一个打包文件,和rar以及zip文件类似,只是他们的格式不同罢了;我们能把iso挂载到一个目录中。

  其实ISO也是一个打包文件,和rar以及zip文件类似,只是他们的格式不同罢了;我们能把ISO挂载到一个目录中;

  首先我们要把ISO加载到一个目录,用的是。

  mount -o loop ISO文件名 目的目录。

  比如我们要把 ISO 临时加载到 /mnt/temp目录中,当然我们首先要建这个目录。

  # mkdir /mnt/temp

  然后我们来加载FC4的第一张ISO文件;

  # mount -o loop /mnt/wind/FC4-i386-disc1.ISO /mnt/temp/

  # ls /mnt/temp/

  autorun GPL README RPM-GPG-KEY RPM-GPG-KEY-fedora-rawhide TRANS.TBL

  eula.txt images README-Accessibility RPM-GPG-KEY-beta RPM-GPG-KEY-fedora-test

  Fedora ISOLinux RELEASE-NOTES RPM-GPG-KEY-fedora RPM-GPG-KEY-rawhide

  我们所需要的RPM包就位于 /mnt/temp/Fedora/RPMS 目录中。

?

?

有太多的iso文件,每次要打开它时,都需要进入命令行,然后执行mount xxx.iso /misc -oloop命令。
  
  等不要了,又要进入命令行使用umount /misc命令。
  
  对于只要iso文件可以当作文件系统挂载并知道挂载命令的人来说,那也无非是多了两条命令而已。
  
  但是对于并不熟悉linux的人,这个问题就比较困难了。
  
  昨天女友问我,iso文件怎么打开?要不要下载虚拟光驱?
  
  我说不要,使用一条命令就可以了。但是我知道命令对她来说还是比较困难的,毕竟没有使用过linux,于是我想能不能当访问它是自动挂载呢?
  
  于是写了一个小程序,经过测试,目前可以实现这个功能,只是还有一些不完美的地方。
  
  程序如下
  
  $cat mountiso.sh
  
  #!/bin/bash#---------------------------#mountiso.sh iso镜像文件自动挂载,卸载程序#作者:赵卫国 mlsx@xplore.cn mlsx.xplore@gmail.com#使用方法:在kde环境下,右键点击某个iso文件,选择打开文件方式#选择你的程序的路径(我的是/home/mlsx/bin/mountiso.sh)。#然后选中在终端打开和记住该文件类型的打开方式#----------------------------myself=$$echo "mountiso parent pid is $myself"function umountiso{  sudo umount /misc kill -9 $1 exit 0 }trap "umountiso $myself" 1 2 3 9 15 sudo mount $1 /misc -oloopkonqueror /misc &child=`ps -ef &line;grep 'konqueror /misc' &line;grep -v grep &line;awk '{ print $2 }'`echo "mount pid is $child"while [ "1" -lt "2" ]do is_exist=`ps -ef &line;grep $child &line;grep -v grep` if [ -z "$is_exist" ] then sudo umount /misc exit 0 fi sleep 3done
  
  使用方法见程序注释。
  
  当你打开一个iso文件时,iso文件自动挂载在/misc下面(你可以修改),一个对应的终端也会打开,不要关闭这个终端。当你关闭打开的konqueror窗口后,这个终端也会自动关闭。
  
  gnome还没有测试,谁测试了告诉我一声。
  
  欢迎大家改进这个程序。
  
  注意:由于mount命令需要root权限使用,如果你是使用root来登陆的,那么删除程序中的sudo。
  
  如果你是普通用户,需要把把这个用户加入到sudo里面,同时配置为不需要密码访问(当然你也可以配置需要密码,不过每次挂载都需要你输入密码)。为了做到这点,你需要使用root帐号登陆,并执行下面的命令
  
  #visudo
  
  打开一个文件,在最后加入这样一行
  
  mlsx  ALL=(ALL)  NOPASSWD:ALL
  
  保存后,你就可以使用上面的程序了。