본문 바로가기
IT

[리눅스 기초 #37] 시스템 통째로 보관하기: WSL2 이미지 백업과 복구로 '타임머신' 만들기

by sunyjiny 2026. 2. 8.
반응형

리눅스 기초 시리즈의 37번째 시간입니다! 지난 시간에는 우리 서버의 상태를 한눈에 파악하는 Glances와 Netdata 모니터링 시스템을 구축했습니다. 이제 보안부터 모니터링까지, 완벽하게 튜닝된 나만의 리눅스 환경을 갖게 되셨을 겁니다. 그런데 만약, 윈도우를 재설치해야 하거나 컴퓨터를 바꿔야 한다면 이 공들인 설정을 처음부터 다시 하실 건가요?

그 원인 모를 불안감을 해소해 줄 해결책이 바로 이미지 백업(Export)입니다. 오늘은 내 리눅스 배포판 전체를 하나의 파일로 압축해 보관하고, 언제든 원하는 시점으로 되돌리는 '타임머신' 구축법을 저의 경험담과 함께 정리해 보겠습니다.


1. 나의 경험담: "PC 교체, 며칠 걸릴 세팅이 10분 만에 끝났다"

최근 제 개발용 메인 노트북을 최신 기종으로 교체했습니다. 평소 블로그 sunyjini.com를 운영하며 다듬어온 Neovim 설정, 수십 개의 Docker 이미지, 그리고 복잡한 네트워크 환경을 새 컴퓨터에 옮길 생각을 하니 막막했죠. 예전 같으면 꼬박 이틀은 세팅에만 매달렸을 겁니다.

하지만 저는 매주 일요일마다 wsl --export 명령어로 제 환경을 백업해두고 있었습니다. 새 노트북에 WSL을 깔고 그저 파일 하나를 'Import' 했을 뿐인데, 10분 만에 제가 쓰던 터미널 폰트부터 도커 컨테이너까지 그대로 살아났습니다. 마치 어제 쓰던 컴퓨터를 그대로 들고 온 것 같은 기분이었죠. 백업은 귀찮음이 아니라 미래의 나에게 주는 가장 큰 선물이라는 것을 다시금 깨달았습니다.


2. Before: "백업 없는 시스템은 언제 터질지 모르는 시한폭탄"

백업을 몰랐을 때는 시스템에 치명적인 명령어를 잘못 입력하거나, 윈도우 업데이트 중 WSL 파일 시스템이 꼬여버리면 대안이 없었습니다. 모든 설정 파일(.bashrc, .vimrc 등)을 수동으로 복사하고 패키지를 다시 설치하는 고된 노동을 반복해야 했죠.

실험 코드 (현재 상태 확인):

PowerShell
 
# 현재 백업할 준비가 된 배포판 확인 wsl -l -v

목록에 나오는 이름을 정확히 기억해야 합니다 (예: Ubuntu)

(▲ Before: 목록은 있지만, 이것이 파일로 저장되어 있지 않다면 사고 시 복구할 방법이 없습니다. 이제 이 무형의 데이터를 유형의 파일로 추출해 보겠습니다.)


3. Action: 한 줄의 명령어로 만드는 시스템 복제본

백업과 복구는 터미널을 종료한 뒤 윈도우 파워쉘에서 수행합니다. 핵심은 exportimport입니다.

백업 및 복구 코드:

PowerShell (Admin)
 
# 1. 실행 중인 WSL 종료 wsl --shutdown

2. 이미지 백업 (배포판이름 저장경로\파일명.tar)
wsl --export Ubuntu D:\Backups\my_ubuntu_2026.tar

3. 이미지 복구 (새이름 설치경로 백업파일명)
wsl --import Ubuntu_New C:\WSL\Ubuntu_New D:\Backups\my_ubuntu_2026.tar 

(▲ Action: --export 명령어를 실행하면 시스템 전체가 하나의 .tar 파일로 압축됩니다. 용량에 따라 시간이 걸리니 잠시 기다려주세요. 이 파일만 있으면 어디서든 똑같은 내 환경을 재현할 수 있습니다.)


4. After: 언제 어디서나 "똑같은 내 리눅스"

이미지 백업 체계를 갖춘 뒤, 제 개발 환경은 더 이상 특정 하드웨어에 종속되지 않게 되었습니다.

달라진 점들:

  • 완벽한 복구성: 실수로 시스템 폴더를 날려버려도 5분 만에 어제 상태로 복구가 가능합니다.
  • 자유로운 이사: 구글 드라이브나 외장 하드에 백업 파일을 넣고 다니며 어느 컴퓨터에서나 내 환경을 즉시 띄웁니다.
  • 실험의 자유: 위험한 설정을 시도하기 전에 백업을 떠두면, 망가져도 전혀 두렵지 않습니다.

5. 실험 요약 및 팁

명령어 역할 비유
wsl --export 현재 시스템을 파일로 추출 현재 상태 사진 찍기
wsl --import 파일에서 시스템 생성 사진대로 조립하기
wsl --unregister 배포판 삭제 (데이터 영구 삭제) 건물 철거하기
wsl --set-default 기본 실행 배포판 지정 정문 지정하기

6. 마치며: 최신 엔진으로 달릴 준비가 되었나요?

리눅스 기초 37단계를 거치며 우리는 이제 시스템을 만들고, 가꾸고, 지키는 것을 넘어 '시간과 공간'까지 통제할 수 있게 되었습니다. 엔진(커널)과 모든 설정이 담긴 이미지 파일은 개발자에게 가장 큰 자산입니다. 주기적인 백업 습관으로 여러분의 소중한 결과물을 지키세요.

오늘의 인사이트: "백업은 사고가 터졌을 때 하는 것이 아니라, 평화로울 때 미리 준비하는 보험이다."


37번째 이야기를 마칩니다. 이제 우리만의 '무적 리눅스' 환경이 완성되었습니다. 다음 시간에는 이렇게 탄생한 나만의 도구들을 웹으로 전 세계에 서비스하기 위한 첫걸음인 **'리눅스 웹 서버 기초: Nginx 가상 호스트와 리버스 프록시(Reverse Proxy) 설정'**에 대해 다뤄보겠습니다.

이 글이 여러분의 시스템을 지키는 든든한 방패가 되었나요? 혹시 이미지 복구 후 기본 사용자 계정이 root로 바뀌어 당황하고 계신가요?

복구 후 기존 사용자 계정을 다시 기본값으로 설정하는 비법을 다음 포스팅 부록으로 준비해 드릴까요?

반응형