웹사이트 검색

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의 파일 시스템 관리와 관련된 가이드를 읽어보세요.

  1. Linux에서 홈 디렉토리가 있는 사용자 계정을 삭제하는 방법
  2. Ext2, Ext3 & Ext4란 무엇이며 Linux 파일 시스템을 생성하고 변환하는 방법
  3. Linux(Ext2, Ext3 또는 Ext4)에서 파일 시스템 유형을 결정하는 7가지 방법
  4. SSH를 통해 SSHFS를 사용하여 원격 Linux 파일 시스템 또는 디렉터리를 마운트하는 방법

이 가이드에서는 /home 디렉토리를 Linux의 전용 파티션으로 이동하는 방법을 설명했습니다. 아래 댓글 양식을 통해 이 기사에 관한 의견을 공유할 수 있습니다.