windows 可以实现 跨硬盘标志符号链接 吗

新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
白手起家, 积分 37, 距离下一级还需 163 积分
论坛徽章:0
Linux和Windows多系统共存时,引导过程相对来说比较复杂。而且容易引起一些错误概念。比如经常看到有的网友这样问:“我要引导XXX Linux,应该用Lilo,Grub,还是NT OS Loader?”
其实常见的Linux引导途径,只有引导软盘,Lilo,Grub,和在MS-DOS环境下用Loadin.exe引导。而NT OS Loader是不能够引导Linux的。大家“所谓的”用NT OS Loader引导Linux时,中间都要通过Lilo或者Grub这一步。In another word,如果你的Linux安装时候就没有安装引导程序,而是打算一直用软盘引导的话,你也就无法用NT OS Loader去引导这个Linux。
用NT OS Loader引导Linux的过程应该是这样:NT OS Loader-&;grub (or lilo) -&;Linux。
这个过程是通过如下几个步骤实现的:
1,& & & & 在MBR或某个分区的引导扇区上安装Grub或者Lilo,使其成功引导Linux。
2,& & & & 在Linux下用dd命令把被安装的Grub或者Lilo读出来并写在一个文件上,这个步骤相当于给Grub或者Lilo做了个备份,随后即使原来装Grub或者Lilo的地方被清除掉,也可以用留下来的这个文件借助NT OS Loader实现跟以前一模一样的引导过程。
3,& & & & 修改Boot.ini让NT OS Loader引导刚才读出来的Grub或者Lilo。
至于这个被NT OS Loader 引导起来的Grub能干些什么,完全看你自己的配置,可以通过修改Menu.lst文件让他引导任何受支持的系统或者另外的引导程序。你可以让他引导仅仅一个Linux,并把默认时间设置为0,从而造成NT OS Loader直接引导Linux的假象。也可以让他引导从Linux到Unix,BSD的N个系统,排出长长的一个系统列表。我甚至曾经让NT OS Loader 和 Grub两者之间互相循环引导。
如此看来,NT OS Loader和Grub是平起平坐的,他们之间互相可以引导,但对于系统的支持却是各有自家的本事。NT OS Loader离开了Grub就别想引导Linux/Unix/BSD;而Grub虽说很强,也不可能绕过NT OS Loader对MS的NT4/2000/XP/Server2003直接进行引导。
但是像MS-DOS,Windows9X/Me这样的系统概念就模糊了。说得通俗一点,这类微软的早期系统既可以被NT OS Loader直接引导,也可以被Grub直接引导。如果你机器上只有一个MS-DOS/9X/Me,而没有NT OS Loader时就装了Grub的话,Grub就会直接引导这个系统。而如果你装Grub时已经有NT OS Loader,那么Grub就会通过NT OS Loader来引导这个系统。甚至可以这样:硬盘1上的NT OS Loader -&; 硬盘1上的Grub -&; 硬盘2上的 Windows9X/Me/MS-DOS。(符号-&;表示直接引导)
另外还有几点需要注意。
1,& & & & Grub理论上可以引导任何相同或不同硬盘上的NT OS Loader,但反之,想用NT OS Loader引导不同硬盘上的Grub却不行。这里不同硬盘上的Grub是指这个Grub在被dd成文件之前安装在跟NT OS Loader不同的硬盘上。
2,& & & & Grub和Grub之间可以直接互相引导(不过互相循环引导次数过多会内存溢出而死机,即使中间通过NT OS Loader来间接引导也不能避免,Grub对内存的要求似乎比NT OS Loader高),但NT OS Loader和NT OS Loader之间却不可以。只能通过Grub把两个NT OS Loader连起来。使之可以间接互相引导。而这样连起来的两个NT OS Loader即使互相循环引导次数再多也不会出现错误。
3,& & & & 同一台机器上的一个Linux可以被不同的N个Grub引导。但一个NT系统却不能被两个NT OS Loader引导。M$可能在后面做了什么,让NT核心的系统安装时候就被绑在了默认的NT OS Loader上(可以是跨硬盘的绑定)。安装一结束,你就只能用这个NT OS Loader来引导他。任何想从别的NT OS Loader引导这个NT系统的尝试,都会被一个找不到文件的错误拒之门外。
4,& & & & 硬盘1上的NT OS Loader -&; 硬盘1上的Grub -&; 硬盘2上的 MS-DOS。在用这种引导方式时,假如最后被引导的MS-DOS上装有Windows3.x,那么MS-DOS虽然会正常启动,但Windows3.x却会因提示无法找到文件而无法正常进入。解决办法是在硬盘2中装一个NT OS Loader。就会按如下过程顺利启动:
硬盘1上的NT OS Loader -&; 硬盘1上的Grub -&; 硬盘2上的 NT OS Loader -&; 硬盘2上的 MS-DOS -&; 进入Windows3.x。
& & 不过目前还在用Windows3.x的可能全国也没几个了。各位就当故事听吧。
最后,对于想让Windows和Linux在两块硬盘上并存的网友,给出下列引导建议:
首先,建议把所有的Windows放在一个硬盘,所有Linux放在另一个硬盘。如果不然,下列的某些建议可能无法实现。
1,& & & & 用Linux多余用Windows的类型
这类可用Grub作主引导程序,这样就不必在意每个引导程序安装的位置了。因为Grub是通吃所有硬盘的。
(1)& & & & 先把所有Windows装好。
(2)& & & & 再一个个的装Linux,把带有你想用的Grub版本的Linux放在最后安装。
(3)& & & & 安装最后一个Linux时就把Grub安装在Linux盘的MBR上。
这样开机后Grub菜单出来,你可以选择:
1、& & & & 选择Grub菜单中的任何一个Linux系统。
2、& & & & 进入NT OS Loader 菜单选择任何一个Windows系统。
2,& & & & 用Windows多余用Linux的类型
这类可用NT OS Loader作主引导程序。然而由于NT OS Loader不支持跨硬盘引导其他引导程序,Grub就必须装在Windows盘里。
(1)& & & & 分区时要在Windows盘里的最后多划出一个分区,分区大小在理论上有512字节就够了,实际上一般习惯分出几M(太小了也不支持)。格式化成FAT和ext均可。
(2)& & & & 之后就按照“1,”里的顺序安装所有系统。
(3)& & & & 在完成“1,”之后,进入Linux,进入Grub提示符,用setup (hdx,x) 把Grub安装在Windows盘后面新划出来的那个小分区里。
(4)& & & & 用dd命令把那个小分区的前512字节读出来存成文件。
(5)& & & & 把文件添加到NT OS Loader的启动选项中。
(6)& & & & 把Windows盘设置成主启动硬盘。
这样开机后NT OS Loader菜单出来,你可以选择:
1、选择NT OS Loader菜单中的任何一个Windows系统。
2、进入Grub 菜单选择任何一个Linux系统。
Grub是很灵活的软件,NT OS Loader也不笨。两者虽然互有不足,但如果配合起来使用,不管你有几个硬盘,几个系统,都可以设计出一个快洁完善的引导方案。
文中涉及到的一些具体操作,比如Linux下安装Grub,Linux下dd命令的详细用法,还有Grub、NT OS Loader的配置文件修改方法等等,论坛里到处都有详细操作的文章。我就不在各位大虾面前班门弄斧了。
白手起家, 积分 62, 距离下一级还需 138 积分
论坛徽章:0
双硬盘多系统引导深入探究(原创)
,不错,好,值得一看!!
白手起家, 积分 31, 距离下一级还需 169 积分
论坛徽章:0
双硬盘多系统引导深入探究(原创)
收了!回去在我的机器上设置.
论坛徽章:1
双硬盘多系统引导深入探究(原创)
白手起家, 积分 14, 距离下一级还需 186 积分
论坛徽章:0
双硬盘多系统引导深入探究(原创)
白手起家, 积分 17, 距离下一级还需 183 积分
论坛徽章:0
双硬盘多系统引导深入探究(原创)
论坛徽章:0
双硬盘多系统引导深入探究(原创)
白手起家, 积分 12, 距离下一级还需 188 积分
论坛徽章:0
双硬盘多系统引导深入探究(原创)
我什么办法收藏这一页吗?
丰衣足食, 积分 574, 距离下一级还需 426 积分
论坛徽章:0
双硬盘多系统引导深入探究(原创)
想问楼主一个问题,我装的是WINXP和LINUX,用OS LOADER引导
.在出现引导菜单时选择进入linux,出现grub选择菜单,再选进入winxp,又返回一开始的OS LOADER的画面,而不是直接进入XP,有什么办法可以直接进入吗(在OS LOADER 画面出现时不选择XP,而是选择GRUB的windowxp选项)
论坛徽章:1
双硬盘多系统引导深入探究(原创)
原帖由 &ailms& 发表:
想问楼主一个问题,我装的是WINXP和LINUX,用OS LOADER引导
.在出现引导菜单时选择进入linux,出现grub选择菜单,再选进入winxp,又返回一开始的OS LOADER的画面,而不是直接进入XP,有什么办法可以直接进入吗(在OS LOADER..........& &
这是正常的啊?
在OS LOADER 画面出现时不选择XP,而是选择GRUB的windowxp选项
北京盛拓优讯信息技术有限公司. 版权所有 京ICP备号 北京市公安局海淀分局网监中心备案编号:22
广播电视节目制作经营许可证(京) 字第1234号
中国互联网协会会员&&联系我们:
感谢所有关心和支持过ChinaUnix的朋友们
转载本站内容请注明原作者名及出处51CTO旗下网站
存储系统(2)
《操作系统教程(第3版)》第7章Windows操作系统,本章主要介绍了微软的Windows这一风靡全球的主流操作系统产品。本节为大家介绍存储系统。
作者:陆松年来源:电子工业出版社| 11:02
7.2.2& 存储系统(2)
2.外存管理
Windows 2000/XP引入了基本盘和动态盘的概念,基本盘是基于MS-DOS分区方式的盘,而动态盘则支持创建新的多分区卷。基本盘的分区信息保存在注册表中,而动态盘的分区信息保存在磁盘中,便于在系统间移动磁盘。
x86采用的BIOS标准规定了分区格式的基本要求,主盘的第一个扇区中包含主引导记录(MBR)。Windows的主引导记录中包含了一个分区表(含4个表项),最多可定义4个主分区。Windows采用的扩展分区类型克服了磁盘分区数的限制。Windows 2000/XP的逻辑磁盘管理子系统(LDM)负责管理动态盘,负责维护一个用于存储系统动态盘分区信息的数据库,这个数据库保存在每个动态盘的最后1MB保留空间中。LDM分区在磁盘的MS-DOS分区表中并未体现出来,因此被称为软分区。动态盘的内部组织如图7-6所示。
(点击查看大图)图7-6& 动态盘的内部组织
LDM数据库的结构大致包括一个头扇区(私有头)、一个内容表区域、一个数据库记录区域和一个事务处理日志区。私有头存放了动态盘的GUID和磁盘组的名字,并在分区的最后一个扇区多保留了其一个拷贝以保证可靠性。数据库内容表保存了数据库布局的信息,数据库中的每一项可以是分区、磁盘、组件或卷。LDM通过分区项、组件项和卷项来描述一个简单的卷。
Ntldr是Windows引导最初所使用的操作系统文件,系统卷中引导扇区中的代码负责执行该程序。Ntldr将Boot.ini中用户指定的项转换为合适的引导分区,然后将系统文件装入内存,继续引导过程。在初始化过程中,Windows的I/O管理器启动硬盘的存储驱动程序。Windows的磁盘类驱动程序创建代表磁盘和分区的设备对象,同时也创建Windows NT4格式的符号连接,使之与符合NT4命名习惯的程序保持兼容。
FtDisk驱动程序创建代表基本盘上卷的磁盘设备对象,它利用注册表中的基本盘配置信息来决定基本卷、多分区卷和系统卷所包含的内容。FtDisk在分区管理程序(Partmgr.sys)协助下列出基本盘,找出已存在的基本卷并将信息报告给Windows的管理器。MMC磁盘管理工具的动态链接库(DMDiskManager)负责使用DMADmin、LDM磁盘管理服务来创建和更改LDM数据库的内容。DMIO设备驱动程序是FtDisk在动态盘的对应,负责控制对磁盘上数据的访问和创建代表动态盘上卷的设备对象。
Windows 2000/XP支持以下的多分区卷类型。
跨分区卷(spanned volume):由最多在多个磁盘上的32个空闲分区组成,可用于磁盘区域的合并。
条带卷(striped volume):也称为RAID-0卷,是一系列分区组成的单独逻辑卷,最多可有32个分区且每盘一个分区。通过将数据分散到各磁盘,可优化数据存取时间。
镜像卷(mirrored volume):也称为RAID-1卷,磁盘上分区的的内容被复制到另一个磁盘相同大小的分区中。由于可在主分区和镜像分区之间平衡I/O操作,因此可在重负载条件下提高系统I/O吞吐量。
RAID-5卷:是普通条带卷的容错变形,是带奇偶校验的条带卷。如果RAID-5卷中的一个盘失效,卷管理器可使用异或操作来重建丢失的数据。
文件系统驱动程序管理卷上保存的数据,但它只通过卷管理器与存储管理驱动程序交互以首先与卷所在磁盘的数据交换。文件系统驱动程序通过安装过程获得对卷管理器卷对象的引用。Windows用分区来代表物理盘上连续的区域,卷管理器负责将相对于分区的偏移量转化为相对于磁盘的偏移量。
安装管理器(Mountmgr.sys)为在Windows安装后创建的动态磁盘卷和基本卷分配驱动器名。通过安装点可将其他卷链接到NTFS卷上的目录,以便访问没有驱动器名称的卷。安装点通过再解析点(reparse point)技术实现,NTFS文件系统驱动程序、I/O管理器和对象管理器都部分实现了再解析点功能。Windows 2000/XP中的卷安装操作包括文件系统驱动程序的注册、卷参数块(VPB)的声明和安装请求3部分,I/O管理器监管安装过程。只有当文件系统声明对分区的所有权,完成卷的识别/安装过程,才可访问卷中的数据。
3.高速缓存管理
高速缓存管理器是一组核心态的函数和系统线程,与内存管理器一起为Windows文件系统驱动程序提供数据高速缓存。Windows采用单一集中式的系统高速缓存,通过与内存管理相结合,提供对文件和字节流的高速缓存,基于虚拟块进行缓存,并提供对可恢复文件系统的支持。
Windows 2000/XP的高速缓存管理器基于虚拟空间缓存数据,其地址空间结构如图7-7所示。
高速缓存管理器通过虚拟地址控制块(VACB)在系统缓存中追踪视图的状态,每个VACB代表系统高速缓存中一个256KB的视图。VACB中包含了系统高速缓存中数据的虚拟地址、被共享缓存映射结构的指针、视图起始处在文件内的偏移和VACB引用视图的数目等信息。
如果文件被缓存,文件对象指向一个私有的高速缓存映射结构,其中包含最后两次读操作的位置以支持智能预读任务,文件对象中所有私有的缓存映射结构被链接在一起。每个被缓存的文件有一个共享缓存映射结构,描述被映射文件的状态,也指向区域对象、与该文件相关的私有高速缓存映射链表和在系统高速缓存中描述当前文件映射视图的所有VACB。相关数据结构之间的关系如图7-8所示。
(点击查看大图)图7-7& 系统高速缓存的地址空间结构
(点击查看大图)图7-8& 单文件高速缓存数据结构
Windows 2000/XP高速缓存管理器所提供的主要功能如下。
回写缓存和延迟写:允许写操作在短时间内累积并一次性刷新到磁盘。高速缓存管理器每秒产生一个系统进程,用于对缓存中的脏页进行排列,然后逐个调度写入磁盘。
屏蔽对文件延迟写:可指定延迟写器创建临时文件而不将脏页写回磁盘,除非物理内存严重不足或文件关闭。
刷新被映射的文件:高速缓存管理器将脏页写回磁盘后,若检查到该文件被其他进程映射,则将文件区域所对应的整个视图刷新一遍,以便将其他进程可能改变的页面回写。
智能预读:利用空间局部性原理,基于进程当前所读数据预测其下一步可能读的数据,包括虚拟地址预读和带历史信息的异步预读两种。
快速I/O读写:I/O管理器通过调用文件系统驱动程序的快速I/O例程来确定是否能直接从高速缓存管理器得到所需的数据,而无需产生IRP。
【责任编辑: TEL:(010)】&&&&&&
大家都在看猜你喜欢
热点热点头条头条热点
24H热文一周话题本月最赞
讲师:41627人学习过
讲师:146080人学习过
讲师:83057人学习过
精选博文论坛热帖下载排行
本书根据教育部考试中心2004年最新发布的《全国计算机等级考试大纲》编写,针对计算机等级考试三级网络技术各方面的考点进行讲解和训练。本...
订阅51CTO邮刊请完成以下验证码
查看: 6862|回复: 24
软链接,节省硬盘空间之道。
本帖最后由 addtool 于
02:36 编辑
& && & 之说以谈到软链接,是因为本人用了云同步网盘,比如说,金山快盘。
我的快盘同步目录是E:\文档,E盘主要是放置文档,教程之类。而F盘放置的大多数是多媒体文件,包括电子书等。我对文件的分类比较规范,这主要是受知识管理影响。
到正题,我此时非常想将自己的电子书同步到网盘中,以便多平台阅读。不过,这时遇到一个问题,为了将电子书同步到网盘中,难不成我也要将F:\书籍复制或剪切一份至同步目录?若这样的话,我岂不是违背了文件规范分类的初衷?
& & 那怎么办呢?& && &
& & 那就试着创建一个链接吧,目前已知的有硬链接和软链接两种。
& & 我们需要创建一个软件去解决上边的问题,至于为何选择软链接,下文会给出解答。来,我们给F:\书籍创建一个软链接,此链接指向的是F:\书籍,将此软链接复制到E:\文档目录下,快盘就会认为E:\文档下也存在一个书籍目录,且里边也包含9G多的书籍数据,那么这些书籍无需再移动了,也能同步了,同时也节省了空间。& & & &
& & 在此之前,我们了解一下,何为软链接。我先用一个简单的描述吧:先假设我们在桌面创建一个快捷方式,我们称之为链接,链接只是一个普通快捷方式。我们对其进行的删除复制剪切等,都不会影响源文件。你说是不是呢?那软链接又是什么呢?软链接也是一个快捷方式,只不过它链接的是位于NTFS,FAT32等文件系统内索引文件,当你用软件读取这个快捷方式时,软件会认为,它就是一个真实的文件夹。其实不然,它只是一个链接而已。(请原谅我如此解释,只要大家能明白就行)
& & 那么上边,我们为什么不选择硬链接,却去选择软链接,这又是为何?那么我们需要一两个例子。
& & 硬连接指向的是节点(inode),而软连接指向的是路径(path) 。
& & 硬链接
& & 最初的文件名与所有的硬链接地位是对等的,比如为源文件 a 建立了硬链接 b、c、d。那么a、b、c、d之中只要有一个文件未删除,这个文件就可通未删除的名称访问的。你也可以认为每个文件都可认为至少有一个硬链接,就是说 a 也是一个硬链接。因此,如果我们删除硬链接文件的源文件a后,硬链接文件b、c、d仍然存在,而且保留了愿有的内容。这时,系统就“忘记”了它曾经是硬链接文件,而把他当成一个普通文件。
& & 软链接
& &&&软链接特性上有些类似于快捷方式,比如为源文件 a 建立了软链接 b、c、d。删除软链接b、c、d都不会对源文件a构成影响。但是只要删除了 a,软链接b、c、d就不可用了。当然了,windows 下的快捷方式只能在资源管理器中有用,它只是一个 lnk 文件,如果是一个目录的快捷方式,它是不能通过 cd 命令或路径进入。
& &&&经资料查证,得知:硬链接却是实在在的的拷贝,意思是说源文件是1G,那么创建3个硬链接在不同目录,还需占用3G。硬链接也存在两个限制,即不允许给目录创建硬链接和只有在同一文件系统中的文件之间才能创建链接。同时在进行删除时,必须将源文件和所有链接文件删除,才能彻底删除。软链接软连接只产生了10字节的快捷而已,它是记录文件路径的一种特殊文件。它可以是任意文件或目录,可以链接不同文件系统的文件。同时删除源文件,所有链接文件不再有效。删除链接文件,源文件不会受到影响。
& & 要说明的是,硬链接和软链接这两种方式,链接文件与被链接文件(源文件或源目录)之间的修改,删除是双向同步的。
 &&如上所述,我们选择软链接。
& & 如下是软链接(上文未清楚说明,也可称为符号连接,如图二)的创建过程,用到的软件是HardLinkShellExt。其实在Windows上创建软链接的软件还有Symlink Creator 1.1.1.3.,SymLinker,junction等。软件不重要,重要的是用软件的人和用软件的方法。
15-27-12.jpg (47.22 KB, 下载次数: 9)
16:13 上传
15-29-15.jpg (55.03 KB, 下载次数: 1)
16:13 上传
如下是我创建软链接之前和之后的文件夹占用大小。(注:第二个图片为E:\文档整个目录大小,不是书籍那个目录,标注有误)
15-46-16.jpg (80.73 KB, 下载次数: 5)
16:13 上传
15-52-12.jpg (96 KB, 下载次数: 1)
16:13 上传
& & 看到了吧,创建软链接链接几乎不会占用你的空间的。
& & 考虑到网友们会有疑惑。那我先做一个FAQ。
& &&&1、如果我删除E:\文档(即快盘同步目录)里边的书籍目录,那F:\书籍会不会也同时删除?
& & 答:不会的。按照我上文所说,“F:\书籍”为源目录,“E:\文档\书籍”为软链接,其实你也可以当它是个文件夹,不过软链接删除是不会影响源目录的。但当你进入软链接“E:\文档\书籍”后进行删除,修改动作,就会与“F:\书籍”进行同步操作。反过来,操作“F:\书籍”里面的文件,也是与“E:\文档\书籍”同步操作的。
& & 2、我创建的软链接可以随意移动吗?
& & 答:不能。软链接是与源文件(或者源目录)一一对应路径的,如需移动,再创建一个才能用。如不信,大可一试。
& & 谈到这里,大家是不是想试一试呢?欢迎大家在下边反馈。本人水平有限,也请大家指正。
ps:之前发了这篇文章,后来发现硬链接和软链接的概念自己给混淆了。于是查证了一些资料了,尽量不要误导诸位网友了。参考的资料在文章最后。
han_HardLinShellExt【附带汉化补丁】-addtool@kafan
http://pan.baidu.com/share/link?shareid=137573&uk=(刮开有奖)
本文软件来自PCbeta的。
部分资料,向这些作者致敬。
1、Windows系统创建软链接、硬链接的方法| Tower Jing::Thanksgiving
2、Windows 下也能创建硬链接和符号(软)链接
脑子很灵活
版区有你更精彩: )
呵呵,能省硬盘空间?没看出来~效果等同于放一个快捷方式吧
easybeing 发表于
呵呵,能省硬盘空间?没看出来~效果等同于放一个快捷方式吧
总之能节省空间,不是吗?
把2T文件的硬连接放到1G的分区D:中,然后右键D:属性,会是什么结果?
千里同风 发表于
把2T文件的硬连接放到1G的分区D:中,然后右键D:属性,会是什么结果?
1、硬连接适用于在同一个卷的文件级别,不允许给目录创建硬链接;
2、硬连接是不能跨卷的,只有在同一文件系统中的文件之间才能创建链接。
是同一个磁盘且同一个文件系统就没有问题。
话说你将2T的文件链接到1G的盘符,还不如倒过来、
感谢解答: )
有点迷糊,还是不折腾了
addtool 发表于
1、硬连接适用于在同一个卷的文件级别,不允许给目录创建硬链接;
2、硬连接是不能跨卷的,只有在同一文件 ...
你这个回复不是与“给F:\书籍创建一个硬链接,此链接指向的是F:\书籍,将此硬链接复制到E:\文档目录下,快盘就会认为E:\文档下也存在一个书籍目录,……”矛盾么,F:与E:难道不是跨卷?
千里同风 发表于
你这个回复不是与“给F:\书籍创建一个硬链接,此链接指向的是F:\书籍,将此硬链接复制到E:\文档目录下,快 ...
我所知道的,跨区是没有问题的。其实我对卷这个概念并不是很清楚。
一、二、皆来自百度百科。
后哈哈哈哈
抱歉,该帖属于灌水
Copyright & KaFan &KaFan.cn All Rights Reserved.
Powered by Discuz! X3.4( 苏ICP备号 ) GMT+8,Windows XP下创建目录的符号链接
我的图书馆
Windows XP下创建目录的符号链接
在Windows XP下创建目录的符号链接因为开发一个项目,需要类似linux的ln -s 一样创建一个目录的快捷方式。但是windows xp下没有比较好的方法。于是google发现了这个小东西。Junction.&详见http://technet.microsoft.com/en-us/sysinternals/bb896768.aspx&一句话,Junction 就是windows下的ln -s.&用法:&To create a junction c:\Program-Files for "c:\Program Files":&C:\&md Program-Files&C:\&junction c:\Program-Files "c:\Program Files"&To delete a junction, use the –d switch:&junction -d c:\Program-Files&下载附件解到c:\wondows\system32下。执行上面的命令。即可。&不信任我的包的朋友,请到上面提到的microsoft.com的网址里下载也可以。使用微软的Junction小工具在NTFS分区下实现文件和目录的符号链接学过操作系统原理或者Linux的朋友应该都知道链接分为两种:一种是硬链接,一种是符号链接。Windows中的快捷方式就是符号链接在应用层的实现。不过他只完成了对文件的符号链接,对于目录来说,他的快捷方式仍然是一个文件,无法对其进行目录的操作。(这里简单解释一下硬链接和符号链接的概念和区别:硬链接就是在目录文件里只增加一个目录项,指向目标文件。假设有A指向文件X,硬链接就是增加一个目录项B再指向X,打开A或B就直接打开了X;删除了A以后,X仍然在磁盘上,因为有B指向它;只有同时删除了A和B以后,X才真正被删除。而符号链接则增加了一个新的文件C,它的内容是X的路径,打开C的步骤是先打开C,读出X的路径,进而再打开X。删除了C,X还在;但如果删除了A,X就不在了)NTFS引入了一项新技术Jucntion实现目录的符号链接,可惜在XP中并未提供相关的工具。但我们可以在Vista/7中看到Juntion功能的具体实现:Vista 的 C:\Documents and Settings 目录和 C:\Users 目录内容完全一样,如果对其中一个进行修改或者删除,那么另外一个也会发生变化,就仿佛是镜像一般。其实,C:\Documents and Settings 就是C:\Users 的一个符号链接,可能是由于微软觉得C:\Documents and Settings 太长不好记,于是才把缩短成C:\Users 的吧。但是又考虑到兼容性问题,才做了一个符号链接实现两个文件夹的同步。=========================================================================================================说了这么多废话,现在说说怎么在XP下完成目录的符号链接吧。首先先下载一个Junction的小工具(下载地址在文末),貌似是一个微软sysinternals的程序员无聊时的作品。这是一个命令行工具,语法是"junction LinkDirectory ExistingDirectory",例如"junction d:\link c:\windows",这样就在D盘建立了一个指向C:\windows的符号链接了。有朋友可能要问了,这个工具有什么用呢?目前来看有以下几个用途,更多的用法期待大家来发现:1.解决分区空间不够的问题。比如C盘满了,就把一个大文件夹(像是大的程序安装文件夹)简单地移动到D盘,然后在C盘创建一个和原来路径一样的符号链接。这样既没有兼容性问题,也解决的分区空间不够的问题。2.整理同类的文件夹。比如我在C盘D盘E盘都有文件夹存放电影,我想把它整合到F盘里,便于管理和访问。就可以在F盘分别建立它们的符号链接,这样就可以在F盘里观看和管理电影啦~3.便于同步操作。把要备份或者同步的目录符号链接到同一个目录Sync中,这样每次只需对Sync目录进行同步即可。Just Enjoy It !==========================================================================================================附:Junction下载地址:http://download.sysinternals.com/Files/Junction.ziphttp://technet.microsoft.com/en-us/sysinternals/bb896768.aspx参考文章:http://www.buaaer.com/bbs/viewthread.php?tid=3183http://www.blogjava.net/Unmi/archive//163055.htmlhttp://softbbs.pconline.com.cn/6346682.htmlhttp://www.xxlinux.com/linux/article/unix/tigao//16220.htmlhttp://www.win7c.com/81.html (Win7使用硬链接的例子)http://wargrey.yo2.cn//36608/ (文末的讨论很有趣)符号链接、硬链接、快捷方式和Junctions&& &UNIX系统支持符号链接和硬链接,也许大多数人都是在学习UNIX时第一次接触这两个概念的。DOS当初过于简单,自然也不支持类似的概念。到了Windows的年代,产生了广为使用的快捷方式。到Windows NT的时候,微软逐步加入了对硬链接的支持。当然Windows中的实现还是不完全和UNIX一致。1、UNIX中的符号链接(Symbolic links),可以链接目录或文件、可以跨文件系统。创建符号链接时,不会增加目标文件的引用计数。删除目标文件时,符号链接仍然存在,当然在使用它的时候会发现失效了。3、Windows中的硬链接(Hard links),只能链接文件、不能链接目录,而且不能跨文件系统。创建链接时,也会增加目标文件的引用计数(MSDN说最大可创建的硬链接数为1023)。这个和UNIX的硬链接类似。不过只能在NTFS文件系统中使用。创建硬链接的API为CreateHardLink()。4、Windows中的快捷方式(Shortcuts),可以指向文件或目录,也可以跨文件系统。符号链接仍然存在,当然在使用它的时候会发现失效了。它非常类似于UNIX的符号链接。5、Windows中还有一个特殊的东西:Junctions。它只能指向目录,也可以跨本机的文件系统,但不能跨网络文件系统。它类似于UNIX下的Mount。不过也只能在NTFS文件系统中使用。MSDN的知识库文章“How to Create and Manipulate NTFS Junction Points”说明了如何用工具操纵Junctions,不过要在程序中使用Junctions,还是非常麻烦。这里有个很好的例子:Reparse points and junctions。&& &不管是符号链接、硬链接,还是Junctions、Mount,都会给用户带来一定程序的方便,也会给我们带来很多意想不到的麻烦。比如说,很多时候我们都需要遍历一个目录,并对遇到的目录或文件做些操作。有时我们是在遍历时修改文件的属性,有时是修改它的名字,有时是想改变其内容,还有的时候我们需要计算文件/目录的大小。符号链接、硬链接等概念会可能我们的操作带来不尽的烦恼。“Computing the size of a directory is more than just adding file sizes”还指出了更多需要注意的问题。符号链接与硬链接有什么区别?简单的说:硬连接记录的是目标的inode,符号连接记录的是目标的 path。换了新本本之后,不安于Windows Server 2003 R2了,之前也尝试过Windows Vista / Windows 7 / Windows Server 2008,但最后都由于各种不爽的原因而放弃,主要还是电脑配置太差,这次终于有机会升级系统了,于是装了Windows Server 2008 R2,用了两个月感觉还不错,各方面表现还算凑和,基本上还算爽。发现2008R2的用户目录结构有了点变化(Win7好像也相同),不再是以前那种 SYS:\Documents and Settings\xxx 了,改成了 SYS:\Users\xxx,即使是使用dir /a查看,有个隐藏的Documents and Settings也是指向[SYS:\Users]的JUNCTION。而且SYS:\User\xxx\之下的目录结构也有了大变化,之前Windows版本中的很多目录都被移到了SYS:\User\xxx\AppData之下,SYS:\User\xxx\之下的目录大都是一些用户文件存放的目录,以前都在“我的文档”中,现在都被放到了用户目录中,一大堆“我的xx”目录。这样问题就来了,以前我都是直接把“我的文档”通过“移动”操作挪到D:盘,现在要挪一大堆目录,而且有的还不能挪动。Google之,找到很多相关文章,修改注册表的方法本人不太喜欢,相比之下觉得这个老外的“” 写的很不错,很好很强大!原来NTFS早就支持JUNCTION了,只是我一直不知道,寒自己一个!也可能是本人使用Linux的缘故吧,对使用符号链接尤为钟情。很轻松的就把我的用户目录挪到了D:盘,mklink还真是很强大。这几天又把我的OpenSSHServer的git库目录挪到了我的Workspace目录,OpenSSHServer里只放了一个JUNCTION,然后又把经常和移动硬盘同步的几个目录都mklink到一个目录里,这样以后就只要同步一个目录就OK了,实在是太方便了!今天心血来潮突然想试试mklink在XP下的表现,反正是NTFS都是支持JUNCTION的。在2008R2的整个系统盘中搜索mklink.exe居然没搜到,Google一下才知道,原来mklink是一个DOS的内部命令!晕了,再Google“mklink XP”,搜到两个工具junction.exe和linkd.exe,都可以实现目录的JUNCTION,果然很好用!可惜自己却一直都不知道,在这一点上看来是本人对Windows有偏见了,总觉得它太差。关于目录联接&JUNCTION&和目录符号链接&SYMLINKD&之本人体会:mklink /j 创建目录联接&JUNCTION&,类似于硬链接,但又不是硬链接,它使用绝对路径,创建的链接可移动到任意位置使用;mklink /d 创建目录符号链接&SYMLINKD&,它可以使用相对路径,使用相对路径创建的链接,移动位置后不能工作。另,mklink /j 只用于创建目录联接&JUNCTION&,而符号链接可以创建文件的或目录的均可。最后,转载一些关于mklink的文字,由于已经搞不清最终的原作者了,在此原作者表示无上的敬意!---------------------------------------------- 无敌分割线 ---------------------------------------------------------一、何为 mklinkmklink 是何方神圣,值得专门作文讲述?如果用过 Linux ,那想必也看到过符号链接(这是一种特殊的文件),也用过 “ ln ” 这个链接命令,mklink 和 ln 的功能几乎一样。mklink&& 便是用来创建符号链接的,这个命令并不知名,使用的人也不多。自从 Vista 以后,微软便在 widows中 偷偷地用起了这个工具 。在用户目录下,可以看到很多很像快捷方式的文件,当然这是隐藏的,但却不能打开,其实这便是符号链接。&dir C:\Users\wclu&& /a驱动器 C 中的卷是 win7卷的序列号是 8CD0-A743C:\Users\wclu 的目录&& 11:42 &DIR&&&&&&& .&& 11:42 &DIR&&&&&&& ..&& 00:04 &DIR&&&&&&& AppData&& 00:04 &JUNCTION&&&&& Application Data [C:\Users\wclu\AppData\Roaming]&& 00:04 &DIR&&&&&&& Contacts&& 00:04 &JUNCTION&&&&& Cookies [C:\Users\wclu\AppData\Roaming\Microsoft\Windows\Cookies]&& 10:05 &DIR&&&&&&& Desktop&& 00:04 &DIR&&&&&&& Documents&& 02:44 &DIR&&&&&&& Downloads&& 00:04 &DIR&&&&&&& Favorites&& 00:04 &DIR&&&&&&& Links&& 00:04 &JUNCTION&&&&& Local Settings [C:\Users\wclu\AppData\Local]&& 00:04 &DIR&&&&&&& Music&& 00:04 &JUNCTION&&&&& My Documents [C:\Users\wclu\Documents]上述标红色的文件,便是符号链接了(上述文件并非C:\Users\wclu目录下全部文件) 。Vista/Windows 7使用这些符号链接,是为了兼容XP等系统。二、mklink 用法mklink 只能在命令提示符 “CMD” 中使用。&mklink /?创建符号链接。MKLINK [[/D] | [/H] | [/J]] Link Target/D&&& 创建目录符号链接。黙认为文件符号链接。/H&&& 创建硬链接,而不是符号链接。/J&&& 创建目录联接。Link 指定新的符号链接名称。Target&& 指定新链接引用的路径(相对或绝对)。注:上述的符号链接等同于Linux中的软链接。为了试验 mklink 的功能,我在 C分区中创建目录 a ,并在目录中存放文件 1.txt。创建文件链接E:\&mklink c:\1 c:\a\1.txt拒绝访问。E:\&mklink c:\2.txt&& c:\a\1.txt为 c:\2.txt &&===&& c:\a\1.txt 创建的符号链接可见为文件创建链接时,符号链接文件的扩展名要和原文件保持一致。E:\&mklink c:\a\1.txt d:\3.txt当文件已存在时,无法创建该文件。E:\&mklink d:\3.txt c:\a\1.txt为 d:\3.txt &&===&& c:\a\1.txt 创建的符号链接可见为文件创建链接时,必须是 “mklink&& 符号链接文件名 原文件名”的格式。创建目录链接E:\&mklink /d&& c:\b d:\a为 c:\b &&===&& d:\a 创建的符号链接虽然d:\a 目录不存在,但依然可以创建链接,很好很强大。但打开链接时,提示错误。E:\&mklink /d d:\a c:\a为 d:\a &&===&& c:\a 创建的符号链接E:\&dir d: /a驱动器 D 中的卷是 soft卷的序列号是 BE86-8884D:\ 的目录&& 10:00 &DIR&&&&&&& $RECYCLE.BIN&& 13:08 &SYMLINK&&&& 3.txt [c:\a\1.txt]&& 13:18 &SYMLINKD&&&&& a [c:\a]&& 12:54 &DIR&&&&&&& Program Files&& 09:58 &DIR&&&&&&& System Volume Information1 个文件&&&&&&&&&&&&& 0 字节4 个目录 31,089,442,816 可用字节当把D分区中的链接文件删除时,C分区中的文件和文件夹不受任何影响。三、mklink /d 与 makelink /j 的异同从 mklink 的帮助中可以看到,两者皆可以创建目录链接。细心的同学可以发现,前者是创建目录链接,而后者是创建目录联接。一字之差,有何分别?下面分别用这两种方式为同一目录创建链接:E:\&mklink /j d:\a c:\a为 d:\a &&===&& c:\a 创建的联接E:\&mklink /d d:\b c:\a为 d:\b &&===&& c:\a 创建的符号链接下面显示D分区中的文件及目录列表:E:\&dir d: /a驱动器 D 中的卷是 soft卷的序列号是 BE86-8884D:\ 的目录&& 10:00 &DIR&&&&&&& $RECYCLE.BIN&& 13:33 &SYMLINK&&&& 1.txt [c:\a\1.txt]&& 13:34 &JUNCTION&&&&& a [c:\a]&& 13:35 &SYMLINKD&&&&& b [c:\a]&& 12:54 &DIR&&&&&&& Program Files&& 09:58 &DIR&&&&&&& System Volume Information1 个文件&&&&&&&&&&&&& 0 字节5 个目录 31,089,442,816 可用字节mklink 不加参数或加参数&& /d&& 时,创建的链接文件为&SYMLINK&型(&SYMLINKD&代表链接到目录)。当加参数&& /j&& 时,只能为目录创建联接,并且创建的联接文件为&JUNCTION&型,两种类型的链接文件有显著区别:从最开始的 “ &dir C:\Users\wclu&& /a ” 可以看出,微软自家使用的都是&JUNCTION&型,至于为何,留待考证。四、链接文件的特性刚刚讲述了如何用 mklink 创建链接文件,那么接下来重点讲述如何链接文件的特性,既然是特性,那就是与众不同了。符号链接文件自身不能被 “复制”(只能通过特殊方法才能复制)当复制符号链接文件时,会将符号链接所链接的目标文件或目录进行复制,并非是复制符号链接文件本身。如何实现符号链接文件的复制呢?&copy /?/L&&&&&&&&&& 如果源是符号链接,请将链接复制到目标而不是源链接指向的实际文件。&xcopy /?&&& /B&&&&&&&&&& 对照链接目标复制符号链接本身/* d:\1.txt 为&SYMLINK&型符号链接 */E:\&xcopy d:\1.txt e:\1.txt&& /b目标 E:\1.txt 是文件名还是目录名(F = 文件,D = 目录)? FD:\1.txt复制了 1 个文件/* d:\a 为&JUNCTION&型符号链接 */E:\&xcopy d:\a e:\a /B目标 E:\a 是文件名还是目录名(F = 文件,D = 目录)? D复制了 0 个文件/* d:\b 为&SYMLINKD&型符号链接 */E:\&xcopy d:\b e:\b /B目标 E:\b 是文件名还是目录名(F = 文件,D = 目录)? D复制了 0 个文件E:\&dir e: /a驱动器 E 中的卷是 data卷的序列号是 FEEE-FB51E:\ 的目录&& 10:00 &DIR&&&&&&& $RECYCLE.BIN&& 13:33 &SYMLINK&&&& 1.txt [c:\a\1.txt]&& 13:34 &DIR&&&&&&& a&& 13:35 &SYMLINKD&&&&& b [c:\a]&& 09:58 &DIR&&&&&&& System Volume Information1 个文件&&&&&&&&&&&&& 0 字节4 个目录 31,362,203,648 可用字节可见采用xcopy命令并上参数 /B ,可以成功复制 &SYMLINK& 型的符号链接文件,而&JUNCTION&型链接却不能被复制。符号链接文件的透明性符号链接的操作是透明的:对符号链接文件进行读写的程序会表现得直接对目标文件进行操作。普通的文件操作命令(如cp、rm等)都能直接作用于符号链接。用于读写文件内容的命令将会直接访问目标文件。Windows Vista中的符号链接完全解析相信使用过的朋友都会对符号链接印象深刻,通过符号链接,可以方便地创建指向文件系统中其他文件的快捷方式,这在很多时候能够给操作带来极大的便利。不过,在系统中,想要实现类似的功能则麻烦得多,虽然微软自开始,便为NTFS卷引入了对名为Junction Point的symbolic link(符号链接)的支持,但是,在图形界面下往往工作不太正常,很多时候不得不使用插件以保证该功能能够使用。而且,Junction Point还有一个致命的缺陷,无论在Windows 2000 还是后续的和Server 2003中,NTFS Junction Point只能被用于文件夹和卷,而不能用于文件。  在Windows&中,微软终于让NTFS卷支持可以指向文件的符号链接 (symbolic link),至少从这个角度说,Windows Vista提供了接近于Unix的功能,相信这可以取悦部分Unix爱好者。  在Windows Vista中创建符号链接 (symbolic link)&  Windows Vista中专门提供了一个创建符号链接的,MkLink ,不过,只可在命令行中运行,而不是图形界面。  进入命令行  要使用MkLink工具创建符号链接,必须首先进入到命令行窗口,并需提升至管理员权限。  在开始菜单中右键单击命令提示符 (Command Prompt)图标,从弹出菜单中选择“以管理员运行 (Run as Administrator)”& &&&MkLink命令的参数  在命令提示符下输入如下命令将显示该工具的相应格式与参数。  MkLink /?& &&&创建指向文件的符号链接&  要创建指向某个文件的符号链接,只需依循相应的命令,如下图所示,我们来创建一个指向MSPaint.exe,名为TestSymLink的符号链接。  MKLINK TestSymLink %SystemRoot%\system32\mspaint.exe& && & 创建完成后,可以用Dir命令来查看一下:& && &&删除符号链接&  要删除该符号链接则更为简单,操作同删除文件类似,不过,需要注意的是,这里删除的只是符号链接,而非文件本身。  DEL TestSymLinkJunction IntroductionWindows 2000 and higher supports directory symbolic links, where a directory serves as a symbolic link to another directory on the computer. For example, if the directory D:\SYMLINK specified C:\WINNT\SYSTEM32 as its target, then an application accessing D:\SYMLINK\DRIVERS would in reality be accessing C:\WINNT\SYSTEM32\DRIVERS. Directory symbolic links are known as NTFS junctions in Windows. Unfortunately, Windows comes with no tools for creating junctions—you have to purchase the Win2K Resource Kit, which comes with the linkd program for creating junctions. I therefore decided to write my own junction-creating tool:Junction.&Junction&not only allows you to create NTFS junctions, it allows you to see if files or directories are actually reparse points. Reparse points are the mechanism on which NTFS junctions are based, and they are used by Windows' Remote Storage Service (RSS), as well as volume mount points.Please read this&&for tips on using junctions.Notethat Windows does not support junctions to directories on remote shares.If you want to view reparse information, the usage forJunction&is the following:&Using JunctionUse junction to list junctions:Usage: [-s]-s&&&&Recurse subdirectoriesExamples:To determine if a file is a junction, specify the file name:junction c:\testTo list junctions beneath a directory, include the –s switch:junction -s c:\To create a junction c:\Program-Files for "c:\Program Files":C:\&md Program-FilesC:\&junction c:\Program-Files "c:\Program Files"To delete a junction, use the –d switch:junction -d c:\Program-Files
TA的最新馆藏[转]&
喜欢该文的人也喜欢

我要回帖

更多关于 硬盘标志 的文章

 

随机推荐