[计算机][巧妙利用“装入空白NTFS文件夹”功能,移动硬盘盘符不再混乱(附UT任务批量修改路径攻略及BEncode Editor)]

1#    新武将    
2014-10-24 12:37
[问题详情]:
相信六维有不少人都是用移动硬盘下载和做种,以“减少对电脑内置硬盘的伤害”。
但是,有时候一重启电脑,或者做了什么其他的操作,移动硬盘的盘符就会变一下,反映到UT里便是红种不能开始做种,或者已有的下载进度消失。
(本文内容):用“计算机-管理-磁盘管理”把盘符改回来,问题仍有可能复发,故提供一个一劳永逸的方法。


[相关截图]:
一般情况下,移动硬盘是有自己独立的盘符的:

但是某些操作会导致移动硬盘的盘符改变,比如先插一个U盘到电脑上,图中的H盘符就被占用了:

这种情况下打开UT,便可能出现下面的情况:




[问题解决]:
大家首先想到的便是通过“计算机-管理-磁盘管理”把盘符改回来有木有。。。

这种情况能暂时解决问题,但不能保证问题不再发生。不信你们也试试,把盘符改回去以后,拔掉硬盘并插上U盘等设备,移动硬盘的盘符还是有可能被占用。


其实大家忽略了一个选项,就是“装入以下空白NTFS文件夹中”。
接触过Unix/Linux的同学应该都知道“挂载点”的概念,引用鸟哥的描述:
每個 filesystem 都有獨立的 inode / block / superblock 等資訊,這個檔案系統要能夠連結到目錄樹才能被我們使用。 將檔案系統與目錄樹結合的動作我們稱為『掛載』。

例如Android手机上的外置SD卡,可能其“挂载点”便是/mnt/sdcard或者/mnt/sdcard2,其中第一个/号表示“根目录”(root),/mnt/sdcard在没有“挂载”文件系统的情况下,就是一个普通的文件夹,而挂载SD卡后就变成了“SD卡文件系统(FAT32)”。
或者Ubuntu,所有的非系统盘,包括内置硬盘上的非root分区,都要挂载到/media/xxx文件夹中,这个文件夹名称是由磁盘分区决定的,除非同时使用两个分区都叫“System”或者都叫“Data”否则一般不会冲突。
反观Windows,每次要挂载新设备的时候,它都只是简单的另开一个“树根”,也就是上面的C:\,D:\,E:\,H:\ 这些盘符,以及后面紧跟的反斜线。
内置硬盘的盘符一般情况下是固定的,尤其是系统盘基本上肯定是C:\,但是移动硬盘就不行了,自动分配的盘符不能和已有的盘符冲突,某个盘符被占用以后,新来的设备就不能再使用这个盘符,即使它上次使用的也是这个盘符也不行,除非像上面那样手动改。


有了上面的知识,便容易想到,
如果能把移动硬盘“装入”内置盘的“空白NTFS文件夹”中,那么,固定的盘符+固定的路径,就意味着移动硬盘的“盘符”会固定下来,从而一劳永逸的解决盘符混乱的问题。


首先,你需要一个NTFS本地盘。。。
这个并不难,正常安装的Windows Vista以上系统都是NTFS,大多数Ghost XP也都是NTFS,
只有正常安装的XP还可以选择NTFS或者FAT32,不过那个需要F6驱动,而且纯FAT32系统意味着完全没法存放4G以上的大文件,相信大多数人不会那样做。。。
如果你的内置盘的所有分区都是FAT32,那么可以使用命令
  1. convert X: /fs:ntfs
将一个分区转换为NTFS,然后继续。


之后,你需要手动建立挂载分区用的“空白NTFS文件夹”。
这个更容易,找到一个NTFS盘,然后新建文件夹,并保持里面内容为空即可。当然最好能建得有规律一点,比如C:\mount\WD_1TB 这样的路径。

可以看到这些仍然只是文件夹而已。


那么下一步就是“更改盘符”了。
和上面的步骤一样,没有难度,只是要注意选择文件夹,而不是盘符。

全部改好以后是这个样子滴:

变成磁盘了哦~


如果是空盘的话,这样就可以正常使用了,
但是相信绝大多数点进来的人,都是要对一块UT已经在使用的盘进行操作,保护那个盘的“盘符”,
那么难道要把这个盘上的种子全部删掉重新添加?或者是参考http://forum.neubt.com/thread-384551-1-1.html 里的“2.修改UT任务数据以避免文件校验过程”然后一个一个改?
当然不用那么麻烦,但是请保持UT处于关闭状态,然后继续往下看。
这里仍然要提醒大家,完成之前一定不要打开UT,以及尽量多备份resume.dat文件。
如果手滑不小心点开了UT,请保持UT处于开启状态(但不要运行任务),把resume.dat.old取出来恢复resume.dat,详见http://forum.neubt.com/thread-1331724-1-1.html


首先仍然是要找到并打开resume.dat。这个文件需要用BEncode Editor打开,下载见文末。
可以看到UT里所有种子的信息:

点开一个种子,看里面的path字段,便是文件的存放路径:

之后不用一个一个改,把滚动条拉回最上面,选中root,然后“编辑-替换”,
选择“Value by Key”并在右边指定key为“path”,查找的value为原来的盘符,替换为刚才修改的“盘符”,注意两者都要有最后的反斜线,或者都没有。

然后点全部替换,耐心等待。。。替换完后保存,然后终于可以开启UT了。


注意,这个替换必须一次成功,否则仍然会出现“任务文件丢失”并可能强制开始散列检测。。。
另外有一个Bug,就是在路径里有中文的情况下,查找和替换的内容必须不一样长。否则例如将M:\ 替换为N:\,那么M:\游戏 便会替换为N:\游 (少了一半长度)。这种情况下就放弃更改,重新来过吧。。。


BEncode Editor:

这个版本是0.7.1.0。
2#    yiyi200712new    
2014-10-24 21:03
先前曾经听说过NTFS的卷可以挂载到一个文件夹中,想不到在这里就用上了
3#    sunyu419    
2014-10-24 22:54
版主高端啊,哈哈哈,果然六维人才辈出
4#    sunnyboy314    
2014-10-25 00:32
楼主好厉害,留着以后用
5#    哈哈哈哈火    
2014-10-25 09:18
感谢楼主分享!
另一个方法是分配盘符为"O"、"P"、"Q"这样很“远”的,在计算机-管理-磁盘管理调整即可