Linux 홈 디렉토리를 다른 드라이브로 이동하는 방법

게시 됨: 2022-01-29
양식화된 노트북의 Linux 터미널
Fatmawati Achmad Zaenuri/Shutterstock

Linux 홈 폴더를 다른 드라이브로 옮기고 싶습니까? 다음은 모든 배포판에서 작동해야 하는 간단하고 단계별 방법입니다. 홈 폴더를 이동하면 Linux를 다시 설치할 수 있고 개인 파일에 대해 걱정할 필요가 없습니다.

홈 폴더를 별도로 유지하는 이유는 무엇입니까?

새 컴퓨터를 설정하거나 기존 컴퓨터에 하드 드라이브를 추가하는 경우 기본 위치가 아닌 다른 드라이브에 홈 디렉터리를 원할 수 있습니다.

최신 개인용 컴퓨터에서 점점 더 인기 있는 구성은 운영 체제를 저장하는 중간 크기의 SSD(Solid State Drive)와 데이터의 기본 저장소로 더 큰 SSD(Solid State Hybrid Drive) 또는 기존 하드 드라이브(HD)를 사용하는 것입니다. 또는 시스템에 기존의 단일 하드 드라이브가 있고 스토리지 증가를 위해 새 HD를 추가했을 수 있습니다. 이유가 무엇이든, 여기 홈 디렉토리를 이동하는 간단하고 일격적인 방법이 있습니다.

그건 그렇고, Linux 시스템을 처음부터 설치하는 경우 Linux 배포의 설치 프로그램에 별도의 홈 디렉토리를 만드는 옵션이 표시될 것입니다. 일반적으로 파티션 옵션으로 이동하여 별도의 파티션을 만들고 "/home"에 마운트하기만 하면 됩니다. 그러나 이미 Linux 배포판을 설치했다면 이 지침을 사용하여 아무 것도 잃지 않고 운영 체제를 다시 설치하지 않고도 현재 홈 디렉토리를 새 위치로 이동할 수 있습니다.

이제 시작하기 전에 백업을 하십시오.

관련: rsync를 사용하여 Linux 시스템을 백업하는 방법

드라이브 식별

Linux 컴퓨터에 드라이브를 장착했거나 새 다중 드라이브 컴퓨터의 드라이브 중 하나에 Linux를 설치하고 재부팅했다면 새 드라이브가 있다는 증거가 거의 없습니다.

광고

fdisk 명령은 드라이브와 파티션을 나열합니다.

 sudo fdisk -l 

새 드라이브를 식별할 때까지 출력을 스크롤하십시오. 첫 번째 드라이브 이름은 /dev/sda , 두 번째 드라이브 이름은 /dev/sdb 등이며 마지막 문자는 매번 증가합니다. 따라서 /dev/sde 는 시스템의 다섯 번째 하드 드라이브가 됩니다.

이 예에서 새 드라이브는 시스템에 장착할 두 번째 드라이브입니다. 따라서 /dev/sdb 에 대한 항목을 찾아야 합니다.

/dev/sdb 는 위에서 강조 표시되어 있습니다. 파티션을 설명하는 줄이 없다는 것을 알 수 있습니다. 새 드라이브이므로 아직 없습니다. 파티션을 만들어야 합니다. fdisk 를 사용하여 그렇게 할 수 있습니다. 하드 드라이브가 /dev/sdb 가 아니면 명령에서 /dev/ /dev/sdb 를 새 하드 드라이브의 실제 드라이브 식별자로 대체해야 합니다.

 sudo fdisk /dev/sdb 

fdisk 가 명령을 묻는 메시지를 표시하면 문자 p 를 누릅니다. 이렇게 하면 하드 드라이브의 파티션 테이블이 인쇄됩니다. 우리는 그것이 없을 것이라는 것을 알고 있지만 드라이브에 대한 몇 가지 유용한 정보를 얻습니다. 파티션을 만들 드라이브가 작업하려는 드라이브인지 확인할 수 있는 좋은 기회를 제공합니다.

드라이브가 이 테스트 머신에서 예상한 것과 일치하는 1TB 드라이브임을 알려주므로 계속 진행하겠습니다.

파티션 생성

새 파티션의 경우 문자 n 을 누르고 주 파티션의 경우 p 를 누릅니다. 파티션 번호를 묻는 메시지가 나타나면 숫자 1 을 누르십시오.

광고

전체 디스크에 대해 단일 파티션을 만들 것이므로 첫 번째 섹터를 묻는 메시지가 표시되면 Enter 키를 눌러 기본값을 적용할 수 있습니다. 그런 다음 마지막 섹터를 입력하라는 메시지가 표시되고 Enter 키를 누르면 기본값이 적용됩니다.

