当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 9 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : ubuntu自动挂载所有硬盘分区
帖子发表于 : 2011-01-24 9:47 

注册: 2010-07-01 23:13
帖子: 23
送出感谢: 0 次
接收感谢: 0 次
来看论坛也有一段时间了,问了些问题,得到大家的支持,无论能否帮到我,我都感谢大家。
现在我也发些自己探索的成果,同大家分享。水平有限,多多包涵。

以下脚本在ubuntu10.x 64bit gnome下测试通过。因为光盘与U盘在ubuntu10.x中都是自动检测并且自动挂载的,所以就不对其进行处理了。

make_fstab()
{
echo "aa" | sudo -S ls * > /dev/null #因为相关操作要su,所以先拿到到sudo的密码
reset

mounted=$(mount | grep /dev/sd | cut -f 1 -d ' ') #查看当前已经挂载了哪些分区(至少有/对应的分区)

[ -e "/dev/shm/tmp_mnt" ] || mkdir /dev/shm/tmp_mnt #/dev/shm在我的ubuntu中是tmpfs,可以减少读写磁盘。这个目录主要是临时挂载ext用的
for dev_name in $(ls /dev/sd??); #查找分区(但不包括硬盘设备,如/dev/sda,/dev/sdb)
do
dev_type=$(mount --guess-fstype ${dev_name}) #判断文件系统类型
echo -n $dev_name \(${dev_type}\) '' #将分区和文件系统打印出来

if [ -n "$(echo $mounted | grep ${dev_name})" ]; then #如果已挂载的话,打印 already mounted
echo is already mounted
else #否则按其文件系统类型进行挂载,挂载点取其卷标,与Nautilus行为保持一致
case "$dev_type" in
ntfs)
label=$(echo "aa" | sudo -S ntfslabel ${dev_name})
;;
ext?) #因为我无法取得未挂载的ext2/3/4的卷标,所以先将其在一个内存文件夹中只读挂载,拿到卷标后再卸载
echo "aa" | sudo -S mount -t $dev_type -o ro $dev_name /dev/shm/tmp_mnt
label=$(echo "aa" | sudo -S e2label ${dev_name})
echo "aa" | sudo -S umount $dev_name
;;
*) #其它我未试过(resierfs我试过,要安装相关组件才能取其卷标)
echo not support
continue
;;
esac

#正式挂载分区到“/media/卷标”中。这里只是简单批定了一个-o rw参数,以读/写方式挂载。
echo "aa" | sudo -S mkdir -p /media/${label}
echo "aa" | sudo -S mount -t $dev_type -o rw $dev_name /media/${label}
echo is mounted to /media/${label}
fi
done;

[ -e "/dev/shm/tmp_mnt" ] && rmdir /dev/shm/tmp_mnt #删除临时文件夹(不删也可,关机后自动消失的)

echo -n Will quit in 10s
sleep 10
}

make_fstab()

最后我保存成一个.sh文件,对其chmod a+x。开机进入桌面后,双击它运行即可。
我曾试过把代码或.sh文件的调用放在/etc/rc.local中,但不会开机自动执行,也试过把其放在启动程序(Startup App)中,10.04可以开机自动执行,但10.10也不能开机自动执行。


页首
 用户资料  
 
2 楼 
 文章标题 : Re: ubuntu自动挂载所有硬盘分区
帖子发表于 : 2011-01-24 9:59 

注册: 2010-07-01 23:13
帖子: 23
送出感谢: 0 次
接收感谢: 0 次
注:
echo "aa" | sudo -S …… 里面的"aa"是sudo时要输入的密码。这句是自动输入密码,不用执行时再手工输入。
如果执行后Nautilus中分区消失,多数是此分区被挂到“/media/”下,用umount取消挂载即可。


页首
 用户资料  
 
3 楼 
 文章标题 : Re: ubuntu自动挂载所有硬盘分区
帖子发表于 : 2011-01-24 15:45 

注册: 2008-09-15 11:55
帖子: 64
送出感谢: 0 次
接收感谢: 0 次
我是用udev rules+shell实现磁盘和iphone自动挂载


页首
 用户资料  
 
4 楼 
 文章标题 : Re: ubuntu自动挂载所有硬盘分区
