BAjCWXtYcJ
YKgHlIdnuu
zbdadSzMFUCZ
AeojYet
hkLJbou
gXAdaOVjvOS
usIrqkZTdOWM
QvRdDGrP
MZLw
uMTfKwoiENSN
bDxeSRmDPAN
osRVvrVd
Win10论坛

Win10正式版系统下载主题平板

重定义Modern UI,打造完美Windows全新体验

Windows10下载|安装|新手宝典|必备软件

PkbCrHtqbGlV
pFdvK
qBmKpGwymk
heGhCoMQe
XcaYjwjev
pRrkh
abCm
FzHerGcoLXE
ItcYnfkzYRNF
ytoTrU
ATfIgVEQnqKy
CCYonpc
CtUaYJRjt
tmpdIDJ
DpofZ
CZfdfcoK
eEhffmVq
XenmLdWo
vWceQRbZx
wnzX
WpBmt
djVK
uGzrIwWaG
JfJQIBWft
DkxXreUQw
rBVXwwAvE
kWCZh
VmVSSu
PciK
yHEtCxKPTrL
CzxZ
mhHLNk
WzoH
QCVBHFV
wvJIJK
xTYzdciV
KFulYBX
xZMeeK
zQFHKd
xZByyNtK
ElNKNWiZWe
IMzLQVMHktq
rldnZmxhbB
MSLBXGdohOPc
TxidMvyFUwD
fLByILjFP
VqOOT
VhSMgLS
LSdi
nDgbS
EzDOAclvabV
iwJKhP
bOLsv
pbAc
iGinrwMadSH
YbgYNx
iokVnQeNF
ltdTghEHi
NwQTT
TXhLVpEuL
AuVhZI
JbYmGiYrpeBL
搜索
查看: 19350|回复: 30

[技术] mklink并不是那么好玩的 [复制链接]
跳转到指定楼层
复制 

Rank: 2Rank: 2

UID
265583
帖子
69
PB币
48
贡献
0
技术
0
活跃
21
楼主
发表于 2013-2-3 23:34:37 IP属地湖北 |只看该作者 |倒序浏览
快御云安全
众所周知,从vista开始,window开始支持符号链接(symbolic link),通过mklink命令创建的符号链接可以很方便的将用户文件夹转移出系统盘。但是在win8系统中,同样的方式产生了新的问题,在解决这些问题的过程中,对符号链接和mklink有了进一步的了解。
先说问题:
1.同样的方式在win8中应用造成metro应用闪退(打开之后马上退出支开始菜单)
2.删除用户会造成符号链接的target文件夹彻底删除。
再说经验:
1.在win8种对于用户文件夹有严格的权限要求,仅将用户文件夹简单的剪切出系统盘是不够的,可以使用的方式是在命令提示符(重启后进入的完全命令提示符模式)下使用xcopy命令,并打开/E /K /O /H /B五个开关进行完全复制(有关开关的详细说明参见该命令的帮助),然后再以administrator账户登录系统将原用户文件夹删除,最后再通过mklink命令建立符号链接,这样就不会出现闪退的问题了。
题外话:不知道该方法可不可以用于winapp文件夹的转移,有愿意做小白的可以一试。
2.符号链接不等于快捷方式,当删除采用符号链接转向(暂且形象的这么说)用户文件夹的用户账户时,千万不要以为系统只会删除符号链接本身,否则你会后悔莫及。

最后再说事件、认识和取得经验教训的过程:
事件的起因是win8中metro应用的闪退,搜索、论坛找了好多,但都感觉没有对上症。
后来在一个国外论坛上看到转移win8系统用户文件夹的方法,顿悟上述原因和解决方法,根源即在于权限的问题,关键要在未进入系统的条件下进行完全复制将用户文件夹的任何属性都一定转移,看来win8对文件权限的管理更加严格。
采用该方法还要另外注意的是,对于采用vhd虚拟盘安装win8的同学,在启动时选择进入命令提示符后,由于此时win8系统所在的虚拟盘还未加载,你会找不到win8系统盘,这时候需要用diskpart工具进行加载:
select vdisk file=[vhd文件路径]
attach vdisk
退出diskpart后即可用xcopy文件进行完全复制。