fdisk 는 파티션 번호 1인 1TB Linux 파티션을 생성했음을 확인했지만 아직 하드 드라이브에서 변경된 사항은 없습니다. 드라이브에 변경 사항을 기록하라는 명령을 fdisk 에 제공할 때까지 드라이브는 변경되지 않습니다. 선택 사항에 만족하면 문자 w 를 눌러 드라이브에 변경 사항을 기록하십시오.

파티션이 /dev/sdb 에 기록되었습니다. 방금 무슨 일이 일어났는지 확인해 봅시다. /dev/sdb 에서 fdisk 를 한 번 더 사용할 것입니다.

 sudo fdisk /dev/sdb 

문자 p 를 눌러 해당 파티션 테이블을 인쇄하면 현재 드라이브에 대해 나열된 파티션이 있음을 알 수 있습니다. 이 드라이브의 첫 번째 파티션이기 때문에 /dev/sdb1 이라고 합니다. 두 번째 파티션은 /dev/sdb2 라고 하는 식입니다.

파티션을 변경하고 싶지 않으므로 q 를 눌러 종료하십시오.

파티션에 파일 시스템 생성

파티션에 파일 시스템을 생성해야 합니다. 이것은 mkfs 명령으로 쉽게 달성됩니다. 명령에 파티션 번호를 포함해야 합니다. /dev/sdb /dev/sdb1 (파티션)을 입력하도록 주의하십시오.

 sudo mkfs -t ext4 /dev/sdb1 

광고

파일 시스템이 생성되고 명령 프롬프트로 돌아갑니다.

새 드라이브 장착

새 드라이브를 사용하려면 파티션을 파일 시스템의 마운트 지점에 마운트해야 합니다. 사실, 완벽하게 정확하기 위해 우리는 드라이브나 파티션을 마운트하지 않고 시스템의 파일 시스템 트리에 접목하여 파티션에 파일 시스템 을 마운트합니다.

/mnt 지점은 어느 곳보다 좋은 곳입니다. 데이터를 새 드라이브에 복사할 수 있는 임시 마운트 지점일 뿐입니다. 우리는 mount 명령을 사용하여 /dev/sdb/mnt 에 있는 첫 번째 파티션에 파일 시스템을 마운트할 것입니다.

 sudo 마운트 /dev/sdb1 /mnt 

모든 것이 잘되면 오류 메시지 없이 명령줄로 돌아갑니다. 새로 마운트된 파일 시스템으로 디렉토리를 변경할 수 있는지 봅시다.

 cd /mnt 

그래 우리는 할 수있어. 여기에 무엇이 있는지 봅시다.

 ls -ahl 

우리는 새로운 파일 시스템에 있습니다. 기본 "lost+found" 디렉토리는 필요하지 않으므로 제거할 수 있습니다.

 sudo rm -rf 분실+발견 

홈 폴더 복사