帖子发表于 : 2011-01-24 20:50 

注册: 2010-07-01 23:13
帖子: 23
送出感谢: 0 次
接收感谢: 0 次
我写这个的目的是想大家帮我补齐其它文件系统,如btrfs,如何取得其卷标。

我在注释里说过,reiserfs未写是因为要安装reiserfsprogs组件,但为何gparted不用安装什么组件就可以拿到这些分区的卷标?我希望是只要能挂载此文件系统的环境,就能获得其卷标,而不用安装其它组件。

或者有些命令我还未会,希望你们帮我指出来。

还有,我觉得这个论坛的格式支持好差。代码明明在编辑时有空格的,但提交后所有空格都没有了,或者合并成一个空格了。搞到版面非常难看。


页首
 用户资料  
 
5 楼 
 文章标题 : Re: ubuntu自动挂载所有硬盘分区
帖子发表于 : 2011-09-30 19:11 
头像

注册: 2011-08-24 17:47
帖子: 62
送出感谢: 1
接收感谢: 0 次
mark下 。留个名


_________________
个人博客http://www.ckrn.net
个人论坛http://www.xkshare.com
代码:
Hello  ubuntu & Android!


页首
 用户资料  
 
6 楼 
 文章标题 : Re: ubuntu自动挂载所有硬盘分区
帖子发表于 : 2011-10-01 22:10 

注册: 2008-10-31 22:12
帖子: 6546
系统: 践兔
送出感谢: 18
接收感谢: 25
urcllr 写道:
我写这个的目的是想大家帮我补齐其它文件系统,如btrfs,如何取得其卷标。

我在注释里说过,reiserfs未写是因为要安装reiserfsprogs组件,但为何gparted不用安装什么组件就可以拿到这些分区的卷标?我希望是只要能挂载此文件系统的环境,就能获得其卷标,而不用安装其它组件。

或者有些命令我还未会,希望你们帮我指出来。

还有,我觉得这个论坛的格式支持好差。代码明明在编辑时有空格的,但提交后所有空格都没有了,或者合并成一个空格了。搞到版面非常难看。

去加[code].


_________________
代码:
] ls -ld //


页首
 用户资料  
 
7 楼 
 文章标题 : Re: ubuntu自动挂载所有硬盘分区
帖子发表于 : 2011-10-01 22:13 
头像

注册: 2007-09-16 8:29
帖子: 14253
送出感谢: 172
接收感谢: 272
urcllr 写道:
我写这个的目的是想大家帮我补齐其它文件系统,如btrfs,如何取得其卷标。

我在注释里说过,reiserfs未写是因为要安装reiserfsprogs组件,但为何gparted不用安装什么组件就可以拿到这些分区的卷标?我希望是只要能挂载此文件系统的环境,就能获得其卷标,而不用安装其它组件。

或者有些命令我还未会,希望你们帮我指出来。

还有,我觉得这个论坛的格式支持好差。代码明明在编辑时有空格的,但提交后所有空格都没有了,或者合并成一个空格了。搞到版面非常难看。

选上,然后点击[ code ] 按钮!!
自己不会用,反而怪论坛。 :em20 :em20


_________________
闻到死太贵, 麦克价更高。 有了笨笨兔, 二者皆可抛。
+ 我的六轮折腾
+ 折腾6轮的结果(对40余种WM的测试和分析,多种DE和WM并存的方案)
+ 折腾的中间成果:可以独立运行的一个Wharf(图标化的启动菜单)
+ 强烈推荐----折腾的终极成果:一个自己开发的DE环境
+ 签名空闲链接位置招租


页首
 用户资料  
 
8 楼 
 文章标题 : Re: ubuntu自动挂载所有硬盘分区
帖子发表于 : 2011-10-11 11:08 

注册: 2008-11-17 23:27
帖子: 4
送出感谢: 0 次
接收感谢: 0 次
做个记号,呵呵


页首
 用户资料  
 
9 楼 
 文章标题 : Re: ubuntu自动挂载所有硬盘分区
帖子发表于 : 2011-11-07 17:51 

注册: 2011-11-06 8:35
帖子: 2
送出感谢: 0 次
接收感谢: 0 次
riptide 写道:
做个记号,呵呵


mark
等下切系统试试~


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 9 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译