免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1493 | 回复: 0
打印 上一主题 下一主题

在ubuntu下挂载ISO文件 脚本 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-04-21 05:38 |只看该作者 |倒序浏览
解决了在ubuntu下面直接挂载ISO文件的问题,类似于虚拟光驱
把下面的代码保存到一个文件当中 比如mountiso
然后在chmod +x mountiso
在shell里输入   ./mountiso
就可以了  
这个是一个比较完整的挂载ISO文件的脚本程序
是交互式的  希望你能受用
将文件保存到主目录
#!/bin/bash  #################################################################################  #  mountiso ISO文件挂载脚本  #    作者:xiaosilent  #  Email:xiaosilent@gmail.com  #    版本:0.2  #    依赖:zenity  #    用法:====建议先把本脚本链接到 /usr/bin.并赋予755的权限========  #                a.终端下: mountiso ***.iso  #                b.X环境:在iso文件上右击,选择 "属性",切换到 "打开方式","添加",指定本脚本所在位置,确定。  #                                最后,再在iso文件上右击,选择 "用 mountiso 打开" 即可。  ##################################################################################  ################### 定义变量 ##########################################  MOUNTPOINT="/media/iso"        #挂载点  ISO_PATH=$1                #缺省的iso文件路径,从第一个参数里获取  CHOSED_FUNCTION=""        #功能选择,挂载/卸载  ISMOUNTED=""        #挂载点是否已经被占用  ################### 一些功能模块 #######################################  ###功能选择 挂载/卸载  function choosefunction(){
CHOSED_FUNCTION=`zenity --title="选择要执行的操作" --list --width=100
--radiolist --column="是否选中" --column="操作类型" TRUE "挂载新卷" FALSE "卸载旧卷"`          if [ "$?" -eq "1" ]          then                  echo "没有选择,直接退出"                  exit 0          fi  }  ###获取ISO文件的路径  function getISOPath(){          if [ "$ISO_PATH" = "" ]  #命令行参数为空          then                  echo "请在弹出的对话框中选择要挂载的ISO文件"        #命令行输出                  ISO_PATH=`zenity --file-selection --title "选择要挂载的ISO文件" --filename="~"`        #弹出文件选择对话框                  if [ "$ISO_PATH" = "" ]        #从文件对话框"取消",给出提示信息,程序退出。                  then                          zenity --error --title="错误信息" --text="您没有指定要挂载的ISO文件!"                          exit 1                  fi                  if [ `file $ISO_PATH | grep "ROM" | wc -c` -eq "0" ]                  then                          zenity --error --title="错误信息" --text="您所选择的文件并不是一个ISO文件"                          exit 1                  fi          fi  }  ###获取挂载点路径  function getMountPoint(){          echo "请在弹出的对话框中输入文件的挂载目录,默认是$MOUNTPOINT"          MOUNTPOINT=`zenity --file-selection --directory --title="请选择ISO文件挂载目录"   --filename="$MOUNTPOINT"`          if [ "$MOUNTPOINT" = "" ]        #选择了 "取消",给出提示信息,程序退出。          then                  zenity --error --title="错误信息" --text="您没有指定挂载目录"                  exit 1          fi  }  ###检测挂载点是否存在  function checkMountPoint_Exist(){          if [ ! -e $MOUNTPOINT ]   #监测挂载点是否存在          then #挂载点 不存在                  zenity --error --title="错误信息" --text="挂载目录$MOUNTPOINT不存在"                  exit 1          fi  }  ###检测所指定的挂载点是否为目录  function checkMountPoint_Directory(){          if [ ! -d $MOUNTPOINT ]  #如果挂载点不是一个目录          then                  enity --error --title="错误信息" --text="挂载目录$MOUNTPOINT不是目录"                  exit 1          fi  }  ###检测指定的挂载点是否已经被使用  function checkMountPoint_Mounted(){          ISMOUNTED=`grep $MOUNTPOINT /etc/mtab | wc -c`          if [ "$ISMOUNTED" -gt "0" ]          then                  ISMOUNTED="TRUE"          else                  ISMOUNTED="FALSE"          fi  }  ###执行 卸载 的操作  function doUMount(){          if [ "$ISMOUNTED" = "TRUE" ]          then
zenity --warning --title="是否选择卸载"
--text="挂载目录$MOUNTPOINT已经被占用,必须要先进行卸载。\n\n在确认卸载以前,请确认该卸载操作是安全的!\n\n卸载操作需
要root权限,是否确定要进行卸载?"                  if [ $? -eq 1 ]                  then                          exit 0                  else                          gksu umount $MOUNTPOINT  ##gksu在图形界面下切换到超级用户。                          checkMountPoint_Mounted                          if [ "$ISMOUNTED" = "TRUE" ]                          then                                  zenity --error --title="卸载失败" --text="设备忙,或其他原因,卸载失败!"                                  exit 1                          else                                  if [ "$CHOSED_FUNCTION" = "挂载新卷" ]                                  then                                          zenity --info --title="成功卸载" --text="原来的卷已经成功卸载,即将开始新卷的挂载操作!"                                  else                                          zenity --info --title="成功卸载" --text="原来的卷已经成功卸载!"                                          exit 0                                  fi                          fi                  fi          fi  }  ###执行 挂载 的操作  function doMount(){          gksu "mount $ISO_PATH $MOUNTPOINT -t iso9660 -o loop,utf8"        #gksu在图形界面下切换到超级用户。          checkMountPoint_Mounted          if [ "$ISMOUNTED" = "TRUE" ]          then                  zenity --info --title="挂载成功" --text="文件$ISO_PATH已经被成功挂载到$MOUNTPOINT!\n\n程序将自动启动浏览器打开该目录!"                  nautilus $MOUNTPOINT        #启动浏览器浏览新挂载的卷          else                  zenity --error --title="挂载失败" --text="在把文件$ISO_PATH挂载到$MOUNTPOINT时失败!"          fi          exit 0  }  ################### 主程序  ####################  choosefunction  if [ "$CHOSED_FUNCTION" = "卸载旧卷" ]  then          getMountPoint          checkMountPoint_Exist          checkMountPoint_Directory          checkMountPoint_Mounted          if [ "$ISMOUNTED" = "TRUE" ]          then                  doUMount          else                  zenity --info --title="无须卸载" --text="指定目录并未曾挂载任何文件卷!"                  exit 0          fi  else          getISOPath          getMountPoint          checkMountPoint_Exist          checkMountPoint_Directory          checkMountPoint_Mounted          if [ "$ISMOUNTED" = "TRUE" ]          then                  doUMount          fi          doMount  fi  exit 0                                                                        
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/91454/showart_1905093.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP