
macOS에서 Raspberry Pi microSD 카드를 16GB에서 512GB로 교체하는 방법
macOS의 dd 명령어로 기존 Raspberry Pi microSD 카드를 이미지로 백업하고 더 큰 카드에 복원하는 방법을 설명합니다. 운영체제와 설정을 유지한 채 16GB에서 512GB로 이전하고 파일시스템을 확장하는 전체 과정을 확인할 수 있습니다.
Hyuk · · 7분 · DevOps
라즈베리파이를 사용하다 보면 처음에는 작은 용량의 microSD 카드로 충분하지만, Docker 컨테이너나 자동화 프로그램, 데이터베이스 등을 설치하면서 저장 공간이 부족해질 수 있습니다.
이럴 때 Raspberry Pi OS를 처음부터 다시 설치할 필요는 없습니다.
기존 microSD 카드를 이미지 파일로 통째로 백업한 다음 더 큰 microSD 카드에 복원하면 운영체제와 설정, 설치한 프로그램 등을 그대로 유지하면서 저장 공간만 확장할 수 있습니다.
이번 글에서는 macOS를 이용해 기존 16GB microSD 카드를 512GB microSD 카드로 교체하는 방법을 알아보겠습니다.
주의:
dd명령어는 디스크를 직접 읽고 쓰기 때문에 디스크 번호를 잘못 지정하면 다른 디스크의 데이터가 삭제될 수 있습니다. 반드시diskutil list에서 대상 디스크의 용량을 확인한 후 진행해야 합니다.
1. 전체 작업 과정
전체 과정은 다음과 같습니다.
기존 16GB microSD
↓
Mac에 연결
↓
전체 디스크 이미지 백업
↓
raspberrypi-backup.img
↓
새 512GB microSD 연결
↓
이미지 전체 복원
↓
Raspberry Pi에서 부팅
↓
파티션 및 파일시스템 확장
↓
512GB 전체 용량 사용이 방법의 장점은 기존 Raspberry Pi 환경을 다시 구축하지 않아도 된다는 것입니다.
기존의 Raspberry Pi OS뿐 아니라 사용자 계정, SSH 설정, 네트워크 설정, 설치한 패키지, Docker 환경과 각종 설정 파일 등도 함께 복제됩니다.
2. Raspberry Pi를 정상적으로 종료하기
microSD 카드를 바로 제거하지 말고 먼저 Raspberry Pi를 정상 종료합니다.
sudo shutdown -h nowRaspberry Pi가 완전히 종료되면 전원을 분리하고 기존 microSD 카드를 꺼냅니다.
3. 기존 microSD를 Mac에 연결하기
기존 microSD 카드를 Mac에 연결한 다음 터미널에서 다음 명령어를 실행합니다.
diskutil list여러 디스크가 표시됩니다.
예를 들어 기존 16GB microSD가 다음과 같이 표시됐다고 가정하겠습니다.
/dev/disk4여기서 가장 중요한 것은 디스크 번호만 보고 판단하지 말고 용량까지 확인하는 것입니다.
disk4라는 번호는 컴퓨터 환경이나 연결 순서에 따라 달라질 수 있습니다.
4. microSD 언마운트하기
디스크 번호를 확인했다면 다음과 같이 언마운트합니다.
diskutil unmountDisk /dev/disk4정상적으로 처리되면 디스크의 볼륨은 Finder에서 사라지지만 물리적인 SD 카드는 Mac에 계속 연결된 상태입니다.
5. 기존 16GB microSD 전체 백업하기
이제 dd 명령어를 사용하여 microSD 전체를 이미지 파일로 만듭니다.
먼저 Desktop으로 이동합니다.
cd ~/Desktop그리고 다음 명령어를 실행합니다.
sudo dd if=/dev/rdisk4 of=raspberrypi-backup.img bs=4m여기에서 각각의 의미는 다음과 같습니다.
if = Input File
of = Output File
bs = 한 번에 읽고 쓰는 블록 크기즉,
/dev/rdisk4
↓
raspberrypi-backup.img형태로 SD 카드 전체를 하나의 이미지 파일로 만드는 것입니다.
macOS에서는 /dev/disk4 대신 /dev/rdisk4처럼 r이 붙은 raw device를 사용하면 일반적으로 더 빠르게 복사할 수 있습니다.
6. dd 진행 상황 확인하기
dd를 실행하면 한동안 터미널에 아무것도 표시되지 않을 수 있습니다.
멈춘 것이 아니라 정상적으로 복사 중일 가능성이 높습니다.
macOS에서는 실행 중 다음 키를 누르면 진행 상황을 확인할 수 있습니다.
Ctrl + T작업이 완료되면 다음과 비슷한 결과가 나타납니다.
3798+1 records in
3798+1 records out
15931539456 bytes transferred in 216 seconds약 16GB가 정상적으로 읽혔다면 백업 이미지 생성이 완료된 것입니다.
Desktop에는 다음 파일이 생성됩니다.
raspberrypi-backup.img7. 새 512GB microSD를 별도로 포맷해야 할까?
별도로 포맷할 필요가 없습니다.
새 microSD 카드를 처음 사용하는 경우 FAT32나 exFAT 등으로 미리 포맷해야 한다고 생각하기 쉽지만, 이번 작업에서는 dd가 기존 microSD의 데이터를 디스크 단위로 그대로 기록합니다.
즉, 기존 16GB microSD의 파티션 테이블과 파일시스템까지 함께 복제됩니다.
따라서 다음과 같이 바로 진행하면 됩니다.
새 512GB microSD 연결
↓
diskutil list
↓
디스크 번호 확인
↓
언마운트
↓
dd로 이미지 복원8. 새 512GB microSD 확인하기
기존 microSD를 Mac에서 제거하고 새로운 512GB microSD를 연결합니다.
다시 다음 명령어를 실행합니다.
diskutil list예를 들어 새 카드가 /dev/disk4로 표시됐다고 가정하겠습니다.
반드시 표시되는 실제 용량이 약 512GB인지 확인합니다.
9. 새 microSD 언마운트하기
diskutil unmountDisk /dev/disk4여기서도 /dev/disk4는 예시입니다.
자신의 환경에서 확인한 실제 디스크 번호를 사용해야 합니다.
10. 백업 이미지를 512GB microSD에 복원하기
이제 앞에서 만든 이미지 파일을 새로운 SD 카드에 기록합니다.
sudo dd if=~/Desktop/raspberrypi-backup.img of=/dev/rdisk4 bs=4m이번에는 방향을 특히 주의해야 합니다.
raspberrypi-backup.img
↓
512GB microSDof=에 지정된 디스크는 기존 데이터가 덮어쓰기 됩니다.
따라서 명령어를 실행하기 전에 반드시 다음을 확인합니다.
diskutil list512GB microSD의 디스크 번호가 맞는지 확인한 후 dd를 실행합니다.
11. 기록 완료 후 SD 카드 제거하기
복원이 완료되면 먼저 디스크 쓰기가 완전히 끝나도록 합니다.
sync그리고 SD 카드를 안전하게 제거합니다.
diskutil eject /dev/disk4이제 512GB microSD 카드를 Raspberry Pi에 장착합니다.
12. Raspberry Pi 부팅 후 용량 확인하기
Raspberry Pi를 부팅한 다음 SSH나 터미널에서 다음 명령어를 실행합니다.
lsblk이때 SD 카드 자체는 약 512GB로 표시되지만 Linux 루트 파티션은 여전히 기존 16GB 수준으로 표시될 수 있습니다.
예를 들면 다음과 같습니다.
mmcblk0 476G
├─mmcblk0p1 512M
└─mmcblk0p2 14G이것은 오류가 아닙니다.
512GB SD 카드에 16GB SD 카드의 파티션 구조를 그대로 복제했기 때문에 남은 공간이 아직 파티션에 할당되지 않은 것입니다.
13. 파일시스템 확장하기
Raspberry Pi OS에서는 다음 명령어로 설정 도구를 실행할 수 있습니다.
sudo raspi-config사용 중인 Raspberry Pi OS 버전에서 파일시스템 확장 기능이 제공된다면 해당 메뉴를 통해 루트 파일시스템을 확장합니다.
작업 후 Raspberry Pi를 재부팅합니다.
sudo reboot환경이나 Raspberry Pi OS 버전에 따라 raspi-config에서 확장 항목이 보이지 않거나 이미 자동 확장되어 있을 수도 있습니다. 그런 경우에는 lsblk와 df -h 결과를 먼저 확인하고 파티션 확장 방법을 결정하는 것이 안전합니다.
14. 최종 용량 확인하기
재부팅한 후 다음 명령어를 실행합니다.
df -h루트 파일시스템이 정상적으로 확장되었다면 기존 약 16GB가 아니라 수백 GB의 공간을 사용할 수 있게 됩니다.
512GB 제품이라고 해서 Linux에서 정확히 512G로 표시되는 것은 아닙니다. 제조사가 사용하는 GB와 운영체제에서 표시하는 GiB 계산 방식이 다르기 때문에 약 476GiB 수준의 물리 용량으로 표시되는 것이 정상입니다.
기존 microSD 카드는 바로 포맷하지 말자
새로운 512GB microSD가 정상적으로 부팅됐다고 해서 기존 16GB microSD를 바로 포맷하는 것은 권장하지 않습니다.
며칠 동안 새 SD 카드로 Raspberry Pi를 운영하면서 다음 사항을 확인하는 것이 좋습니다.
- 정상적으로 부팅되는지
- SSH 접속이 되는지
- 네트워크 설정이 유지됐는지
- 기존 프로그램이 정상적으로 실행되는지
- Docker를 사용한다면 컨테이너와 볼륨이 정상인지
- 재부팅 후에도 문제가 없는지
- 실제 저장 공간이 정상적으로 확장됐는지
문제가 없다면 그때 기존 microSD를 별도 용도로 사용하면 됩니다.
그전까지 기존 카드는 가장 간단하면서 확실한 비상 복구 수단입니다.
마무리
Raspberry Pi의 microSD 용량을 늘리기 위해 반드시 Raspberry Pi OS를 새로 설치할 필요는 없습니다.
macOS에서 dd를 이용하면 기존 microSD를 이미지 파일로 백업한 후 더 큰 microSD에 그대로 복원할 수 있습니다.
핵심 과정만 정리하면 다음과 같습니다.
1. Raspberry Pi 정상 종료
2. 기존 microSD를 Mac에 연결
3. diskutil list로 디스크 확인
4. dd로 전체 이미지 백업
5. 새 512GB microSD 연결
6. 별도 포맷 없이 dd로 이미지 복원
7. Raspberry Pi 부팅
8. 파티션 및 파일시스템 확장
9. df -h로 최종 용량 확인특히 dd를 사용할 때는 if와 of를 혼동하지 않는 것이 중요합니다.
백업할 때는:
microSD → 이미지 파일복원할 때는:
이미지 파일 → 새 microSD방향입니다.
디스크 번호만 정확하게 확인한다면 기존 Raspberry Pi 환경을 거의 그대로 유지하면서 16GB에서 512GB 같은 대용량 microSD로 비교적 간단하게 이전할 수 있습니다.
댓글
Giscus를 연결하면 댓글이 열립니다.