Linux에서 홈 디렉터리를 새 파티션이나 디스크로 이동하는 방법
모든 Linux 시스템에서 확실히 크기가 커지는 디렉터리 중 하나는 /home
디렉터리입니다. 이는 시스템 계정(사용자) 디렉터리가 루트 계정을 제외하고 /home에 상주하기 때문입니다. 여기서 사용자는 문서 및 기타 파일을 계속 저장하게 됩니다.
동일한 동작을 하는 또 다른 중요한 디렉토리는 /var
입니다. 여기에는 로그 파일, 웹 파일, 인쇄 스풀 파일 등과 같이 시스템이 계속 실행됨에 따라 크기가 점차 증가하는 로그 파일이 포함되어 있습니다.
이러한 디렉터리가 가득 차면 루트 파일 시스템에 심각한 문제가 발생하여 시스템 부팅 오류 또는 기타 관련 문제가 발생할 수 있습니다. 그러나 시스템을 설치하고 루트 파일 시스템/파티션의 모든 디렉터리를 구성한 후에만 이를 알 수 있는 경우도 있습니다.
권장 읽기: Linux 디렉터리 구조 및 중요한 파일 경로 설명
이 가이드에서는 홈 디렉터리를 Linux의 새 스토리지 디스크에 있는 전용 파티션으로 이동하는 방법을 보여줍니다.
Linux에서 새 하드 디스크 설치 및 파티션하기
더 진행하기 전에 기존 Linux 서버에 새 하드 디스크를 추가하는 방법을 간략하게 설명하겠습니다.
참고: 작업을 위한 파티션이 이미 준비되어 있는 경우 /home
디렉토리를 다음 단계로 이동하는 단계를 설명하는 섹션으로 이동하세요. 아래에 자체 파티션이 있습니다.
새 디스크를 시스템에 연결했다고 가정하겠습니다. 하드 디스크에서 생성할 파티션 수와 파티션 테이블은 일반적으로 디스크 레이블 유형에 따라 결정되며 공간의 처음 몇 바이트는 MBR(마스터 부트 레코드)을 정의합니다. ) 파티션 테이블과 부트로더(부팅 가능한 디스크용)를 저장합니다.
레이블 유형은 다양하지만 Linux에서는 MSDOS MBR(크기 516바이트) 또는 GPT(GUID 파티션 테이블)의 두 가지만 허용합니다. MBR.
또한 이 가이드의 목적으로 사용되는 270GB 크기의 새 하드 디스크(/dev/sdb)를 가정해 보겠습니다. 대규모 사용자 기반.
먼저 fdisk 또는 parted를 사용하여 디스크 레이블 유형을 설정해야 합니다. 이 예에서는 GPT 라벨 이름을 사용했습니다.
parted /dev/sdb mklabel gpt
참고: fdisk는 현재 MSDOS MBR만 지원하며 parted는 두 레이블을 모두 지원합니다.
이제 106GB 크기의 첫 번째 파티션(/dev/sdb1)을 만듭니다. MBR을 위해 1024MB의 공간을 예약했습니다.
parted -a cylinder /dev/sdb mkpart primary 1074MB 107GB
위의 명령을 설명하면 다음과 같습니다.
- a – 파티션 정렬을 지정하는 옵션입니다.
- mkpart – 파티션을 생성하는 하위 명령입니다.
- 기본 – 파티션 유형을 하드 디스크의 기본으로 설정합니다(다른 값은 논리 또는 확장임).
- 1074MB – 파티션의 시작.
- 107GB – 파티션 끝.
이제 다음과 같이 디스크의 여유 공간을 확인하십시오.
parted /dev/sdb print free
154GB 크기의 다른 파티션(/dev/sdb2)을 생성하겠습니다.
parted -a cylinder /dev/sdb mkpart primary 115GB 268GB
다음으로 각 파티션의 파일 시스템 유형을 설정해 보겠습니다.
mkfs.ext4 /dev/sdb1
mkfs.xfs /dev/sdb2
시스템에 연결된 모든 저장 장치를 보려면 다음을 입력합니다.
parted -l
홈 디렉토리를 전용 파티션으로 이동
이제 새 디스크를 추가하고 필요한 파티션을 만들었습니다. 이제 home 폴더를 파티션 중 하나로 이동할 차례입니다. 파일 시스템을 사용하려면 마운트 지점(/home과 같은 대상 디렉터리)에서 루트 파일 시스템에 마운트해야 합니다.
먼저 시스템에서 df 명령을 사용하여 파일 시스템 사용량을 나열하십시오.
df -l
당분간 /dev/sdb1을 마운트할 수 있는 새 디렉터리 /srv/home을 만드는 것부터 시작하겠습니다.
mkdir -p /srv/home
mount /dev/sdb1 /srv/home
그런 다음 rsync 명령을 사용하여 /home의 콘텐츠를 /srv/home으로 이동합니다(실질적으로 /dev/sdb1에 저장됨). cp 명령.
rsync -av /home/* /srv/home/
OR
cp -aR /home/* /srv/home/
그런 다음 diff 도구를 사용하여 두 디렉터리 간의 차이점을 찾습니다. 모든 것이 정상이면 다음 단계를 계속합니다.
diff -r /home /srv/home
이후 다음과 같이 /home에 있는 기존 콘텐츠를 모두 삭제합니다.
rm -rf /home/*
다음으로 /srv/home을 마운트 해제합니다.
umount /srv/home
마지막으로, 그동안 파일 시스템 /dev/sdb1을 /home에 마운트해야 합니다.
mount /dev/sdb1 /home
ls -l /home
위의 변경 사항은 현재 부팅에만 적용됩니다. 변경 사항을 영구적으로 적용하려면 /etc/fstab에 아래 줄을 추가하세요.
다음 명령을 사용하여 UUID 파티션을 가져옵니다.
blkid /dev/sdb1
/dev/sdb1: UUID="e087e709-20f9-42a4-a4dc-d74544c490a6" TYPE="ext4" PARTLABEL="primary" PARTUUID="52d77e5c-0b20-4a68-ada4-881851b2ca99"
파티션 UUID를 알고 나면 /etc/fstab 파일을 열고 다음 줄을 추가합니다.
UUID=e087e709-20f9-42a4-a4dc-d74544c490a6 /home ext4 defaults 0 2
위 줄의 필드를 설명하면 다음과 같습니다.
- UUID – 블록 장치를 지정합니다. 대신 장치 파일 /dev/sdb1을 사용할 수도 있습니다.
- /home – 마운트 지점입니다.
- etx4 – 기기/파티션의 파일 시스템 유형을 설명합니다.
- 기본값 – 마운트 옵션(여기서 이 값은 rw, suid, dev, exec, auto, nouser 및 async를 의미함)
- 0 – 덤프 도구에서 사용됩니다. 0은 파일 시스템이 없으면 덤프하지 않음을 의미합니다.
- 2 – fsck 도구에서 파일 시스템 검사 순서를 검색하는 데 사용됩니다. 이 값은 루트 파일 시스템 이후에 이 장치를 검사한다는 의미입니다.
파일을 저장하고 시스템을 재부팅하십시오.
다음 명령을 실행하면 /home 디렉터리가 전용 파티션으로 성공적으로 이동되었는지 확인할 수 있습니다.
df -hl
지금은 그게 다야! Linux 파일 시스템에 대해 더 자세히 이해하려면 Linux의 파일 시스템 관리와 관련된 가이드를 읽어보세요.
- Linux에서 홈 디렉토리가 있는 사용자 계정을 삭제하는 방법
- Ext2, Ext3 & Ext4란 무엇이며 Linux 파일 시스템을 생성하고 변환하는 방법
- Linux(Ext2, Ext3 또는 Ext4)에서 파일 시스템 유형을 결정하는 7가지 방법
- SSH를 통해 SSHFS를 사용하여 원격 Linux 파일 시스템 또는 디렉터리를 마운트하는 방법
이 가이드에서는 /home 디렉토리를 Linux의 전용 파티션으로 이동하는 방법을 설명했습니다. 아래 댓글 양식을 통해 이 기사에 관한 의견을 공유할 수 있습니다.