이전 홈 디렉토리에서 새로 마운트된 파일 시스템으로 모든 것을 복사해야 합니다. r (재귀) 및 p (보존) 옵션을 사용하면 모든 하위 디렉토리가 복사되고 파일 소유권, 권한 및 기타 속성이 유지됩니다.

 sudo cp -rp /home/* /mnt 

광고

복사가 완료되면 ls 를 사용하여 둘러보고 데이터가 새 파일 시스템에서 예상한 위치에 있는지 확인합니다. 즉, /mnt 가 홈 디렉토리인 경우 모든 것이 존재하고 정확합니까?

 데이브 

당신은 아마도 우리가 이 기사에서 조사한 테스트 머신보다 좀 더 철저하기를 원할 것입니다. 안전망으로서 우리는 당신이 그것을 삭제하는 것이 안전하다고 만족할 때까지 당신의 이전 /home 디렉토리의 이름을 바꾸고 유지할 것입니다.

 sudo mv /home /home.orig 

그리고 우리는 비어 있는 새로운 홈 디렉토리를 생성할 것입니다.

 sudo mkdir /home 

새 하드 드라이브의 파일 시스템에 대한 마운트 지점으로 새 빈 홈 디렉토리를 사용합니다. /mnt 에서 마운트 해제하고 /home 에 다시 마운트해야 합니다. umount 명령은 "u" 뒤에 "n"이 없습니다.

그러나 먼저 루트 디렉토리( cd / 사용)로 변경하여 마운트 또는 마운트 해제 위치에 포함될 디렉토리에 있지 않은지 확인합니다.

 CD /
 sudo 마운트 해제 /dev/sdb1
 sudo 마운트 /dev/sdb1 /home/ 

관련: Linux 디렉토리 구조, 설명

새 홈 디렉토리 테스트

이제 /dev/sdb1 파티션의 속성이 무엇인지 봅시다:

 df /dev/sdb1 

광고

파일 시스템의 이름, 파티션의 크기, 사용된 공간 및 사용 가능한 공간, 그리고 중요한 것은 마운트된 위치가 표시됩니다. 이제 /home 디렉토리입니다. 그것은 우리가 예전의 /home 디렉토리에서 했던 것처럼 정확히 그것을 참조할 수 있어야 한다는 것을 의미합니다.

파일 시스템의 임의의 지점으로 이동하면 ~ 물결표 바로 가기를 사용하여 /home 으로 다시 변경할 수 있어야 합니다.

 CD /
 CD ~
 암호

 CD / 홈
 CD 데이브
 ls -a 

명시적 명령과 ~ 바로 가기를 사용하여 파일 시스템을 앞뒤로 /home 으로 이동할 수 있습니다. 우리가 기대하는 폴더, 파일 및 도트 파일이 모두 있습니다. 모든 것이 좋아 보입니다.

누락된 것이 있으면 /home.orig 디렉토리에서 복사할 수 있습니다. 이 디렉토리는 여전히 파일 시스템의 루트에서 액세스할 수 있습니다. 하지만 모두 괜찮아 보입니다.

이제 컴퓨터가 시작될 때마다 /dev/sdb1 을 자동으로 마운트해야 합니다.

fstab 편집

"fstab" 파일에는 시스템이 부팅될 때 마운트될 파일 시스템에 대한 설명이 들어 있습니다. 변경하기 전에 문제가 발생할 경우 반환할 수 있도록 백업 복사본을 만들 것입니다.

 sudo cp /etc/fstab /etc/fstab.orig 

광고

이제 fstab 파일을 편집할 수 있습니다. 좋아하는 편집기를 사용하십시오. 우리는 gedit 를 사용하고 있습니다. 모든 텍스트 편집기가 작동합니다.

 sudo gedit /etc/fstab 

/home 디렉토리를 마운트하려면 파일 맨 아래에 행을 추가해야 합니다. 드라이브 및 파티션 식별자가 이 예에서 사용된 것과 다른 경우 여기에 표시된 /dev/sdb1 을 대체하십시오.

  • 줄 시작 부분에 파티션 이름을 입력한 다음 Tab 키를 누릅니다.
  • 마운트 지점 /home 을 입력하고 Tab 키를 누릅니다.
  • 파일 시스템 설명 ext4 를 입력하고 Tab 키를 누릅니다.
  • 마운트 옵션의 defaults 을 입력하고 Tab 키를 누릅니다.
  • 파일 시스템 덤프 옵션에 숫자 0 을 입력하고 Tab 키를 누릅니다.
  • 파일 시스템 검사 옵션에 숫자 0 을 입력합니다.

gedit를 사용하여 fstab 파일 편집

fstab 파일을 저장합니다.

시스템 재부팅

모든 것이 계획대로 진행되었고 새 /home 디렉토리에 원활하게 연결되었는지 확인하기 위해 재부팅해야 합니다.

그렇지 않은 경우 원래 /home 디렉토리의 안전망과 필요한 경우 복원할 수 있는 fstab 파일이 있습니다. 우리가 취한 예방 조치( /home 디렉토리 및 fstab 파일 복사)로 인해 시스템을 시작하기 전의 상태로 쉽게 되돌릴 수 있습니다.

 sudo 지금 재부팅 

관련: 명령줄을 사용하여 Linux를 재부팅하거나 종료하는 방법

최종 점검

시스템이 다시 시작되면 /home 디렉토리가 실제로 새 하드 드라이브에 있고 시스템이 어떻게든 (기적적으로) 이전 /home 디렉토리를 사용하도록 되돌아가지 않았는지 확인합시다.

 df /dev/sdb1 

좋습니다. /home 에 마운트되었습니다. 임무 완수.

이전 /home 디렉토리의 안전 사본이 더 이상 필요하지 않다고 완전히 확신하면 삭제할 수 있습니다.

 CD /
 sudo rm -rf home.orig/ 

광고

물론 이전 /home 에서 새 /home 으로 복사 되지 않은 항목이 있다는 것을 알게 되면 시작하기 전에 만든 백업에서 해당 항목을 검색할 수 있습니다.

집이 좋아

이제 /home 디렉토리를 나머지 운영 체제 파티션에서 분리했으므로 운영 체제를 다시 설치할 수 있으며 데이터는 그대로 유지됩니다. /home 에 두 번째 드라이브를 마운트하도록 fstab 파일을 편집하기만 하면 됩니다.

그리고 모든 도트 파일이 /home 디렉토리에 있기 때문에 다양한 응용 프로그램을 실행하면 모든 설정, 기본 설정 및 데이터를 찾을 수 있습니다.

재설치의 고통을 덜어주고 업그레이드의 위험을 덜어줍니다.

관련: 개발자 및 열광자를 위한 최고의 Linux 노트북