Profile picture

[Linux] 리눅스 512GB HDD -> 2TB HDD 마이그레이션 (GParted, rsync)

JaehyoJJAng2024년 07월 20일

개요

집에서 구형 PC를 리눅스 시스템으로 운용 중인데 높은 용량의 남는 HDD가 생겨서

기존 구형 PC에 장착된 512GB HDD를 2TB HDD로 마이그레이션 하는 작업을 진행해보려고 한다.

꽤 오랜시간 삽질을 했는데, 삽질을 하면서 시도한 여러 마이그레이션 방법을 기록해보겠다.


기존 데이터 삭제

마이그레이션 대상인 2TB HDD는 아래 명령을 사용해 기존 데이터를 모두 삭제하였다.(중요한 데이터가 있다면, 백업을 해놓는 것을 권장)

sudo dd if=/dev/zero of=/dev/sdb bs=1M status=progress

rsync

  • 서버 구성
    • 현재 512GB HDD가 /dev/sda로 마운트되어 있으며, 2TB HDD는 새로 장착되어 /dev/sdb로 인식되고 있음.
  • 파티션과 파일 시스템
    • 512GB HDD에는 /dev/sda1에 단일 파티션이 있고, 이 파티션에 ext4 파일 시스템이 구성되어 있음.
    • 마이그레이션 후, 2TB HDD에도 동일한 파일 시스템을 사용하여 데이터를 마이그레이션 해야함.
  • 백업 및 준비
    • 데이터 손실을 방지하기 위해 마이그레이션 전에 중요한 데이터를 백업.
  • 데이터 무결성
    • rsync를 사용하여 데이터 전송 중 데이터 무결성을 보장.

1. 구성 방법

1-1. 새 HDD 장착 및 확인

  • 2TB HDD를 서버에 장착.
  • lsblk 또는 fdisk -l 명령어를 사용하여 장착된 디스크가 인식되는지 확인
sudo lsblk
sudo fdisk -l

1-2. 새 디스크 파티션 생성 및 포맷

  • gdisk 또는 fdisk를 사용하여 2TB HDD를 GPT로 설정하고 새로운 파티션을 생성
sudo gdisk /dev/sdb

...
# 필요한 파티션 생성 후 저장

  • 파티션 생성 후, mkfs.ext4를 사용하여 생성한 파티션의 파일 시스템을 포맷
sudo mkfs.ext4 /dev/sdb1

1-3. 새 파티션을 마운트

  • 새로 생성한 파티션(/dev/sdb1)을 /mnt/new_drive에 마운트
sudo mkdir /mnt/new_drive
sudo mount /dev/sdb1 /mnt/new_drive

1-4. rsync를 사용한 데이터 마이그레이션 진행

  • rsync를 사용하여 모든 데이터를 512GB HDD에서 2TB HDD로 복사.
  • rsync는 데이터 무결성을 보장하며, 전송 중에 문제가 발생하더라도 재시도를 통해 안전한 데이터 전송이 가능함.
sudo rsync -avxHAX / /mnt/new_drive
  • 주요 옵션
    • -a: 아카이브 모드, 심볼릭 링크, 장치 파일, 속성 등을 유지
    • -v: 복사 진행 상황 출력
    • -x: 동일한 파일 시스템 내에서만 복사
    • -H: 하드 링크 유지
    • -A: ACL 유지
    • -X: 확장 속성 유지

1-5. fstab 업데이트

  • 마이그레이션이 완료되면 /mnt/new_drive/etc/fstab 파일을 열어 /에 대한 기존 엔트리를 새 디스크의 UUID로 변경
sudo blkid /dev/sdb1 # 새 파티션의 UUID 조회 

  • fstab 파일에서 /dev/sda1로 된 기존 엔트리를 /dev/sdb1의 UUID로 변경
UUID=new-uuid-value / ext4 defaults 0 0

1-6. GRUB 업데이트

  • 새 디스크에 대한 부팅 설정 업데이트
sudo mount --bind /dev /mnt/new_drive/dev
sudo mount --bind /proc /mnt/new_drive/proc
sudo mount --bind /sys /mnt/new_drive/sys
sudo chroot /mnt/new_drive
update-grub
exit

1-7. 시스템 종료 및 디스크 교체

  • 시스템을 종료하고 기존 512GB HDD를 제거한 후, 2TB HDD를 /dev/sda로 연결
  • 시스템 재부팅

GParted

  • 우분투 22.04 LTS Live CD에는 gparted가 기본 설치되어 있음.
    • OS 설치 후에는 별도 설치 필요

2. 구성 방법

2-1. Live CD/USB 준비 및 부팅

  • 우분투 설치 시 사용했던 설치 USB로 부팅
  • 부팅 옵션에서 Try Ubuntu without installing과 같은 항목을 선택하여 Live 환경으로 접속

2-2. GParted 실행

  • Live 환경에서 GParted를 실행

2-3. 디스크 확인

  • GParted가 실행되면, 오른쪽 상단에서 드롭다운 메뉴를 통해 시스템에 연결된 디스크들을 확인할 수 있다.
  • /dev/sda는 기존 512GB HDD 일 것이며, /dev/sdb는 새로 장착된 2TB HDD일 것이다.

2-4. 512GB HDD 파티션 복사

  • 512GB HDD의 파티션을 선택하고, 메뉴에서 Copy를 선택
  • 그리고 2TB HDD로 전환하여, 빈 공간에 파티션을 Paste.

2-5. 파티션 크기 조정

  • 512GB HDD에서 복사된 파티션은 원래 크기로 복사되므로, 2TB HDD의 전체 용량을 활용하기 위해 파티션 크기를 조정해야한다.
  • 새로 복사한 파티션을 선택하고, Resize/Move를 선택하여, 파티션을 최대 크기로 확장.

2-6. 적용

  • 모든 작업이 준비되었다면, GParted 상단의 Apply All Operations 버튼을 클릭하여 파티션 복사 및 크기 조정 작업을 적용.
  • 시간이 걸릴 수 있음.

Loading script...