Mac 공유 모드 + rsync로 환경설정을 통째로 새 맥에 옮기는 절차
- 두 맥 모두 Apple Silicon (M1 이상)
- 데이터 전송 가능한 USB-C 케이블 (10Gbps 이상 권장)
- 새 맥 초기 설정 완료
~/Library 내부의 절대경로 참조가 깨질 수 있으므로 사용자 계정명을 구 맥과 동일하게 만든다.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"구 맥에서:
brew bundle dump --file=~/Brewfile --describe새 맥에서:
brew bundle --file=~/BrewfileApp Store / 주요 앱들을 한 번씩 실행 → 즉시 종료. ~/Library/Containers/<app> 구조를 미리 만들어두기 위함.
- 구 맥 완전 종료
- 전원 버튼을 "옵션이 표시됩니다" 문구가 나올 때까지 계속 누르기
옵션클릭 → 관리자 계정 로그인- 상단 메뉴 →
유틸리티→Mac 공유선택 - 안내된 비밀번호 메모
- 두 맥을 C-to-C 케이블로 연결
- 새 맥 Finder 사이드바 위치 → 네트워크에 구 맥 표시
- 클릭 →
다른 사용자로 연결→ 2단계 비밀번호 입력 - 마운트 후
/Volumes/<구맥이름>/로 접근 가능
SRC="/Volumes/Macintosh\ HD/Users/jisungbin" # 구 맥 이름에 맞춰 수정
DST="$HOME"rsync -aE --progress \
"$SRC/Library/Preferences" \
"$SRC/Library/Application Support" \
"$SRC/Library/Containers" \
"$SRC/Library/Group Containers" \
"$SRC/Library/Fonts" \
"$SRC/Library/Services" \
"$SRC/Library/Keychains" \
"$DST/Library/"핵심: 소스 경로에 트레일링 슬래시(
/)를 붙이지 않는다.
- 슬래시 없음 → 폴더 자체가 복사 →
~/Library/Preferences로 들어감 ✅- 슬래시 있음 → 내용물만 복사 → 다른 폴더와 섞임 ❌
rsync -aE --progress \
"$SRC/.zshrc" "$SRC/.zprofile" "$SRC/.zshenv" \
"$SRC/.gitconfig" "$SRC/.config" "$SRC/.ssh" "$SRC/.gnupg" \
"$DST/"rsync -aE --progress \
"$SRC/Library/Preferences" "$SRC/Library/Application Support" \
"$SRC/Library/Containers" "$SRC/Library/Group Containers" \
"$SRC/Library/Fonts" "$SRC/Library/Services" "$SRC/Library/Keychains" \
"$DST/Library/" && \
rsync -aE --progress \
"$SRC/.zshrc" "$SRC/.zprofile" "$SRC/.zshenv" \
"$SRC/.gitconfig" "$SRC/.config" "$SRC/.ssh" "$SRC/.gnupg" \
"$DST/"| 옵션 | 의미 |
|---|---|
-a |
권한·시간·심볼릭링크 보존 |
-E |
macOS 확장속성/ACL 보존 (plist 인식에 필수) |
--progress |
진행률 표시 |
&& |
앞 명령이 성공해야 다음 실행 (실패 시 멈춤) |
# plist 캐시 비우기 (cfprefsd가 옛 값을 캐싱 중)
killall cfprefsd
# 폰트 캐시 초기화
atsutil databases -remove이후 재부팅하면 설정이 거의 다 반영된다.
복사로 따라오지 않는 항목들:
- TCC 권한: 시스템 설정 → 개인정보 보호 및 보안 → 화면 녹화 / 접근성 / 전체 디스크 접근 / 자동화 → 앱별로 재허용
- 블루투스 페어링: 키보드/마우스/이어폰 재페어링
- Touch ID 지문 등록
- Apple ID / iCloud 로그인
- 라이선스 재인증: Adobe, JetBrains, Setapp, Sketch 등
~/Library/Containers는 SIP/TCC가 강하게 보호한다.
- 새 맥에서 해당 앱을 한 번도 실행하지 않은 상태에서 덮어쓰는 것이 가장 안전
- 이미 실행했다면 앱을 종료 후 폴더 통째로 교체:
APP_BUNDLE="com.example.app"
rm -rf "$DST/Library/Containers/$APP_BUNDLE"
rsync -aE --progress \
"$SRC/Library/Containers/$APP_BUNDLE" \
"$DST/Library/Containers/"| 경로 | 포함 내용 |
|---|---|
~/Library/Preferences/ |
Dock, Finder, 키보드 단축키, 각 앱 환경설정 plist |
~/Library/Application Support/ |
VS Code 확장·세팅, 브라우저 프로필, iTerm2/Warp, Slack/Notion 등 |
~/Library/Containers/ |
메모, 미리알림, 캘린더, App Store 앱들의 데이터 |
~/Library/Group Containers/ |
앱 그룹 간 공유 데이터, 1Password 등 |
~/Library/Fonts/ |
사용자가 설치한 폰트 |
~/Library/Services/ |
우클릭 서비스 메뉴 항목 |
~/Library/Keychains/ |
Wi-Fi 비밀번호, 저장된 사이트 비밀번호, 토큰 |
~/.zshrc, .zprofile, .zshenv |
셸 alias, PATH, 환경변수, 프롬프트 |
~/.gitconfig |
git 사용자, alias |
~/.config/ |
nvim, gh, lazygit, starship, tmux 등 |
~/.ssh/ |
SSH 개인키, known_hosts, config |
~/.gnupg/ |
GPG 서명 키 |
| 항목 | 처리 방법 |
|---|---|
/Applications 의 앱 본체 |
Homebrew Bundle / App Store / 직접 다운로드 |
~/Documents, ~/Desktop, ~/Downloads 등 |
별도 rsync 추가 또는 iCloud Drive |
| TCC 권한 | 앱별 재허용 |
| 블루투스 페어링, Touch ID | 재등록 |
| Apple ID, iCloud 로그인 상태 | 재로그인 |
| 앱 라이선스 | 앱에서 재인증 |
복사 직후 새 맥에서:
- Finder 사이드바 즐겨찾기·태그 그대로
- Dock 앱·정렬 그대로
- VS Code 확장프로그램·테마·키맵 그대로 (일부 로그인 토큰은 재인증)
- 터미널 prompt, alias 그대로
- Safari 북마크·자동완성 그대로
- 메모 앱의 모든 메모 그대로
- Wi-Fi 자동 연결
반면 다시 해야 하는 것:
- 키체인 첫 잠금 해제 (로그인 비밀번호 재입력)
- "이 앱이 접근하려고 합니다" 권한 팝업 한 번씩 허용
- 1Password 같은 보안 앱 재로그인 + Secret Key 입력