将 Windows 的 C:\Users 目录迁移到非系统盘(改变 Windows 用户文件夹默认路径)

这帖子还是有意义的,至少让我们看到了几种对于文件、数据、软件等管理的不同方法和风格。

就我个人目前而言,两块固态硬盘,都只有一个分区(指非系统隐藏分区),分别用作系统盘和数据盘。我的管理方式也是在不断迭代的,基本上每重装一次系统就会尝试新的方法,以及对软件进行重新选择,所谓「断舍离」吧。

每次重装系统前后,我关注的只有 C:\Users\<username>~ 目录下的部分文件:

  • ~\Documents : 基本上只要 WindowsPowerShell 这个文件夹,其他的像 TIM 和微信文件对我来说可要可不要,安装的一些 R 包不需要备份,其他一些软件运行产生的日志和缓存文件更是没必要

  • ~\Desktop : 就是桌面上一些工作文件或者是已完成但还未归档的文件

  • 一些 dotfile : 比如 ~\.config, ~\.gnupg, Jupyter Notebook 设置文件 ~\.jupyter, ~\.ssh, ~\.gitconfig 等等,毕竟这是花时间按照自己使用习惯配置的,用以保持不同电脑间使用的一致性

其他的基本上不用管了,要么可以云同步,要么一直就在数据盘待着

  • 密码和购买的软件密钥通过 1Password 管理,云同步
  • 谷歌和火狐浏览器登录账号即可同步一切,至于 cookies,嗯???
  • Office 是购买笔记本附送的,与账号绑定,文件通过 OneDrive 同步
  • JetBrains 家族软件的设置均可与账号云同步
  • Zotero 的文献数据通过 WebDAV 同步
  • Evernote 剪藏云同步
  • 笔记本驱动安装包、一些较大的软件安装包和镜像文件都放在数据盘
  • 我甚至连 Steam 的下载目录都设定在数据盘

软件上,绝大部分都通过 Scoop 进行管理,目录设定在数据盘,日后重装可通过几条命令恢复使用。一些较大或者无法/不方便通过前者进行管理的采用手动安装,而且这些软件基本都是语言和工具类型的,如 Tex Live、MATLAB、坚果云、小鹤音形、98 五笔等。

Scoop 还有一个好处是,软件当成便携版使用,还能轻松对他们进行升级以及在不同版本间切换,自动设置环境变量,Terminal 中轻松唤起使用。

Installed apps:

  7zip 19.00
  adb 30.0.4
  aida64extreme 6.25 [extras]
  android-sdk 4333796 [extras]
  anki 2.1.33 [extras]
  annie 0.10.3
  anydesk 6.0.8 [extras]
  aria2 1.35.0-1
  as-ssd 2.0.7316.34247 [extras]
  audacity 2.4.2 [extras]
  autohotkey 1.1.33.02 [extras]
  awake 1.4.2 [extras]
  beyondcompare 4.3.5.24893 [extras]
  blender 2.90.0 [extras]
  bluescreenview 1.55 [nirsoft]
  captura 8.0.0 [extras]
  chromedriver 85.0.4183.87
  clash-for-windows 0.11.7 [spoon]
  concfg 0.2020.03.15
  connect 1.100
  cpu-v 2.0.4 [extras]
  cpu-z 1.93 [extras]
  crystaldiskinfo 8.8.5 [extras]
  crystaldiskmark 7.0.0h [extras]
  curl 7.72.0_4
  dark 3.11.2
  deno 1.3.3
  diskgenius 5.3.0.1066 [extras]
  dismplusplus 10.1.1001.10 [extras]
  dropit 8.5.1 [extras]
  etcher 1.5.107 [extras]
  everything 1.4.1.988 [extras]
  ffmpeg 4.3.1
  fiddler 5.0.20202.18177 [extras]
  figlet 1.0-go
  fork 1.53.3 [extras]
  geckodriver 0.27.0
  geekuninstaller 1.4.7.142 [extras]
  gimp 2.10.20-1 [extras]
  git 2.28.0.windows.1
  gpg 2.2.23
  gpu-z 2.34.0 [extras]
  graphviz 2.38
  honeyview 5.35 [extras]
  hugo 0.74.3
  imagemagick 7.0.10-29
  inkscape 1.0 [extras]
  innounp 0.49
  JetBrains-Mono 2.001 [nerd-fonts]
  joplin 1.0.242 [extras]
  julia 1.5.1
  kotlin 1.4.0
  lessmsi 1.6.91
  listen1desktop 2.12.3 [extras]
  lua 5.3.5
  motrix 1.5.15 [extras]
  mubu 2.0.0 [spoon]
  nano 5.2-4
  neovim 0.4.4
  netcat 1.12
  nodejs-lts 12.18.3
  notion 2.0.9 [spoon]
  nvm 1.1.7
  oh-my-posh 2.0.468 [extras]
  openjdk13 13.0.2-8 [java]
  openshot 2.5.1 [extras]
  pandoc 2.10.1
  pandownload 2.2.2 [extras]
  php 7.4.10
  picgo 2.2.2 [spoon]
  picpick 5.1.1 [extras]
  posh-git 0.7.3.1 [extras]
  potplayer 200908 [extras]
  powertoys 0.21.1 [extras]
  proxifier-portable 3.42 [extras]
  python 3.7.6 [D:\Scoop\workspace\python.json]
  racket 7.8
  rufus 3.11 [extras]
  rust 1.46.0
  SarasaGothic-ttc 0.12.14 [nerd-fonts]
  screentogif 2.27 [extras]
  selenium 3.141.59
  shadowsocksr-csharp 4.9.2 [extras]
  sharex 13.1.0 [extras]
  Source-Han-Noto-CJK-Ultra-OTC 20190603 [nerd-fonts]
  speedtest-cli 1.0.0
  sqlite 3.33.0
  ssd-z 16.09.09 [extras]
  sublime-text 3211 [extras]
  sudo 0.2020.01.26
  sumatrapdf 3.2 [extras]
  sysinternals December.18.2019 [extras]
  telegram 2.3.0 [extras]
  telnet msys-inetutils-1.7-1
  time 0.2018.07.25
  touch 0.2018.07.25
  v2ray 4.27.5
  v2rayn 3.23 [extras]
  ventoy 1.0.20 [extras]
  vim 8.2
  vimtutor 0.2018.07.25
  vnote 2.10 [extras]
  vscode 1.48.2 [extras]
  which 2.20
  win32-openssh 8.1.0.0p1-Beta
  winmerge 2.16.8 [extras]
  winscp 5.17.7 [extras]
  yarn 1.22.5
  youtube-dl 2020.09.06
  zotero 5.0.89 [extras]
