Linux에서 홈 디렉토리를 새 파티션 또는 디스크로 이동하는 방법
Linux 시스템에서 확실히 크기가 커질 디렉토리 중 하나는 /home
디렉토리 여야합니다. 이는 시스템 계정 (사용자) 디렉토리가 루트 계정을 제외하고/home에 상주하기 때문입니다. 여기서 사용자는 문서와 기타 파일을 지속적으로 저장합니다.
동일한 동작을하는 또 다른 중요한 디렉토리는 /var
이며, 여기에는 로그 파일, 웹 파일, 인쇄 스풀 파일 등과 같이 시스템이 계속 실행됨에 따라 크기가 점차 증가하는 로그 파일이 포함되어 있습니다.
이러한 디렉토리가 가득 차면 루트 파일 시스템에 심각한 문제가 발생하여 시스템 부팅 실패 또는 기타 관련 문제가 발생할 수 있습니다. 그러나 때로는 시스템을 설치하고 루트 파일 시스템/파티션의 모든 디렉토리를 구성한 후에 만이를 알 수 있습니다.
이 가이드에서는 홈 디렉토리를 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 – option to specify the partition alignment.
- mkpart – sub command to create the partition.
- primary – sets partition type as primary on the hard disk (other values are logical or extended).
- 1074MB – beginning of partition.
- 107GB – end of partition.
이제 다음과 같이 디스크의 여유 공간을 확인하십시오.
# 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과 같은 대상 디렉토리 인 마운트 지점의 루트 파일 시스템에 마운트해야합니다.
먼저 시스템에서 df 명령을 사용하여 파일 시스템 사용량을 나열합니다.
# df -l

당분간/dev/sdb1을 마운트 할 수있는 새 디렉토리/srv/home을 만드는 것으로 시작합니다.
# mkdir -p /srv/home # mount /dev/sdb1 /srv/home
그런 다음 rsync 명령 또는 cp 명령을 사용하여/home의 내용을/srv/home으로 이동합니다 (실제로는/dev/sdb1에 저장 됨).
# 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 – specifies the block device, you can alternatively use the device file /dev/sdb1.
- /home – this is the mount point.
- etx4 – describes the filesystem type on the device/partition.
- defaults – mount options, (here this value means rw, suid, dev, exec, auto, nouser, and async).
- 0 – used by dump tool, 0 meaning don’t dump if filesystem is not present.
- 2 – used by fsck tool for discovering filesystem check order, this value means check this device after root filesystem.
파일을 저장하고 시스템을 재부팅하십시오.
다음 명령을 실행하여/home 디렉토리가 전용 파티션으로 성공적으로 이동되었는지 확인할 수 있습니다.
# df -hl

지금은 끝입니다! "Linux 파일 시스템에 대해 자세히 알아 보려면 Linux에서 파일 시스템 관리와 관련된이 가이드를 읽어보십시오.
- How to Delete User Accounts with Home Directory in Linux
- What is Ext2, Ext3 & Ext4 and How to Create and Convert Linux File Systems
- 7 Ways to Determine the File System Type in Linux (Ext2, Ext3 or Ext4)
- How to Mount Remote Linux Filesystem or Directory Using SSHFS Over SSH
이 가이드에서는/home 디렉토리를 Linux의 전용 파티션으로 이동하는 방법을 설명했습니다. 아래 의견 양식을 통해이 기사에 대한 의견을 공유 할 수 있습니다.