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

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

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

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

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

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

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

드라이브 식별

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

fdisk 명령은 드라이브 및 해당 파티션 나열 우리를 위해.

sudo fdisk -l

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

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

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

sudo fdisk /dev/sdb

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

  모두가 설치해야 하는 9가지 최고의 Linux 홈 서버 앱

드라이브가 이 테스트 머신에서 예상한 것과 일치하는 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 mount /dev/sdb1 /mnt

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

cd /mnt

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

ls -ahl

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

sudo rm -rf lost+found

홈 폴더 복사

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

sudo cp -rp /home/* /mnt

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

ls
ls dave

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

sudo mv /home /home.orig

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

sudo mkdir /home

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

sudo umount /dev/sdb1
sudo mount /dev/sdb1 /home/

새 홈 디렉토리 테스트

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

df /dev/sdb1

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

  Android와 Linux 간에 무선으로 파일을 공유하는 방법

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

cd /
cd ~
pwd
ls

cd /home
ls
cd dave
ls
ls -a

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

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

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

fstab 편집

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

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

이제 fstab 파일을 편집할 수 있습니다.

sudo gedit /etc/fstab

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

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

fstab 파일을 저장합니다.

시스템 재부팅

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

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

sudo reboot now

최종 점검

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

df /dev/sdb1

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

  Scrot으로 Linux 터미널에서 스크린샷을 찍는 방법

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

cd /
sudo rm -rf home.orig/

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

집이 좋아

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

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

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