오늘 저는 Windows-to-Linux 자습서의 최근 템플릿에서 벗어나고자 합니다. 이 자습서는 일반적으로 Windows 전용으로 설계되거나 의도된 다양한 프로그램을 다음과 같은 프레임워크를 사용하여 설치, 구성 및 사용하는 방법을 보여주는 데 중점을 두었습니다. 와인. 오늘 논의할 내용은 디스크 및 드라이브 관리에 대한 흥미진진한 주제입니다.
애플리케이션 외에도 고려해야 할 데이터가 있습니다. 그리고 데이터는 모든 것에 중요합니다. Windows와 Linux의 근본적인 차이점을 고려할 때 상황은 더욱 복잡해집니다. 전자는 NTFS를 사용하며 데이터는 드라이브(C:, D:등)에 구성됩니다. Linux는 모든 것을 하나의 파일 시스템 트리(루트, /) 아래에 저장하고 NTFS를 처리할 수 있지만 다른 파일 시스템 형식(예:ext4)을 사용합니다. 그렇다면 물건을 옮기려고 하면 어떻게 될까요? 이 튜토리얼은 질서, 단순성 및 명확성을 찾는 사람들을 위한 깔끔한 제안입니다.
예비 읽기
이 가이드는 고립되어 살 수 없습니다. 우리가 따라야 할 어려운 물리 법칙이 있습니다. 첫째, 디스크 및/또는 드라이브 관리, 파일 시스템 등에 대해 전혀 모르는 경우 이 기사는 적합하지 않습니다. 이러한 원칙의 기본 토대가 필요합니다. 현실적으로 갑시다. 이 기사는 Linux에 대한 실무 경험이 거의 없는(아직) 전문 지식을 가진 사람들을 위한 것입니다.
즉, 더 자세히 알아보기 전에 정독해야 할 몇 가지 기사가 있습니다.
GParted 분할 소프트웨어 튜토리얼
Windows 초보자를 위한 최고의 Linux 가이드
동일하지만 다름
이제 용어와 기술적 세부 사항을 알았으니 시나리오에 대해 논의해 봅시다. 2개의 실제 디스크와 총 5개의 디스크 파티션이 있는 Windows 시스템이 있다고 가정합니다. 레이아웃이 다음과 같다고 가정해 보겠습니다.
- C:\ 드라이브 - Windows 및 핵심 운영 체제 파일, 프로그램 파일, 사용자 데이터.
- D:\ 드라이브 - 게임 설치(Steam 포함).
- E:\ 드라이브 - 사용자 데이터(파일, 영화, 음악, 문서 등)는 내 문서 등에 저장되지 않습니다.
- F:\ 드라이브(두 번째 디스크) - 백업에 사용됩니다. 여기에서 사용자 데이터는 일주일에 한 번 복사됩니다.
- H:\ 드라이브(두 번째 디스크) - 중요하지 않은 항목(다운로드, 원시 비디오 등)에 사용됩니다.
이제 다음 디스크 배열을 가진 컴퓨터의 소유자가 Linux로 이동하는 데 관심이 있다고 가정해 보겠습니다. 그래서 그들이 하는 일은 다음과 같습니다:
그들은 디스크를 다시 분할합니다. 특히 H:\ 드라이브를 축소한 다음 해제된(지금은 비어 있는) 공간에 여러 개의 새 파티션을 만듭니다. 그런 다음 여기에 Linux 배포판을 설치합니다. 이제 그들은 이중 부팅 시스템을 실행하고 컴퓨터 전원을 켜거나 다시 시작할 때 Linux 또는 Windows 환경으로 계속 진행할지 여부를 선택할 수 있는 메뉴를 봅니다.
보시다시피 저는 위에 링크된 것과 같은 다양한 이중 부팅 기사와 Windows 7 및 Ubuntu 및 Windows 7 및 CentOS 가이드에서 이와 유사한 시나리오를 간략하게 설명했습니다. 이는 유사한 모험을 위한 좋은 기준점을 제공할 뿐만 아니라 Linux에서 디스크 관리의 초기 차이점이 어떤 것인지 알 수 있게 해줍니다.
이제 사용자는 두 개의 운영 체제가 있는 시스템을 가지고 있습니다. 그러나 문제가 있습니다. 대부분의 데이터는 여전히 Windows에 상주하거나 NTFS 파일 시스템으로 포맷된 Windows 드라이브에 저장/보관됩니다. 여기에 몇 가지 질문이 있습니다.
- 사용자가 Windows 데이터에 액세스할 수 있습니까?
- 사용자가 Windows 데이터를 수정할 수 있습니까?
- 사용자가 Windows 드라이브에서 다른 파티션의 기본 Linux 파일 시스템으로 데이터를 마이그레이션할 수 있습니까?
- 사용자가 NTFS 파일 시스템을 기본 Linux 파일 시스템으로 변환할 수 있습니까(원하는 경우)?
그럼 대답해 볼까요!
- Linux는 큰 문제 없이 NTFS 파일 시스템을 읽을 수 있습니다. 대부분의 배포판은 이를 기본적으로 지원합니다.
- 마찬가지로 Linux는 NTFS 파일 시스템에 쓸 수 있습니다. 그러나 모든 배포판에 이 기능이 기본 제공되는 것은 아닙니다. 이 문제에 대한 해결책은 필요한 기능을 제공하는 NTFS-3g 유틸리티를 설치하는 것입니다. 예를 들어 CentOS, AlmaLinux 또는 Rocky Linux와 같은 Red Hat 배포판에서:
sudo dnf install ntfs-3g ntfsprogs
- 사용자는 데이터를 마이그레이션할 수 있지만 위의 시나리오에서는 새로 생성된 Linux 파티션에 데이터, 백업 및 기타 비트를 포함한 모든 Windows 항목을 수용할 수 있는 공간이 충분하지 않을 수 있습니다. 정보.
- 파일 시스템 변환은 데이터 손실로 이어질 수 있는 위험한 작업입니다. 완전하고 검증 가능한 데이터 백업 없이는 절대 수행해서는 안 됩니다. 하지만 백업이 있는 경우 기본 파일 시스템으로 파티션을 포맷하고 데이터를 복사하는 것이 좋습니다.
디스크 관리 불투명도
디스크 공간 부족 및/또는 쉬운 데이터 마이그레이션 경로에 대한 해결책은 Windows 데이터를 Linux 시스템 내부에 제공하는 것이지만 식별하기 쉬운 방식으로 실용적인 데이터 백업을 허용하는 것입니다. 내가 의미하는 바를 설명하려면 다음을 고려하십시오.
Linux에서 모든 경로는 하나의 루트(/)로 해석됩니다. 예를 들어 /home/igor는 "igor"라는 사용자의 홈 디렉토리에 대한 마운트 지점입니다. 그러나 해당 디렉터리의 물리적 매핑은 어디에나 있을 수 있습니다. 다른 파티션, 다른 디스크, 심지어 다른 시스템(네트워크의)일 수도 있습니다. 예를 들면:
- 루트 파일 시스템(/)은 /dev/sda1(첫 번째 디스크의 첫 번째 파티션)의 마운트 지점입니다.
- home/igor는 별도의 마운트 지점이 아닌 디렉토리입니다. 데이터는 /dev/sda1(동일한 디스크)에 있습니다.
- 또는 /home/igor 경로는 /dev/sda2 또는 /dev/sdc7 또는 심지어 NFS, CIFS 또는 Samba 공유로 확인할 수 있습니다.
즉, 사용자가 Windows 드라이브를 마운트하면 단일 루트 파일 시스템의 일부로 Linux에 표시되며 반드시 다른 위치나 경로에서 식별할 수 있는 것은 아닙니다. 예를 들면 다음과 같습니다.
대부분의 Linux 시스템은 /run/media 또는 /media 아래에 이동식, 외부 또는 Linux가 아닌 장치를 마운트합니다. 따라서 이 위치 아래에 두 개의 디렉토리가 표시되는 경우 이름이 어떻게 지정되더라도 두 디렉토리를 구분할 수 없을 것입니다. 하나는 내부 Windows NTFS로 포맷된 파티션이고 다른 하나는 FAT32로 포맷된 USB 드라이브일 수 있습니다.
해결책
이 문제를 해결하기 위해 다음 방법을 사용합니다.
- 드라이브(/drives)라는 루트 아래에 새로운 최상위 디렉토리를 만듭니다.
- 내부에 문자를 식별자로 사용하여 Windows 드라이브의 마운트 지점 역할을 할 디렉토리를 만듭니다. 예를 들어 /drive/C는 C:\ 드라이브의 마운트 지점으로 사용되고 /drive/E는 E:\ 드라이브의 마운트 지점으로 사용됩니다.
- /etc/fstab 아래에 Windows 드라이브에 대한 영구 마운트 규칙을 만듭니다(자세한 내용은 곧 설명). 즉, 시스템이 부팅되면 Windows 드라이브가 쓰기 가능한 장치로 마운트되고 최상위 /drives 위치 아래에 디렉터리로 표시됩니다.
이 방법은 무엇을 보장합니까?
이 접근 방식에는 많은 유용한 이점이 있습니다.
- Linux 전용 또는 순수 Linux 경로와 Windows 경로를 명확하고 가시적으로 구분할 수 있습니다.
- 일반 디렉토리에서 모든 비 Linux 장치/파티션을 혼합하지 않습니다.
- 백업 스크립트를 실행하면 모든 항목이 복사되거나 백업되지 않고 필요한 항목만 백업됩니다. Linux 시스템의 전체 백업을 수행 중이고 다른 파일 시스템과 드라이브가 마운트되어 있는 경우 반드시 백업에 포함되는 것을 원하지 않으며 모든 "알 수 없는" 경로를 설명할 필요가 없습니다. .
방법은 다음과 같습니다
이전 예제에 이어 첫 번째 단계는 Linux가 내부 하드 디스크를 "인식"하는 방법과 Windows 드라이브를 식별하는 방법을 파악하는 것입니다. 다시 말하지만 여기에는 약간의 전문 지식이 필요합니다. fdisk와 같은 명령줄 도구를 사용하여 장치 및 파티션 목록을 출력할 수 있습니다. 다음을 가정해 보겠습니다.
- /dev/sda1 - C:\ 드라이브
- /dev/sda2 - D:\ 드라이브리>
- /dev/sda3 - E:\ 드라이브리>
- /dev/sdb1 - F:\ 드라이브리>
- /dev/sdb2 - H:\ 드라이브리>
- /dev/sdb3 - Linux 루트(/)
- /dev/sdb4 - Linux 스왑
- /dev/sdb5 - Linux 홈(/home)
/drives 최상위 경로와 그 아래 디렉터리를 생성합니다(Windows 드라이브만 해당).
sudo mkdir /drives
sudo mkdir /drives/C
sudo mkdir /drives/D
...
이제 루트 또는 sudo로 /etc/fstab 파일의 백업을 만든 다음 텍스트 편집기(예:nano)에서 편집합니다.
sudo cp /etc/fstab /home/"사용자"/fstab-backup
sudo nano /etc/fstab
텍스트 편집기에서 Windows 드라이브에 마운트 지점을 추가합니다.
/dev/sda1 /drives/C ntfs-3g 기본값, locale=utf8 0 0
/dev/sda2 /drives/D ntfs-3g 기본값, locale=utf8 0 0
...
여기에 무엇이 있습니까?
- 마운트하려는 실제 장치/파티션을 지정합니다.
- 마운트 지점을 지정합니다.
- 파일 시스템을 지정합니다. 이 경우에는 ntfs-3g 파일 시스템 드라이버를 사용합니다(읽기/쓰기 액세스 권한 제공).
- 마운트 옵션을 지정합니다. 기본값과 UTF8 인코딩으로 간단하게 유지합니다.
- 마지막 두 필드(dump 및 fsck)를 0으로 설정하여 기존 Linux 작업에서 제외합니다.
다음은 내 시스템 중 하나의 실제 예입니다.
#
# /는 설치 중 /dev/nvme0n1p5에 있었습니다.
# /boot/efi는 /dev/nvme0n1p1에 있었습니다. 설치 중
UUID=7f4087e7-e572-44fd-a4a1-7489099937a0 / ext4 errors=remount-ro 0 1
UUID=C05A-951D /boot/efi vfat umask=0077 0 1
/swapfile 없음 스왑 sw 0 0
/dev/nvme0n1p3 /drives/C ntfs-3g defaults,locale=utf8 0 0
처음 세 개의 주석 처리되지 않은 항목은 루트(/), UEFI 시스템에 필요한 /boot/efi(VFAT 파일 시스템도 표시됨) 및 스왑 파티션이 아닌 스왑 파일을 포함하여 Linux 파일 시스템용 마운트 항목입니다.피>
네 번째 항목은 Windows 드라이브 추가입니다. 장치 식별자는 /dev/sdaXY가 아니라 /dev/nvmeXnYp3입니다. 그 이유는 시스템에 NVMe 하드 디스크가 있고 Linux 시스템이 IDE/SATA/SCSI 장치와 다르게 식별하기 때문입니다. 그러나 모든 실용적인 목적을 위해 표기법은 동일합니다.
우리가 가지고 있는 것은 첫 번째(0) NVMe 버스, 첫 번째(1) 장치, 세 번째(3) 파티션입니다. 다시 한 번, 장치와 파티션에 대한 표기법이 다르기 때문에 이전에 하드 디스크 관리에 대한 내 가이드와 GRUB 자습서를 참조하십시오. 따라서 위의 예에서는 NVMe 디스크의 사실상 세 번째 파티션인 Windows 파티션을 /drives/C 아래에 마운트합니다.
효과를 보기 위해 재부팅할 필요 없이 모든 것을 다시 마운트하기만 하면 됩니다.
sudo 마운트 -a
이제 Windows 드라이브가 해당 경로에 마운트되고 데이터를 볼 수 있습니다. 다음 단계는 마운트된 데이터를 더 쉽게 사용하고 액세스할 수 있도록 만드는 것입니다.
파일 관리자 및 Windows 드라이브
GUI(명령줄 아님)의 데이터를 사용하려면 다음 트릭을 수행할 수 있습니다.
- 마운트된 드라이브에 대한 홈 디렉터리의 심볼릭 링크를 만듭니다.
- 좀 더 구체적으로 말하면 Windows 드라이브 이름과 같이 의미 있는 식별자가 있는 폴더에 각 드라이브(문자)를 기호로 연결합니다.
ln -s /drives/C ~/Windows
위의 명령은 홈 디렉토리에 심볼릭 링크를 생성합니다. Windows는 C:\ 드라이브에 대한 마운트 지점인 /drives/C에 매핑됩니다. 따라서 Linux 파일 관리자에서 Windows 폴더를 클릭하면 Windows 드라이브의 내용이 표시됩니다.
이제 한 단계 더 나아가 이러한 드라이브에 대한 바로 가기를 만들 수 있습니다. 예를 들어 Plasma 데스크톱 환경에서 사이드바에 바로 가기를 추가할 수 있으므로 Windows는 /drives/C에 매핑되고 게임은 /drives/D에 매핑되고 데이터는 /drives/E에 매핑되는 식입니다. 다음 단계는 잠재적으로 흐름에 백업 작업을 추가하는 것이지만 이는 다른 자습서의 주제입니다.
결론
내 튜토리얼은 데이터 관리의 성배가 아닙니다. 그것과는 거리가 멀다. 그러나 사람들이 Windows에서 Linux로 전환하면서 직면할 수 있는 일반적인 문제에 대한 우아한 제안을 제공합니다. Windows 데이터를 가시적이고 직관적인 방식으로 표시하는 방법을 제공합니다. 파괴적인 작업은 포함하지 않습니다. 편리한 백업 및 데이터 분리가 가능합니다. 또한 Windows 워크플로에 익숙한 사람들이 친숙한 단서나 기존 워크플로를 타협하지 않고 새로운 환경에 천천히 적응할 수 있도록 합니다.
자체 경로에 탑재된 Windows 전용 드라이브, GUI 도구를 통해 편리하게 액세스할 수 있는 심볼릭 링크 및 논리적 매핑을 통해 이제 마이그레이션을 위한 훌륭하고 견고한 기반을 갖게 되었습니다. 다음 단계는 중요한 데이터가 백업되었는지 확인하는 것입니다. 백업이 없는 데이터는 비극이 일어나기를 기다리고 있기 때문입니다. 후속 기사에서 다른 많은 실용적인 일상적인 팁뿐만 아니라 이에 대해서도 다룰 것입니다. 지금은 위에서 설명한 데이터 체계에 대해 조금 생각해 보십시오. 추가 프로그램 설정 가이드를 계속 지켜봐 주시기 바랍니다. 곧 뵙겠습니다.
건배.