我不确定这是否可能,但我希望你们能知道一种方法!
我将重新安装 Windows XP,主 IDE 是一个较小的 10 GB 驱动器。
我很确定,如果我尝试将所有程序重新安装到 C:\ 驱动器,它们将无法全部容纳。
是否可以让我的 Program Files 目录指向我的一个较大驱动器上的分区,这样我的某些程序就不会放在 C:\ 上,而其他程序则放在 D:\、E:\ 等上?
答案1
如果您希望在安装过程中设置这些文件夹,则必须使用有人值守的安装。UNATTEND.TXT 是一个 INI 文件,其中包含 Windows XP 的无人值守安装设置。具体来说,要将系统文件夹设置为非默认位置,您需要将其添加到您的 UNATTEND.TXT 中:
[Unattended]
CommonProgramFilesDir="D:\Programs\Common Files"
ProgramFilesDir=D:\Programs
TargetPath=\WINDOWS
[GuiUnattended]
ProfilesDir=C:\Users
此站点是创建 Windows XP 无人值守安装的绝佳参考:unattended.msfn.org/unattended.xp/
可以在 Microsoft 下载站点 microsoft.com/downloads 中的 Windows XP 部署工具中找到更多参考资料
答案2
人们通常使用符号链接来实现这一点。这个过程大致如下:
- 创建可启动的 Windows Live CD(bart PE 或类似产品),其中装有 Sysinternals Junction 实用程序:http://technet.microsoft.com/en-us/sysinternals/bb896768.aspx
- 启动 CD
- 将程序文件目录从 C:\ 移动到你想要的任何位置
- 创建从 C:\Program Files 到新位置的符号链接
- 重新启动进入 Windows,一切都应该很好
答案3
我已经这样做过几次了(在我的例子中,将“Program Files”移动到 D:\Program Files)。这很棘手,但可以做到。我首先想到的是:
- 使用 NTBackup 备份你的 Program Files 目录
- 在所选分区上恢复该备份(例如,D:\Program Files)
- 进入注册表并更改 [HKLM\Software\Microsoft\Windows\CurrentVersion]:ProgramFilesDir 和 CommonFilesDir 以反映新位置。
- 重启
- 确保一切正常
- 使用 psexec 之类的工具检查任何进程是否在 C:\Program Files (x86) 中打开了文件,停止该进程或关闭它们。
- 将旧的 Program Files 重命名为其他名称。
- 使用 linkd 在 C:\Program Files 上创建 D:\Program Files 的符号链接,以便适应在其存储文件路径中使用“C:\Program Files”而不是“%Program Files%”的程序。
替代方法稍微简单一些......
- 使用 NTBackup 备份你的 Program Files 目录
- 在所选分区 (D:) 上恢复该备份
- 创建新目录 C:\Program Files2
- 使用磁盘管理器将 D:\ 多重挂载到 C:\Program Files2
- 关闭所有你能找到的程序
- 尝试将 Program Files 重命名为其他名称
- 将 Program Files2 重命名为 Program Files
- 重启
我只在新安装的系统上尝试过这个。我还没有在有一年垃圾的系统上做过这个。我不确定它是否能正常工作。
答案4
不支持将 ProgramFiles 放置在系统驱动器以外的任何地方。
就此而言,既不会重新定位用户文件夹;尽管您可以在安装时通过 unattend.xml 文件指定其他位置:
Stephen Lodwick [MSFT] 于 2009 年 1 月 13 日星期二晚上 11:59 说:
Windows Vista/7 不支持重新定位“Program Files”目录。目前尚未计划此功能。
通过 unattend.xml(“ProfilesDirectory”设置)支持“用户”文件夹的重新定位。
为什么“Program Files”重定向不受支持而“Users”却受支持?这可不只是让人沮丧。:) 当服务组件处于重定向位置时,我们遇到了许多技术障碍。我们认为,如果不进行重大的设计更改,安装程序将无法重定向文件夹,否则会导致数据丢失和无法服务的图像。
感谢您的反馈!
Stephen Lodwick [MSFT]