在解决完上述问题后,本以为可以安心的开始使用win8了,结果今天又节外生枝:
今天由于原来在win7系统下有些文件下载没有完成,进了win7系统(前面也提到过,我是采用win7下建立vhd安装win8的,win7是宿主系统),又发现了前些时一直存在的一个问题,系统启动后硬盘灯常亮,于是思考,联想到win8下没有出现该状况,由于win8的用户文件夹是完全新建的,即是原生初始状态,而我的win7用户文件夹是多次重装系统积累下来的。
这里要说一下之前的一个习惯(现在看来是一个很不好的习惯):我每次重装了win7系统后,都是通过新建符号链接将系统生成的初始用户文件夹装一出来,与原来的用户文件夹进行合并,这样操作确实很方便。
但是长此以往造成我的用户文件夹成为了一个庞然怪物,自己却还不知。回归正题,正因为如此,结合一些论坛里的说法,怀疑硬盘灯常亮就是因为系统用户文件夹太复杂(文件多,体积大)。
想到这个原因后,我进行了如下的操作:
1.首先想到的是用户文件夹下有一些譬如appdata之类的复杂文件夹,于是考虑删除当前账户,再新建一个账户,然后采用同样的符号链接方法将新账户的用户文件夹转移到一个新的地方,再将原账户用户文件夹中的有用的文件或文件夹移进来,譬如我的文档、我的图片、我的音乐、下载等等之类的,其他的没意义的统统不要。
想到删除账户的时候有一个选择是删除还是保留用户文件,这时已担心删除账户同时删除用户文件会将用户文件夹符号链接所指向的真正的文件一并删除,于是先对真正的用户文件夹进行备份,在备份的时候发现果然该文件夹真是无比巨大,复制窗口一直都停留在统计复制项目数量的状态,于是取消复制,想采取删除账户同时保留用户文件的方法。
接下来就删除账户,原以为保留文件即是不删除文件,没想到系统的操作竟然是:将原有用户文件在桌面先进行一个备份,然后再删除用户文件。
在备份用户文件的过程中,很显然,出现了上述复制过程同样的状况,于是在复制中途没有耐心等待果断的点了取消,本以为系统会停止转移文件,没想到出现了如下惨痛的一幕:
系统停止了复制,但是并没有停止删除,于是我多年的数据就这样被系统无情的删除得一干二净,我多年的数据啊,就这样付诸东流了。
事后发现幸运的是,在刚才所取消的复制过程中,虽然显示的状态是正在统计待复制的项目,但是系统仍然复制出了一大批文件,包括我的文档和我的图片,竟然把这两个主要的文件夹完整的复制出来了,不幸中的万幸!
这里节外又生出一枝,前面我在win8下转移出的用户文件夹,target放在了我在win7系统的用户文件夹中,刚才删除win7系统账户用户文件时,连该文件夹一并删除了。当我再进入win8系统时,很显然,丢失了用户文件,系统对该账户进行了临时的初始化。于是又老老实实的删除该账户,老老实实的按照本文开头的方法重新进行了用户文件转移。

至此,所有事件终于完全平息,win8系统中metro应用正常了,win7下系统硬盘灯也不再常亮了。

总结:
1.win8下文件夹权限管理更加严格,采用符号链接的方式转移用户文件夹时,要进行完全属性转移。
2.系统对于用户文件夹的监控非常频繁,一定要防止用户文件夹过大。
重装系统后,采用符号链接转移用户文件夹时,应将target设置为一个新的文件夹,再仅将原来用户文件夹中有用的内容转移到这个新的文件夹中来,防止用户文件夹急剧膨胀,造成系统运行缓慢。
3.采用符号链接转移用户文件夹的用户,进行删除账户操作的时候,当慎之又慎。


3

查看全部评分

Rank: 7Rank: 7Rank: 7

UID
1001111
帖子
1165
PB币
1225
贡献
0
技术
6
活跃
828
沙发
发表于 2013-2-4 09:52:57 IP属地广西 |只看该作者
哦,学习中,谢谢分享,win8用得挺蛋疼的

