Di chuyển các thư mục Windows xung quanh với các liên kết Junction (mklink)


23

Dung lượng trên ổ SSD của tôi sắp hết khá thấp và dường như có một thư mục 19 GB trong Windows bị loại ra (% Windir% \ Installer) và không thể xóa một cách an toàn (như được giải thích tại đây: /server//q/15746 ).

Bây giờ, việc mklinkcung cấp một thứ nhỏ gọn gọi là liên kết Junction - nếu tôi khởi động trong dấu nhắc cmd và di chuyển tất cả các tệp sang ổ cứng khác, rồi chạy nó:

mklink /J C:\Windows\Installer D:\Windows\Installer

Tôi sẽ làm rối tung Windows của mình theo một cách nào đó, hay đây là một việc nên làm? Các quyền / thuộc tính thư mục sẽ giữ nguyên trên toàn liên kết?

Trước đây tôi đã sử dụng các liên kết cứng và nó hoạt động như một cơ duyên giải phóng đáng kể ổ SSD của tôi, nhưng tôi chưa bao giờ thử nó trên các thư mục hệ thống (Tôi không hiểu tại sao nó không hoạt động, nhưng tôi không ở trong tâm trạng cài đặt lại toàn bộ cửa sổ trong trường hợp tôi sai)


Nó sẽ rối tung lên. Tôi đã làm chính xác điều này và sau khi phần mềm như Ramdisk không cài đặt được. Tương tự với mklink / J và / D, chỉ di chuyển thư mục trở lại c để tôi hoàn tất cài đặt. Cũng có thể các bản cập nhật windows của tôi có vấn đề.
Cmazay

Câu trả lời:


29

OK, tôi đã chấp nhận rủi ro và nó đáng giá - mọi thứ hoạt động bình thường, nhưng tôi đã giải phóng 17GB trên ổ SSD của mình.

Về cơ bản, các bước là:

  1. Khởi động lại PC của bạn, nhấn F8 liên tục để hiển thị menu khởi động và chọn "Dấu nhắc lệnh với chế độ an toàn" (điều này là để đảm bảo bạn có thể di chuyển thư mục windows xung quanh)
  2. Khi dấu nhắc lệnh được hiển thị, nhập lệnh để di chuyển thư mục sang ổ đĩa khác:
    robocopy C:\Windows\Installer D:\Windows\Installer /MOVE /e
  3. Tiếp theo, tạo liên kết "Giao diện" cho thư mục bị thiếu:
    mklink /J C:\Windows\Installer D:\Windows\Installer

Tất nhiên, điều này giả định rằng% WINDIR% của bạn là C: \ Windows, rằng ổ D của bạn là ổ có nhiều dung lượng hơn, bạn muốn đích đến của mình trong "D: \ Windows \ Installer" (có thể là bất kỳ thư mục nào, chỉ là nhất quán) vv ...

Cái này cần phải dùng mẹo.


cái này có hoạt động trong windows 10 không?
Nizam Yahya Syaiful

Nó nên - tất cả các thông tin vẫn áp dụng AFAIK. Nếu bạn thử nó cho chúng tôi biết làm thế nào nó đi!
veljkoz

Đã làm việc trên Windows 8 - rất tuyệt vời, cảm ơn.
Dunc

1
Đã hoạt động trên Windows 7!
glenviewjeff

3
Xin lưu ý rằng điều này có thể gây ra sự cố khi cài đặt các bản cập nhật lớn của Windows (chẳng hạn như Windows 10 Fall Creators Update) vì đường nối sẽ được thay thế bằng một thư mục trống.
0xA3

3

Trong khi cố gắng đòi lại không gian trên ổ đĩa chính của tôi, một ổ SSD 120GB, tôi thấy các hướng dẫn về cách chuyển nơi ở Users, Program Files, Program Files (x86), và ProgramData. Nó bao gồm một số chỉnh sửa đăng ký "để đặt vị trí mặc định", như sau:

  1. Thay thế ký tự ổ đĩa của các đường dẫn được liệt kê tại HKEY_LOCAL_MACHINE / SOFTWARE / Microsoft / Windows / CurrentVersion (ví dụ: C:\Program Files\Common Filessẽ trở thành D:\Program Files\Common Files)
  2. Thay thế các biến môi trường %SystemDrive%bằng đường dẫn ổ đĩa tại HKEY_LOCAL_MACHINE / SOFTWARE / Microsoft / Windows NT / CurrentVersion / ProfileList (nghĩa là %SystemDrive%\ProgramDatasẽ trở thành D:\ProgramData)

1
Lưu ý: mọi ứng dụng đã được cài đặt vẫn có thể tìm ở vị trí cũ nếu các mục cấu hình / đăng ký của chúng trỏ đến một vị trí đã được giải quyết trước khi thay đổi này. Cài đặt lại các ứng dụng đó có thể khắc phục vấn đề.
TWiStErRob

2

Tôi đã thực hiện các bước tương tự, nhưng tôi muốn có thể sử dụng máy tính của mình trong khi tôi thực hiện sao chép tệp (thư mục của tôi là 40 GB).

  1. Sao chép thủ công thư mục vào F: \ Installer
  2. Tôi đang sử dụng Windows 8.1, vì vậy để khởi động dòng lệnh, tôi đã giữ Shift trong khi tôi nhấp vào Khởi động lại, sau đó nhấp vào Nâng cao
  3. Khi ở trong dòng lệnh, tôi phải tìm ra ký tự ổ đĩa nào để sử dụng (nó không phải là C: mặc dù đó là% SystemDrive% của tôi khi hệ điều hành của tôi được khởi động đầy đủ). Tôi đã phải sử dụng echo list volume | diskpartđể tìm ra rằng ổ C: bây giờ được gọi là ổ E: và ổ F: vẫn là ổ F:
  4. Tôi đã xóa các thuộc tính hệ thống và ẩn trên E: \ Windows \ Installer attrib -s -h E:\Windows\Installervà đổi tên nó bằngrename "E:\Windows\Installer" "Installer_old"
  5. Sau đó tôi có thể tạo đường giao nhau với mklink /J E:\Windows\Installer F:\Installer

2

Bạn có thể sử dụng cùng một mẹo cho pagefile.sys và exchangefile.sys (không chắc chắn nếu cũng cho hiberfile.sys, không được kiểm tra vì tôi ghét ngủ đông trên multi-boot).

Chỉ cần đảm bảo hủy kích hoạt ram ảo và khởi động lại trước khi tạo liên kết tượng trưng, ​​sau đó sau khi tạo chúng kích hoạt lại ram ảo.

Tôi có xu hướng tạo (bằng notepad) một tập tin trống theo số mệnh của liên kết trước khi tạo liên kết.

Hãy nhớ rằng: Khi Windows10 UpGrade, nó sẽ xóa các liên kết và đặt các tệp thực, sau khi UpGrades bạn có thể lặp lại quy trình.

Hoạt động tối đa Windows 10 phiên bản 1803.48, kể từ WindowsXP (bản cũ nhất tôi đã thử).


nếu bạn không muốn ngủ đông, powercfg -h offthay vào đó hãy chuyển sang chế độ ngủ đông . Sử dụng các liên kết trên các tệp này nghe có vẻ như là một biên nhận chắc chắn cho thảm họa
NiKiZe

Tại sao phải chuyển đổi / xếp lớp trao đổi với nội dung TẠM THỜI mà bạn không muốn giữ lại nếu bạn có thể vô hiệu hóa nó trên một ổ đĩa và bật trên một ổ đĩa khác?
Oleg V. Volkov

0
  1. Sao chép C:\Windows\Installervào đĩa khác như D:\C\Windows\Installer.
  2. Kiểm tra và so sánh kích thước của cả hai thư mục nếu thư mục nguồn C:không bị thay đổi trong khi sao chép.
  3. Đổi tên thư mục trên đĩa C:, ví dụ Installer=>InstallerX
  4. Chạy lệnh với tư cách quản trị viên và khởi chạy chạy lệnh này:
    • mklink /d C:\Windows\Installer D:\C\Windows\Installer
  5. Đợi một thời gian (vài ngày) nếu mọi thứ đều ổn.
    • Nếu có, bạn có thể xóa sao lưu thư mục C:\Windows\InstallerX.
    • Nếu không, xóa biểu tượng thư mục C:\Windows\Installervà đổi tên lại InstallerXđể Installer, hoặc sao chép lại các thư mục D:\C\Windows\Installerđể C:\Windows\Installer.

Điều này trùng lặp một câu trả lời khác và không thêm nội dung mới. Vui lòng không đăng câu trả lời trừ khi bạn thực sự có điều gì đó mới để đóng góp.
DavidPostill
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.