Computer >> 컴퓨터 >  >> 시스템 >> Windows

윈도우에서 리눅스로 전환하기 – 디스크 및 드라이브 관리 완벽 가이드

지금까지 저는 WINE 같은 프레임워크를 활용해 윈도우 전용 프로그램을 리눅스에서 설치하고, 설정하고, 사용하는 방법을 중심으로 윈도우→리눅스 전환 시리즈를 진행해 왔습니다. 하지만 오늘은 잠시 벗어나, 아주 중요한 주제인 디스크와 드라이브 관리를 다뤄보려 합니다.

애플리케이션만큼이나 중요한 것이 바로 데이터입니다. 그리고 데이터는 모든 것의 핵심이죠. 문제는 윈도우와 리눅스 사이의 근본적인 차이에서 시작됩니다. 윈도우는 NTFS 파일 시스템을 사용하며 데이터를 드라이브(C:, D: 등) 단위로 구분하지만, 리눅스는 ext4 같은 고유한 파일 시스템 포맷을 쓰면서도 모든 경로를 하나의 루트(/) 트리 아래에 통합합니다(다만 NTFS도 처리 가능합니다). 그렇다면 기존 데이터를 옮기려면 어떻게 해야 할까요? 질서, 단순함, 명확함을 원하는 분들께 이 글이 실질적인 해결책이 되기를 바랍니다.

먼저 읽어야 할 자료

이 가이드는 독립적으로 성립하지 않습니다. 반드시 지켜야 할 기본 전제가 있습니다. 디스크·파티션 관리나 파일 시스템에 대한 개념이 전혀 없는 분이라면 이 글은 다소 어려울 수 있습니다. 기초적인 배경 지식은 필요하며, 솔직히 말해 이 글은 '리눅스 실전 경험은 아직 부족하지만' 기술적 기반을 갖춘 분들을 위한 것입니다.

따라서 본격적으로 들어가기 전에 아래 글들을 먼저 살펴보시길 권합니다.

  • GParted 파티셔닝 소프트웨어 튜토리얼
  • 윈도우 초보자를 위한 리눅스 완전 가이드

비슷하지만 결정적으로 다른 구조

용어와 기술적 배경을 확인했으니, 이제 실제 시나리오를 살펴보겠습니다. 물리 디스크 2개에 총 5개의 파티션을 가진 윈도우 머신이 있다고 가정해 보죠. 구성은 대략 다음과 같습니다.

  • C:\ 드라이브 – 윈도우 및 운영체제 핵심 파일, 프로그램, 사용자 데이터
  • D:\ 드라이브 – 게임 설치 공간(Steam 등)
  • E:\ 드라이브 – 사용자 데이터(문서, 영상, 음악 등). 내 문서 폴더에 넣지 않고 별도로 관리하는 파일들
  • F:\ 드라이브(두 번째 디스크) – 백업용. 매주 사용자 데이터를 복사
  • H:\ 드라이브(두 번째 디스크) – 중요도 낮은 파일(다운로드, 원본 영상 등)

이 컴퓨터의 소유주가 리눅스로 이주하고 싶어 한다고 가정해 봅시다. 절차는 이렇습니다.

H:\ 드라이브의 크기를 줄인 뒤, 확보된 여유 공간에 새 파티션들을 만들고 그곳에 리눅스 배포판을 설치합니다. 그러면 듀얼부트 환경이 완성되어, 컴퓨터를 켜거나 재시작할 때 메뉴에서 리눅스로 들어갈지 윈도우로 들어갈지 선택할 수 있게 됩니다.

이런 유사한 시나리오는 듀얼부트 관련 글, 그리고 Windows 7 & Ubuntu, Windows 7 & CentOS 가이드에서 이미 다룬 바 있습니다. 비슷한 작업을 계획 중이라면 좋은 참고 자료가 될 것이며, 리눅스에서 디스크 관리가 처음 어떤 식으로 달라지는지 감을 잡는 데도 도움이 됩니다.