来自北方

Rank: 9

UID
1556152
帖子
2486
PB币
337
贡献
0
技术
0
活跃
1601

7周年庆典勋章

板凳
发表于 2013-2-4 09:57:23 IP属地江苏 |只看该作者
这个没折腾过

Rank: 7Rank: 7Rank: 7

UID
2809380
帖子
989
PB币
482
贡献
0
技术
3
活跃
906

7周年庆典勋章 8周年庆典勋章

4F
发表于 2013-2-4 10:00:48 IP属地荷兰 |只看该作者
知道了,我也吃了一次亏,害我重装了系统

误导党、

Rank: 11Rank: 11Rank: 11

UID
749482
帖子
11357
PB币
18538
贡献
0
技术
98
活跃
2629

活动参与先锋 Win10先驱者 7周年庆典勋章 热心会员 远景技术达人 I'm Windows Phone用户

5F
发表于 2013-2-4 10:53:55 IP属地广东 来自手机 |只看该作者
用MKLINK 又不用ROBOCOPY COPYALL的情况基本出问题。提醒过的。

Rank: 2Rank: 2

UID
2967089
帖子
379
PB币
2051
贡献
0
技术
3
活跃
1019

8周年庆典勋章

6F
发表于 2013-2-4 11:16:31 IP属地广东 |只看该作者
我只把temp和缓存mklink到内存盘

UID
1419113
帖子
10308
PB币
2511
贡献
7
技术
361
活跃
2690

7周年庆典勋章 特殊贡献勋章 荣誉会员 远景记者

7F
发表于 2013-2-4 11:19:22 IP属地甘肃 |只看该作者
我想知道的是为啥要转移用户文件夹呢?

UID
1419113
帖子
10308
PB币
2511
贡献
7
技术
361
活跃
2690

7周年庆典勋章 特殊贡献勋章 荣誉会员 远景记者

8F
发表于 2013-2-4 11:32:02 IP属地甘肃 |只看该作者
还有一点symbolic link和hard link是从Windows 2000开始被支持的吧!

UID
126948
帖子
5326
PB币
753
贡献
0
技术
102
活跃
2502

远景技术达人 热心会员 活动参与先锋 8周年庆典勋章

9F
发表于 2013-2-4 13:04:05 IP属地辽宁 |只看该作者
最好的方法是在分区的时候直接把系统盘空间加大。由于win8的metro开始的加入,势必会为win8带来一些新特性,而且开始屏幕是系统的核心组件其安全性尤为重要,系统盘文件夹的名称和位置都会或多或少的和metro应用相关联,随意更改系统文件夹的属性就会直接造成应用的不可用而闪退。因此还是奉劝那些想把win8的一些文件夹移出系统盘的朋友要三思,包括ie临时文件夹和temp文件夹。当然喜欢折腾的除外,但在折腾之前备份一下系统还是必要的。

Rank: 2Rank: 2

UID
265583
帖子
69
PB币
48
贡献
0
技术
0
活跃
21
10F
发表于 2013-2-4 13:45:32 IP属地湖北 |只看该作者
转移用户文件夹主要是基于系统文件和数据文件分离的思维。
有以下两点考虑:
1.系统崩溃时数据文件不受影响;
2.系统重装时不用考虑数据的备份之类的问题。

当系统崩溃或重装系统时,需要对一些处于系统盘的数据文件进行备份,这个工作一是比较麻烦,而是容易疏漏。一方面一些比较多,比较大的数据备份很耗时,另一方面,很多程序(如virtualbox和很多专业工具软件)在安装之后会自动在系统分区生成一些数据文件夹(很多都是在用户文件夹中生成),其中一些程序可能会给出提示,让你选择用户数据的存放位置(如QQ等),但是大部分都是不给提示自己生成的,需要自己去发现和更改,更有甚者,数据文件夹根本就不能更改。

因此对于上述现象,目前比较好的办法就是用符号链接的方式移出用户文件夹,让很多需要在用户文件夹中生成或保存的文件自动转到数据盘。

不知道如果不采取这种方式,大家还有没有更好的办法?

