archlinux开机挂载分区


心血来潮的安装了archlinux.发现很多内容和ubuntu都很不一样.

至少目前为止,除了速度快以外,我对于它的印象没有好过.实在是太坑爹了.到处都是陷阱.

言归正传,说到archlinux的开机加载,简直就是部血泪史.整整搞了两天才搞定一行代码.

首先说说我的场景:

我三系统共享两个ntfs的分区.windows自不必说了.ubuntu下我把挂载命令写进了rc.local(sudo mount -o gid=1000,uid=1000 /dev/sda5 /media/alai/work).可以完美的拥有读写权限,并且属主是我的普通用户,而不是root..

但是现在问题来了,archlinux采用的并不是这样一个开机启动的方式.我并没有找到这样一个确切的脚本.我试过自己写挂载脚本,然后放到/etc/xdg/autostart这个目录下.但是脚本写的不好,加载的有问题.想来想去.决定回归到系统文件,最终选定了/etc/fstab.

关于fstab的文件格式我就不多说了.我也没有了解多少.网上这类博客都很多.我只说别人漏掉的.

可能很多人没有注意到,用网上的教程或者manual提供的方法,挂载的目录的属主都是root.当然有人说可以加rw来让所有用户可读写.这样不是不可以.但是很别扭.我就遇到了一个不是很乐观的场景,下载了一共文件以后执行,但是连root都提示权限不足.实在尴尬.

看了网上的关于fstab文件中第四个字段的说明,隐约觉得他就是mount -o后面的参数.以这个点作为出发点.再去做一个尝试.

 

/dev/sda1		/media/alai/system 	ntfs-3g		user,rw,suid,exec,gid=alai,uid=alai	0 2
/dev/sda5		/media/alai/work 	ntfs-3g		user,rw,suid,exec,gid=alai,uid=alai	0 2
/dev/sda6		/media/alai/others 	ntfs-3g		user,rw,suid,exec,gid=alai,uid=alai	0 2

 

上面这段代码完美的解决了我的问题.

\

现在我们去验证上面的那个假设.把上面的第四段的参数全封不动的放到一个mount命令的后面来使用一下:

\

最开始的时候我查的是man fstab .这里面的说明比较少.当我有了上面的假设的时候,我man mount看了一下.

\

可以看到,第一句话所说的.我的结论有失偏颇.mount的选项和fstab是互通的,只是有的的选项只能用在fstab里面.

另外有个问题还要再说明一下,就是可能有人注意到我的mount的文件格式是ntfs-3g的.这个问题在网上也找了很久的答案.发现在archlinux系统中使用mount的时候,如果你要以可写的权限挂载这个格式的分区,就会出现问题.因为这个格式并不支持写入.报错如下:

logfile is not clean , mounting read-only, mount in windows.

很奇怪的是ubuntu下面我没有遇到这样的问题.不管他.

这个问题也好解决,用ntfs-3g替代ntfs格式就可以了.只需要安装一个工具即可.

 

[root@alai alai]# sudo pacman -Ss ntfs-3g
extra/ntfs-3g 2015.3.14-1 [installed]
    NTFS filesystem driver and utilities
[root@alai alai]# sudo pacman -S ntfs-3g   # 执行这条命令就行,上面的-Ss是为了查看有没有找个包.

ok,问题解决了.

 

相关内容

    暂无相关文章