이제 사용자는 두 개의 운영체제를 가진 시스템을 갖게 됐습니다. 하지만 문제가 남아 있습니다. 데이터 대부분이 여전히 윈도우 쪽에, 즉 NTFS로 포맷된 드라이브에 저장되어 있다는 점입니다. 여기서 몇 가지 질문이 나옵니다.

  • 윈도우 데이터를 읽을 수 있는가?
  • 윈도우 데이터를 수정할 수 있는가?
  • 윈도우 드라이브의 데이터를 다른 파티션의 리눅스 고유 파일 시스템으로 옮길 수 있는가?
  • (원한다면) NTFS 파일 시스템을 리눅스 고유 포맷으로 변환할 수 있는가?

하나씩 답해 보겠습니다

  • 리눅스는 NTFS 파일 시스템을 큰 무리 없이 읽을 수 있습니다. 대부분의 배포판이 기본적으로 지원합니다.
  • 마찬가지로 NTFS에 쓰기도 가능합니다. 다만 모든 배포판이 기본 상태에서 이를 제공하지는 않습니다. 해결책은 NTFS-3g 유틸리티를 설치하는 것입니다. 예를 들어 CentOS, AlmaLinux, Rocky Linux 같은 Red Hat 계열 배포판이라면:

sudo dnf install ntfs-3g ntfsprogs

  • 데이터 이전 자체는 가능하지만, 위 시나리오에서는 새로 만든 리눅스 파티션 용량이 데이터·백업 등 윈도우 쪽 내용 전체를 담기에 부족할 수 있습니다.
  • 파일 시스템 변환은 데이터 손실로 이어질 수 있는 위험한 작업입니다. 검증 완료된 백업 없이는 절대 시도해서는 안 됩니다. 그리고 애초에 백업이 있다면, 파티션을 리눅스 고유 포맷으로 새로 만들고 데이터를 복사하는 편이 더 안전하고 깔끔합니다.

디스크 관리의 불투명성 문제

디스크 공간 부족과 데이터 이전 경로 문제에 대한 해결책은, 윈도우 데이터를 리눅스 시스템 안에서 쉽게 식별할 수 있고 실용적인 백업이 가능한 형태로 보여주는 것입니다. 무슨 말인지 설명해 볼게요.

리눅스에서는 모든 경로가 하나의 루트(/)로 귀결됩니다. 예컨대 /home/igor는 'igor'라는 사용자의 홈 디렉터리 마운트 지점이지만, 그 디렉터리의 실제 물리적 위치는 어디든 될 수 있습니다. 다른 파티션일 수도, 다른 디스크일 수도, 심지어 네트워크상의 다른 시스템일 수도 있죠. 예를 들면:

  • 루트 파일 시스템(/)은 /dev/sda1(첫 번째 디스크의 첫 번째 파티션)에 대한 마운트 지점이다.
  • home/igor는 별도의 마운트 지점이 아니라 그냥 디렉터리이며, 데이터는 /dev/sda1(같은 디스크)에 있다.
  • 반면 /home/igor 경로가 /dev/sda2나 /dev/sdc7, 아니면 NFS·CIFS·Samba 공유로 연결될 수도 있다.

즉, 사용자가 윈도우 드라이브를 마운트하면 그것들은 리눅스에서 하나의 루트 파일 시스템 일부로 표현되며, 다른 위치나 경로와 구분이 쉽지 않습니다. 예를 하나 더 들면:

대부분의 리눅스 시스템은 외장형·이동식·비(非)리눅스 장치를 /run/media 또는 /media 아래에 마운트합니다. 그런데 이 위치 아래에 두 개의 디렉터리가 있다면, 이름만 봐서는 서로 구분하기 어렵습니다. 하나는 내장 윈도우 NTFS 파티션일 수 있고, 다른 하나는 FAT32로 포맷된 USB 드라이브일 수도 있는 거죠.

그래서 제가 쓰는 해결 방법

