一个偏门的小教程:伪分离在同一个分区的Deepin和Win文件
Tofloor
poster avatar
137******33
deepin
2017-10-15 05:19
Author
当然了,标题描述的可能有点儿偏差…我实在是想不出来要怎么描述了

所以在这里再详细说一下这个冷门小教程的应用场景(亦适用于其他Linux发行版)
1、想让Deepin下面某(几)个文件夹对应到更大的NTFS分区,而这个分区正在供Win使用
2、需要隔离同一个分区下的不同系统存储的文件
3、不想每次打开Deepin都有一个硕大的挂载标志摆在任务栏,一不小心就umount掉了(反正我看着好难受…)
我想这么说,各位可能就明白我写这个小教程最终的结果了吧。那么接下来,以我自身来设定为例,讲解一下。
问题:某些原因,让我一下子对Deepin的Documents文件夹和Win下的Data分区分离感到非常难受(因为Documents和Data都存放着我的个人数据)。而在试过直接编辑/etc/fstab将Data分区设置为启动自动mount之后,对任务栏那个硕大的挂载盘符提示感到很碍眼(Win下培养的强迫症吧…认为只有插入U盘时才应该出现那个图标),而且如此挂载会直接显示出我的Data分区内容。但是那里边的内容我想隐藏起来,方便管理(就是说,防止轻易地在一个系统下误删除了另一个系统的东西。而且两个系统很多文件的后缀都不同,放在一起会很乱)。同理,在Win下我也不希望在打开Data分区时能看到Deepin下产生的文件。分区不要谈…因为不知道哪个系统在日后会占用更多的空间,到时候不好调…
好了是不是很啰嗦…我也觉得但是我总感觉讲不明白这个应用范围啊怎么…这么说吧,让Deepin和Win在某些方面公用一个分区的空间,但是相互之间的文件又保证不能轻易被操作,但是真的需要临时操作时还能操作到。好了好了这应该就明白了。如何做到这一点呢?教程开始。

一、大体思路(想看过程转二)
要解决这个问题,思路上很简单。因为Win不认ext分区,而Deepin可以认NTFS分区。所以共用的分区类型一定是Win支持的一个格式,当然现在通用的就是NTFS了。那么我们一切以NTFS为准。
像我个人的情况,这个NTFS分区一直在供Win10使用(/dev/sdb3)。这时候Deepin想在这个分区“插一杠”,又不会让这个分区的大体结构混乱,就需要一个介质将二者的文件分隔开。没错。这个介质就是文件夹。很明显,想把这个分区下Win的所有文件放到单门的文件夹已经不可行了…毕竟已经有很多文件——而且那也是在做无用功——我们只需要将Deepin的文件放到一个文件夹下面即可。
那么如何做到从主目录/home下直接访问这个设定好的文件夹呢?我们知道mount只能挂载一整个分区,而我们现在要做的是能直接进入到相应的文件夹——而且还没有弹出盘符的标志。
当然,开机就自动挂载分区是一定的。不然文件夹根本就不存在了。但是挂载的位置要不能直接被看到,这样就做到了在Linux下面的伪隐藏,同时还可以通过一些浏览这个分区的资料(在文件管理器的主页找不到,需要到/挂载点下面寻找)。而需要直接看到的文件夹,通过建立软链接放到文件管理器中,这样,就完成了Linux端的操作。
同时在win下,将Deepin的文件夹设置成系统级别的隐藏,所有目的就都达到了。
这个思路可以参照Linux的一种思想:以挂载点分类文件而不是磁盘分区。相信各位Linux user都能明白。
二、实现过程
有了上面的思路,就可以进行操作了了。不过为了解释,我们约定一个场景:
想要使用的NTFS分区是/dev/sdb3。

1、按照常规做法,在/dev/sdb3中创建一个用于存放Deepin文件的文件夹(这里起名Deepin-Documents,由于我已经做好了,所以就用终端来展示一下)


2、通过编写/etc/fstab,将这个分区挂载到你自己定的一个文件夹下面(这里以挂载到/mnt/data为例),达到开机自动挂载到轻易不可找到的文件夹下,且任务栏没有弹出盘符的标志。
按Ctrl+Alt+T打开终端。输入如下代码:
PS:我习惯于使用终端,所以习惯图形的请参照每行代码周围的提示操作
<1>在自己定的位置创建文件夹(这里假设在/mnt下创建data)
  1. cd /mnt    //切换到mnt位置
  2. mkdir data    //创建data文件夹
Copy the Code
之后可以用ls命令查看,确保创建文件夹成功

<2>编写fstab文件,设置开机自动挂载需要的分区(这里以/dev/sdb3为例)到刚刚创建的文件夹(这里是/mnt/data,请以自己的情况为准)
注意:这一步请使用root权限
  1. sudo vi /etc/fstab    //编辑fstab文件(root权限)
Copy the Code
如果没有安装vi,请使用其他文本编辑器
在打开的文件结尾添加一行语句:
  1. UUID=8272330B72330387  /mnt/data  ntfs  nosuid,nodev,nofail   0   0
