笔记本自带的win11的C盘满了,但是我想装vs,只能选择腾出空间。我一开始把磁盘其他空间分给了其他系统,只给C盘留了100G,事实证明不太够,之前吸取过教训,win10或win11的C盘给100G是不够的。我一开始将C:\Program Files和(x86)移动到了其他盘,然后弄软连接,注册表也改了。看起来没啥毛病,但是装vs的时候,报错:

An error occurred while attempting to create the directory: C:\Program Files (x86)\Common Files

无奈之下把C:\Program Files移回来,选择将C盘整个迁移到大一倍的磁盘中。做这种事我也不是第一次,轻车熟路了,这次就记下来,希望帮到需要的人。


program files和x86_盘符

迁移完毕结果

目录

第零步:事先的准备

第一步:分出一块足够大小的分区

第二步:克隆分区

第三步:引导修复

第四步:盘符恢复

附加:Linux多系统下,grub引导的修复


第零步:事先的准备

 1. 首先得有足够空间的磁盘分区,我就从一个2T的分区中分出200G来了

 2. 将所有磁盘的盘符记下来,最好截个图。因为迁移完了进系统,盘符会乱掉,R盘可能变了E盘,得将其恢复原样。

按win+x,点磁盘管理,可以方便地看到盘符


program files和x86_ubuntu_02

将盘符记下来

 3. 准备一个PE启动U盘,大白菜或者其他pe都可以,有分区和修复引导功能的就行

第一步:分出一块足够大小的分区

使用DiskGenius软件即可,图形界面操作,不要太简单。建议进PE系统操作


program files和x86_盘符_03

DiskGenius分区工具

 右击某块磁盘的空闲空间大的分区,将其拆分,这里分出200G。(已经操作过,就不再重复做了)

program files和x86_重启_04

(题外话:我的磁盘的分区表类型都是GUID格式的,习惯问题,总使用一样的配置不太容易出现出乎意料的错误)

第二步:克隆分区

右键C盘的分区,点克隆分区,选择刚刚分出来的空分区,再点开始即可。

program files和x86_program files和x86_05

program files和x86_program files和x86_06

 经过十分钟,就克隆完毕了。

第三步:引导修复

我并不知道这一步是不是必要的,但是我习惯在装完系统(或类似的事)之后修复引导,确实能避免很多问题。

如果刚才几步没进PE,那么现在必须进了。关机,插入U盘,开机时狂按F2或F12或delete或.,总有一个键能进BIOS。然后选USB启动,进PE系统。不同的主板和PE,界面可能不一样,搞不定可以搜一下对应的型号。

program files和x86_重启_07

 我用的这个PE还有截图工具,挺方便的

program files和x86_windows_08

 打开DiskGenius,看看新克隆的分区的盘符是啥,这里是G:

program files和x86_ubuntu_09

 找到引导修复的工具,一般PE都带有,我用了NTBootAutoFix工具

program files和x86_program files和x86_10

点击对应的盘符,再点开始修复即可。然后分区名会变成64WinXP,不影响使用,改回来即可。

重启后改为从磁盘启动,选择对应的磁盘,能进系统,看到C盘大了一圈就说明已经搞定了

第四步:盘符恢复

启动后可能会让你设置虚拟内存啥的,桌面图标很多也是空白,这是因为盘符乱了。这个时候将其改回来就行了。

点win+x,点 磁盘管理,在错误盘符的分区处右击点更改驱动器号和路径,将其按之前的截图改回来即可,当然C盘不用改

program files和x86_program files和x86_11

program files和x86_program files和x86_12

然后重启,就完了。可以格式化原来的C盘了。

附加:Linux多系统下,grub引导的修复

 

进入终端,输入命令修改文件

sudo chmod -x /etc/grub.d/30_os-prober
sudo vim /etc/grub.d/40_custom

或者在grub.d中搜menuentry,找到对应windows的那一项

将其改成:

menuentry 'win11' {
insmod part_gpt
insmod chain
insmod ntfs
set root='(hd1,gpt2)'
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

主要是改set root那句,其中(hd1,gpt2)说的是第1块(0数起)磁盘,第2个分区(对应我上面的分区截图),你是第0块就写hd1,第几个分区就写gpt几,写错了进不去系统的,多试几次就行了,我试了3次

然后更新grub

sudo update-grub

重启,选win11。如果说找不到引导,就将(hd1,gpt2)改一下。

program files和x86_program files和x86_13

之后安装vs就没出错了,这不比折腾软连接快?