1 Like

以前爱折腾时基本上用的都是便携或者说可便携(安装后复制到别的文件夹一样可以运行)的软件,快捷方式往启动器里一丢,需要重装时直接格式化C盘,根本不管 Users 目录。
后来想过搞VHD差分系统,然而折腾不动了,重要文件定时备份一下算了,系统爱挂不挂。

用户文件不属于系统文件,没有你说这么严重的不确定性,用户数据被清空,也不会影响windows正常启动。

用户文件和系统文件分分不同位置存储没有任何问题,例如 Linux 的系统文件和用户文件就可以挂载在不同的目录。

scoop 作为一个包管理器,我并没有找到才能改为国内源,所以下载软件对网络环境应该有很高要求吧,没有魔法,应该下载的很慢。

LZ这不是在分享经验吗,多提供一种思路多一种选择。
帖子里有的人就和楼主逐句逐句回复解释自己不需要的理由。你不需要无视不就好了…
莫名其妙。

2 Likes

两种方法(均未测试是否可行)

方法一 mklink 命令法: mklink /J “C:\users” “X:\users”

命令参数 mklink [[/d] | [/h] | [/j]] <Link> <Target>
参数 描述
/d 创建目录符号链接。默认情况下,mklink会创建文件符号链接。
/H 创建硬链接而不是符号链接。
/J 创建目录连接。
<链接> 指定正在创建的符号链接的名称。
<目标> 指定新符号链接引用的路径(相对或绝对)。
/? 在命令提示符下显示帮助。

MS文档:

方法二:使用FreeMove软件移动

有些软件,一些文件的默认路径会指定用户路径下的一个新文件夹,比如 Virtual Box:

如果用户默认路径在 C 盘,我就需要手动修改这个虚拟机路径到其它盘(一个虚拟机几十 G,占到 C 盘很不划算)。

现在默认用户路径到 D 盘后,我再也不用去手动设置这些文件、项目保存路径。

你这个看起来有点复杂,我个人是用链接的方式,就光给Desktop Music Videos Pictures Documents挪了下实际位置到机械盘,感觉对我这128G的SSD来说已经足够了

+1

楼主你讲「 windows 默认的总用户文件夹是 C:\Users ,每个新用户文件夹都会在这里边创建,像是文档、视频、图片下载等文件都会默认保存到用户文件夹,这样会导致 c 盘很大,重装系统备份也不方便。」

可是你的需求完全不需要这么麻烦的做法啊。

装机后直接在用户文件夹里每个文件夹右键属性中设置(如视频、图片等)文件夹的地址。原有文件不会受影响。

使用 OneDrive 后,可以选择同步 Documents 里面的内容到云端,所以游戏存档、微信聊天记录和文件等也会上传。File History 也能正确识别和备份这些内容。

我通过这种方式已经带着自己的文件换过两个硬盘两台电脑和系统了。

AppData是真的改不了,我现在有10GB

我的需求有:把 .AppData 也放到非系统盘

你试试把这些文件夹、文件改下位置:

你的这个需求似乎还是可以通过设置系统环境变量的 %HOMEPATH% 为某个地址来满足,似乎完全不需要对系统安装过程进行任何修改和干预(因为用户体验太差了)。
参考:


以及:
https://en.wikipedia.org/wiki/Environment_variable

另外如果考虑到数据备份和安全的话,那么不管 Users 文件夹的路径为什么,都要备份到其他位置。因此只要有完善的备份和恢复方案,似乎如何放置 Users 文件夹完全不重要。那如果没有完善的备份和恢复方案,就数据安全来讲,把这个文件夹和 AppData 迁移到其他地方似乎也没有什么特别意义。

你确定这样可以让系统认为 Users 目录在指定位置吗?我试过了,是弄不了的。要不你实际操作一下?

appdata这个文件确实很麻烦。不过,试图移动它将会出现各种奇怪的问题。所以目前只能移动其他文件的位置,然后自己把各种系统、软件设置弄好,统一做个系统镜像。以后有问题,就直接u盘恢复。我个人认为这个是没有办法的办法。

你愿意给 Users 文件夹单独一个分区吗?反正我是不愿意

AppData 移动不了,还是鸡肋

这些还好说 ,appdata 有几十个g的大小是我最头疼的

重装完所有旧数据都在 C:\Windows.Old\Users 里边,直接剪切回 C:\Users 就可以了,每次重装花不少时间改路径才是不方便……