이 문제를 우회하기 위해 저는 다음 방식을 사용합니다.

  • 루트 아래에 /drives라는 최상위 디렉터리를 만듭니다.
  • 그 안에 윈도우 드라이브의 마운트 지점 역할을 할 디렉터리를 만들고, 드라이브 문자로 식별합니다. 예를 들어 /drive/C는 C:\ 드라이브의, /drive/E는 E:\ 드라이브의 마운트 지점이 되는 식입니다.
  • /etc/fstab에 윈도우 드라이브의 영구 마운트 규칙을 추가합니다(곧 자세히 설명합니다). 이렇게 하면 시스템 부팅 시 윈도우 드라이브들이 쓰기 가능한 장치로 마운트되어 최상위 /drives 위치 아래의 디렉터리로 나타납니다.

이 방식이 주는 이점

이 접근법에는 여러 실질적인 장점이 있습니다.

  • 순수 리눅스 경로와 윈도우 경로 사이에 명확하고 눈에 보이는 구분선이 생깁니다.
  • 모든 비(非)리눅스 장치/파티션이 범용 디렉터리 아래에 뒤섞이지 않습니다.
  • 백업 스크립트 실행 시 필요한 것만 골라 백업할 수 있습니다. 리눅스 시스템 전체 백업을 할 때 다른 파일 시스템이나 드라이브가 함께 마운트되어 있다면, 그것들이 백업에 포함되는 걸 원치 않을 겁니다. 알 수 없는 경로를 일일이 신경 쓰고 싶지도 않겠죠.

실전 적용 방법

앞선 예시를 따라, 첫 번째 단계는 리눅스가 내장 하드 디스크를 어떻게 인식하고 윈도우 드라이브를 어떻게 식별하는지 파악하는 것입니다. 약간의 전문 지식이 필요한 부분입니다. fdisk 같은 명령줄 도구로 장치 목록과 파티션을 출력할 수 있습니다. 다음과 같다고 가정해 보죠.

  • /dev/sda1 – C:\ 드라이브
  • /dev/sda2 – D:\ 드라이브
  • /dev/sda3 – E:\ 드라이브
  • /dev/sdb1 – F:\ 드라이브
  • /dev/sdb2 – H:\ 드라이브
  • /dev/sdb3 – 리눅스 루트(/)
  • /dev/sdb4 – 리눅스 스왑
  • /dev/sdb5 – 리눅스 홈(/home)

/drives 최상위 경로와 그 아래 디렉터리(윈도우 드라이브만 해당)를 생성합니다:

sudo mkdir /drives
sudo mkdir /drives/C
sudo mkdir /drives/D
...

이제 root 또는 sudo 권한으로 /etc/fstab 파일을 백업한 뒤 텍스트 편집기(nano 등)로 엽니다:

sudo cp /etc/fstab /home/"your user"/fstab-backup
sudo nano /etc/fstab

편집기에서 윈도우 드라이브의 마운트 지점을 추가합니다.

/dev/sda1 /drives/C ntfs-3g defaults,locale=utf8 0 0
/dev/sda2 /drives/D ntfs-3g defaults,locale=utf8 0 0
...

각 항목의 의미는 다음과 같습니다.

  • 마운트할 실제 장치/파티션을 지정합니다.
  • 마운트 지점을 지정합니다.
  • 파일 시스템을 지정합니다. 여기서는 ntfs-3g 드라이버를 사용해 읽기/쓰기 권한을 확보합니다.
  • 마운트 옵션을 지정합니다. 간단하게 defaults와 UTF-8 인코딩을 조합했습니다.
  • 마지막 두 필드(dump와 fsck)는 0으로 설정해 리눅스의 전통적인 검사·백업 대상에서 제외합니다.

제 시스템 중 하나의 실제 예시입니다:

# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/nvme0n1p5 during installation
# /boot/efi was on /dev/nvme0n1p1 during installation

UUID=7f4087e7-e572-44fd-a4a1-7489099937a0 / ext4 errors=remount-ro 0 1
UUID=C05A-951D /boot/efi vfat umask=0077 0 1
/swapfile none swap sw 0 0
/dev/nvme0n1p3 /drives/C ntfs-3g defaults,locale=utf8 0 0

주석 처리되지 않은 첫 세 항목은 리눅스 파일 시스템의 마운트 항목입니다. 루트(/), UEFI 시스템에서 필수인 /boot/efi(VFAT 파일 시스템 사용), 그리고 스왑 파티션 대신 스왑 파일이 그것입니다.

