윈 도 우 WinSxS 폴더를 다른 드라이브로 강제 이동시키는 방법입니다.
2014.06.11 00:14
WinSxS 폴더를 비롯한 중요한 폴더는 이동이 안되더군요. 용량이 엄청 커서 한번 옮겨보고 싶었습니다.
이 글은 구글 검색에서 찾은 내용입니다. 다들 아시겠지만.. 포럼에 없는 것 같아 조심스레 올려 봅니다.
참고로 본문에서 윈도우에 이상이 생길 수 있으며, 위험부담이 있다고 빨깐 딱지로 경고하고 있습니다.
저의 경우엔(윈8.1 Pro X64) 에러가 뜬다거나, 뭔가가 실행이 안된다거나 하지는 않지만, 그래도 주의가 필요할 것입니다.
가상머신 상에서 시험하거나, 시스템 전체를 백업한 후에 작업하는 것을 강력히 권장합니다.
원문 : https://aspoc.net/archives/2007/12/05/how-to-move-the-winsxs-directory-in-vista/
이하 저의 부족한 영어 실력으로 제 방식대로 정리한 글입니다.
-----------------------------------------------------------------------------------------------------------------------
사전 준비물 :
다음 두 가지 유틸리티가 필요합니다 : PendMoves and MoveFile. 이것들을 접근하기 쉽게 Windows\System32 디렉토리에 위치 시키세요.
과정 :
- 탐색기로 \Windows\WinSXS 폴더로 이동합니다.
해당 폴더의 모든 권한과 소유권을 획득합니다. - 관리자 명령창을 열어 임시 폴더를 생성합니다.
mkdir c:\windows\winsxs.moved - WinSxS 폴더를 이동 할 드라이브를 정한 뒤, 정션링크를 생성합니다. (본 예제에서는 J 드라이브)
mklink /J c:\windows\winsxs.link winsxs.moved - winsxs.moved 폴더를 삭제합니다.
rmdir c:\windows\winsxs.moved - 관리자 명령창에서 다음을 실행합니다.
movefile c:\windows\winsxs c:\windows\winsxs.moved
이 명령은 MoveFile 프로그램을 사용하여 부팅 시 윈도우가 WinSxS 폴더를 잠그기 이전에 이름을 변경하도록 예약 함으로써, 권한 문제를 우회할 수 있습니다. - 관리자 명령창에서 다음을 실행합니다.
movefile c:\windows\winsxs.link c:\windows\winsxs
이 명령은 WinSxS 폴더를 다시 원위치로 되돌려 놓는 작업입니다. so everything doesn’t collapse in a heap. - 명령창에서 다음 명령을 칩니다.
pendmoves
이 명령은 두 개의 예약된 이동 예약이 윈도우 진입 이전에 오류 없이 수행하게 합니다. 모든 것이 준비 되었다면, 재부팅 하세요!!
재부팅 시 중요한 폴더 이름 변경과 이동이 실행될 것입니다. 그리고 WinSxS 폴더를 잠기지 않을 것이고, 다음 과정에서 할 이동 작업이 가능하게 됩니다. - (재부팅을 하였음)
- 관리자 명령창을 열어서 다음을 실행해 봅니다.
dir c:\windows\winsxs*
이전 과정들이 올바르게 수행되었다면, WinSxS.moved 폴더와 WinSxS 정션 링크를 볼 수 있을 것입니다. 만약 잘 되지 않았다면 이전 과정들을 되풀이 하세요. - 우리가 해야 할 과정은 WinSxS 폴더를 이동하고 정션링크를 수정하는 것입니다.
탐색기를 이용해서 WinSxS.moved 폴더를 다른 파티션이나 드라이브의 Windows 폴더로 복사합니다. - 복사가 완료되면 복사된 WinSxS.moved 폴더의 이름을 WinSxS로 변경합니다.
- 관리자 명령창을 열어 다음 명령을 실행합니다 (쓰레기가 된 정션링크 삭제)
rmdir c:\windows\winsxs - 그런 다음, 새로운 정션 링크를 생성합니다.
mklink /J c:\windows\winsxs d:\windows\winsxs - 모든 작업이 잘 이루어졌다면 탐색기에서 C:\windows\WinSxS 폴더를 탐색할 수 있으며, 모든 파일들을 볼 수 있습니다. (실제로는 다른 파티션이나 드라이브에 있기는 하지만)
- 재부팅 합니다.
- 이제 c:\windows\winsxs.moved 를 삭제할 수 있습니다.
이 과정을 윈도우 업데이트 폴더에도 적용시킬 수 있습니다. 사용자가 윈도우 업데이트 등을 다운로드 받을 때 그 파일들은 C:\Windows\SoftwareDistribution 에 위치하게 됩니다. 그리고 이 폴더의 용량은 빠르게 증가합니다.
자동 업데이트 서비스 중지 -> 디렉토리 이동 -> 새 정션 생성 -> 서비스 재시작. 이 방법이 더 간단하긴 합니다.
댓글 [4]
-
라푸아 2014.06.11 00:23
-
DarknessAngel 2014.06.12 21:37
PE로 작업하게되면 좀 더 간단하게 가능합니다
-
! 2014.06.13 07:01 강좌좀 부탁드립니다.
-
DarknessAngel 2014.06.13 08:15
위의 내용을 간단히 정리하면 해당 폴더를 이동후 심벌릭을 생성하는게 전부입니다 (다만 그냥 옴기면 OS작동불능이고, 사용중이라 문제가 되는부분도 있어서 저런 과정을 거치는겁니다
PE에서 이동후 수동으로 심벌릭 생성하면 결과적으로 동일합니다
참고로 SoftwareDistribution쪽은 Download만 내용물 비워줘도 용량 거의 증가 안 합니다 (이넘 다 비워도 아무 문제 없습니다)
관리자 권한에서 작업을 해야 하며, 1번의 경우 관리자에게 모든 권한과 소유권을 넘기는 작업입니다.
원문 댓글 중에, 일부 업데이트를 할 때 오류가 발생한다고 합니다.