Linux 홈 디렉토리를 다른 드라이브로 이동하는 방법
게시 됨: 2022-01-29Linux 홈 폴더를 다른 드라이브로 옮기고 싶습니까? 다음은 모든 배포판에서 작동해야 하는 간단하고 단계별 방법입니다. 홈 폴더를 이동하면 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
을 입력합니다.
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
디렉토리에 있기 때문에 다양한 응용 프로그램을 실행하면 모든 설정, 기본 설정 및 데이터를 찾을 수 있습니다.
재설치의 고통을 덜어주고 업그레이드의 위험을 덜어줍니다.
리눅스 명령어 | ||
파일 | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · 보기 · 문자열 · 유형 · 이름 바꾸기 · zip · 압축 풀기 · 마운트 · 언마운트 · 설치 · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · 패치 · 변환 · rclone · 파쇄 · srm | |
프로세스 | alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · yes · kill · sleep · sudo · su · time · groupadd · usermod · groups · lshw · 종료 · 재부팅 · 정지 · poweroff · passwd · lscpu · crontab · 날짜 · bg · fg | |
네트워킹 | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
관련: 개발자 및 열광자를 위한 최고의 Linux 노트북