네 번째 항목이 바로 추가된 윈도우 드라이브입니다. 주의할 점은 장치 식별자가 /dev/sdaXY 형식이 아니라 /dev/nvmeXnYp3 형식이라는 것입니다. 이 시스템에는 NVMe SSD가 장착되어 있고, 리눅스는 IDE/SATA/SCSI 장치와 다른 방식으로 NVMe를 식별하기 때문입니다. 하지만 실질적인 의미는 동일합니다.

첫 번째(0) NVMe 버스, 첫 번째(1) 장치, 세 번째(3) 파티션을 뜻합니다. 장치와 파티션 표기법이 다르므로 앞서 소개한 하드 디스크 관리 가이드와 GRUB 튜토리얼을 참고하시기 바랍니다. 요약하면, 위 예시에서는 윈도우 파티션(NVMe 디스크의 세 번째 파티션)을 /drives/C 아래에 마운트한 것입니다.

효과를 확인하기 위해 재부팅할 필요는 없습니다. 전체를 다시 마운트하면 됩니다:

sudo mount -a

이제 윈도우 드라이브들이 해당 경로에 마운트되고 데이터를 확인할 수 있습니다. 다음 단계는 마운트된 데이터를 더욱 편리하게 사용하고 접근하는 방법입니다.

파일 관리자와 윈도우 드라이브 연결

명령줄이 아닌 GUI에서 데이터를 사용하고 싶다면 다음 트릭을 써 보세요.

  • 홈 디렉터리에 마운트된 드라이브로 향하는 심볼릭 링크를 만듭니다.
  • 구체적으로는 각 드라이브(문자)를 의미 있는 이름의 폴더에 링크합니다. 예컨대 윈도우 드라이브 이름을 따온 폴더명을 쓰면 직관적입니다.

ln -s /drives/C ~/Windows

위 명령은 홈 디렉터리에 심볼릭 링크를 생성합니다. 'Windows' 폴더는 C:\ 드라이브의 마운트 지점인 /drives/C에 연결됩니다. 따라서 리눅스 파일 관리자에서 Windows 폴더를 클릭하면 윈도우 드라이브의 내용물이 그대로 보입니다.

한 걸음 더 나아가 이 드라이브들에 대한 바로가기를 만들 수도 있습니다. 예를 들어 Plasma 데스크톱 환경이라면 사이드바에 바로가기를 추가해, Windows는 /drives/C로, Games는 /drives/D로, Data는 /drives/E로 매핑되게 할 수 있습니다. 다음 단계로 백업 작업을 이 흐름에 통합하는 것도 가능한데, 그건 별도 튜토리얼에서 다루겠습니다.

마무리하며

이 튜토리얼이 데이터 관리의 만능 해답은 아닙니다. 전혀 그렇지 않죠. 하지만 윈도우에서 리눅스로 넘어오는 사람들이 흔히 부딪히는 문제들에 대한 우아한 해결책을 제시합니다. 윈도우 데이터를 눈에 잘 보이고 직관적인 방식으로 표현하고, 파괴적인 작업은 일절 포함하지 않으며, 편리한 백업과 데이터 분리를 가능하게 합니다. 또한 윈도우 워크플로에 익숙한 사람들이 익숙한 단서와 업무 방식을 포기하지 않으면서도 새 환경에 천천히 적응할 수 있게 도와줍니다.

윈도우 전용 드라이브를 독립된 경로에 마운트하고, 심볼릭 링크로 GUI 접근성을 확보하며, 논리적인 매핑까지 갖추었다면, 이제 여러분의 마이그레이션은 탄탄한 기반 위에 놓여 있습니다. 다음 단계는 중요한 데이터의 백업입니다. 백업 없는 데이터란 곧 예고된 비극과 다름없으니까요. 이어지는 글에서 백업 방법과 그 밖의 실용적인 일상 팁들을 다룰 예정입니다. 지금은 위에서 소개한 데이터 구조를 한번 곱씹어 보시고, 추가 프로그램 설정 가이드도 기대해 주세요. 곧 다시 만나요.

감사합니다.