Copy the Code
语句说明(请根据说明自行修改):
1、UUID=8272330B72330387:盘符UUID,或输入盘符label,如/dev/sdb3
2、 /mnt/data:挂载位置(根据自己刚刚建立的文件夹进行调整)
3、 ntfs:分区类型
4、nosuid,nodev,nofail 0 0:挂载和检测分区参数,这里请按照我给出的进行填写。如果想显示弹出分区的按钮,请将nosuid,nodev,nofail更改为default
注意:这行命令之间注意空格(最好使用Tab跳格分割),nosuid,nodev,nofail之间没有任何空格
附:vi命令行操作几则
1、编辑模式(插入字符):i
2、退出编辑模式:ESC
3、删除整行:(非编辑模式下)dd(按两下d)
4、删除光标处字符:(非编辑模式下)x
5、保存并退出:(非编辑模式下):wq
6、不保存退出:(非编辑模式下):q!

<3>重启计算机,重新进入系统后,打开我们在第一步创建的文件夹,应该可以看到分区的文件了

到这里就快要成功了。
<4>建立指向Deepin文件夹的软链接,放置到/home下。
这里需要注意一下:
1、如果你想移动的文件夹不是系统文件夹(如在深度文件管理器下可以看到的文档、视频这类),那么请往下,直接看序号3、建立软链接。
2、如果是系统文件夹,请按步骤操作(终端下操作):
2.1备份需要改变位置的系统文件夹下的内容(这里以 文档 文件夹为例)
  1. mv Documets Doc    //重命名Documents为Doc做备份用
Copy the Code
名称对应列表
视频:Videos
图片:Pictures
文档:Documents
下载:Downloads
音乐:Music
桌面:Desktop

2.2修改系统文件夹位置(我这里以修改 文档 文件夹为例)
  1. (保证终端当前的打开文件夹是自己的home文件夹,不确定使用 cd ~打开home)
  2. vi .config/user-dirs.dirs    //编辑user-dirs.dirs
Copy the Code
在打开的文档,将含有Document一行后面引号的位置改成自己建立的目标文件夹,保存:

3、建立软链接
打开终端,输入如下命令:
  1. ln -s /mnt/data/Deepin-Documents /homt/kevin    //在home下创建指向Deepin-Documents的软链接
Copy the Code
命令格式:
ln -s [目标位置] [软链接放置的文件位置]
注意空格
现在,从主目录打开这个软链接,我们就可以进入到分区的文件夹下面了。

将备份的文件全部拷贝到这里,我们的工作就完成了一半——在Deepin一边完成了伪分离。
<5>Win下隐藏Deepin的文件夹
切换到Windows系统,按Windows+R打开运行,输入cmd,打开命令提示符。使用下面命令给Deepin的文件夹加上只读、系统、隐藏属性:
  1. attrib +h +r +s E:\Deepin-Documents    //给文件夹加上相应属性(假设data分区在win下面的盘符是E)
Copy the Code
三、完成
好了,到此我们的伪分离过程就结束了。
在使用Deepin时,我们不能轻易进入到data分区的根目录,而是直接进入为Deepin设立的文件夹下,同时看不到弹出盘符的标志,从而避免了误删除/误操作分区和win下创建的文件。

想要访问该分区其他目录时,可通过访问/mnt/data(也就是我们创建的挂载位置)实现。
在win下,由于给Deepin文件夹添加了系统+隐藏,所以即使勾选了“显示所有文件和文件夹”而没有把“隐藏受保护的操作系统文件”的勾选取消,仍然看不到这个文件夹。从而避免了误删除Deepin文件夹。若需要使用其中的文件,在Win资源管理器的文件夹和搜索选项中,勾选“显示所有文件和文件夹”并且将“隐藏受保护的操作系统文件”勾选取消即可。

很简单的一个小教程…应用的方面还很冷门…
当做给各位的见面礼吧。感觉Deepin这个社区很庞大,希望日后能跟各位好好相处。
感谢阅读。

[qq]956120165[/qq]
Reply Favorite View the author
All Replies
avatar
a2035274
deepin
2017-10-15 14:21
#1
本帖最后由 a2035274 于 2017-11-3 21:48 编辑

很赞,除了思路,这个(vi .config/user-dirs.dirs  )最关键也是第一次知道 /usr/lib/dde-dock/plugins/ 里面是dock的文件

Reply View the author
avatar
ih******op@vip.qq.com
deepin
2017-10-15 20:55
#2
nfts-3g性能太差了
ufsd不开源。。
Reply View the author
avatar
137******33
deepin
2017-10-16 19:43
#3
https://bbs.deepin.org/post/146721
nfts-3g性能太差了
ufsd不开源。。

其实日常用吧,性能上面倒是也没感觉有什么影响。
Reply View the author
avatar
ih******op@vip.qq.com
deepin
2017-10-19 21:52
#4
https://bbs.deepin.org/post/146721
其实日常用吧,性能上面倒是也没感觉有什么影响。

你不用npm
Reply View the author
avatar
kaile
deepin
2017-10-20 02:13
#5
这头脑风暴很赞,mark一下
Reply View the author
avatar
137******33
deepin
2017-10-20 03:08
#6

的确不用。不过这里用Linux+Win的人一定不少。所以目前来讲想二者共享分区终究还是NTFS…
Reply View the author