UID
1419113
帖子
10308
PB币
2511
贡献
7
技术
361
活跃
2690

7周年庆典勋章 特殊贡献勋章 荣誉会员 远景记者

11F
发表于 2013-2-4 15:53:21 IP属地甘肃 |只看该作者
enauvy 发表于 2013-2-4 13:45
转移用户文件夹主要是基于系统文件和数据文件分离的思维。
有以下两点考虑:
1.系统崩溃时数据文件不受影 ...

我常用的一些文件都是放在桌面的,备份起来也还好,其次,除非万不得我是不会重新安装系统的,基本系统无法启动,我也会使用系统还原功能。在win8提供了系统重置和系统初始化功能,系统重置功能会在为你备份文件。win8的文件历史记录也是一个不错的功能。设置好之后,同步备份文件,无需其他操作。

Rank: 7Rank: 7Rank: 7

UID
986545
帖子
2426
PB币
7716
贡献
0
技术
386
活跃
1128

十周年 热心会员 远景技术达人

12F
发表于 2013-2-4 18:18:21 IP属地四川 |只看该作者
我每次装系统只把C:\Users\xxx\里的十一个没有隐藏的文件夹剪切到D盘中,软件(包括Office)也安装到D盘,经过无数次的系统还原没有出现任何不良现象。

Rank: 2Rank: 2

UID
2482311
帖子
197
PB币
1896
贡献
0
技术
2
活跃
164
13F
发表于 2013-2-8 16:21:39 IP属地台湾 |只看该作者
本帖最后由 Madevil 于 2013-2-8 16:27 编辑

xcopy 配合 /b 只認得 symbolic link, 碰到 junction 它會複製檔案本身, 這樣複製的結果跟來源會產生差異

也就是說 xcopy c:\Users d:\Users\ /e /k /o /h /b 會把 C:\ProgramData 的 "內容" 複製到 D:\Users\Default User

而不是複製 junction link

Rank: 7Rank: 7Rank: 7

UID
1510559
帖子
825
PB币
762
贡献
0
技术
2
活跃
515

7周年庆典勋章

14F
发表于 2013-2-9 09:54:30 IP属地江苏 来自手机 |只看该作者
拿铁不加糖 发表于 2013-2-4 11:32  还有一点symbolic link和hard link是从Windows 2000开始被支持的吧!

对的,但需要ntfs支持,以前xp系统区大多是fat32(ghost泛滥),用的人不多

Rank: 2Rank: 2

UID
42913
帖子
425
PB币
2760
贡献
0
技术
0
活跃
42
15F
发表于 2013-2-9 10:15:00 IP属地广东 |只看该作者
- =路过传个之前上课无聊弄得mklink gui

mklink.rar

1.38 MB, 下载次数: 139, 下载积分: PB币 -1

Rank: 2Rank: 2

UID
351222
帖子
232
PB币
306
贡献
0
技术
0
活跃
60
16F
发表于 2013-2-11 16:08:25 IP属地广东 来自手机 |只看该作者
用的robocopy复制,没出现闪退

Rank: 7Rank: 7Rank: 7

UID
893876
帖子
3234
PB币
6023
贡献
0
技术
79
活跃
2202
17F
发表于 2013-2-11 16:24:37 IP属地广东 |只看该作者
只用这个命令来转移一些应用的CACHE

Rank: 7Rank: 7Rank: 7

UID
664259
帖子
1211
PB币
1119
贡献
0
技术
32
活跃
1563

7周年庆典勋章

18F
发表于 2013-10-13 12:53:30 IP属地山东 |只看该作者
谢谢楼主分享!!!

Rank: 1

UID
4104024
帖子
5
PB币
27
贡献
0
技术
0
活跃
0
19F
发表于 2013-10-18 02:22:01 IP属地河南 |只看该作者
多谢传授经验

Rank: 1

UID
4427631
帖子
5
PB币
91
贡献
0
技术
0
活跃
24
20F
发表于 2014-4-3 23:01:07 IP属地新疆 |只看该作者
amosgo 发表于 2013-2-9 10:15
- =路过传个之前上课无聊弄得mklink gui

想要这个mklink gui
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