디스크 포맷팅, 마운트, rsync
로 백업하기
1. 1단계: 새 디스크 포맷
파일 시스템에 대한 여행의 실습 부분에 오신 걸 환영해! 오늘은 우리가 이전 강의에서 배운 포맷, 마운트 및 백업 내용을 모두 합쳐 볼 거야. 그리고, 만약 상사의 문서가 들어 있는 USB를 실수로 포맷해버린다면, 어떻게 복구해야 할지 확실히 알게 될 거야. 아니면, 최소한 다른 직업으로 전환할 준비가 되어있을지도 몰라.
시나리오
컴퓨터에 새 디스크를 추가했다고 상상해봐. 이 디스크는 아직 아무것도 없는 상태고, 시스템에서 작업할 준비도 안 되어 있어. 이제 이 디스크를 포맷하는 작업을 해보자.
작업 순서:
1.1 연결된 장치 확인
먼저 새 디스크가 어디 있는지 알아내야 해. lsblk
명령어를 사용해:
lsblk
만약 모든 것이 제대로 연결됐다면, 다음과 비슷한 결과를 보게 될 거야:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 50G 0 part /
├─sda2 8:2 0 50G 0 part /home
sdb 8:16 0 500G 0 disk
여기서 sdb
가 우리의 새로운 디스크야. 아직 파티션이 없어.
1.2 디스크에 파일 시스템 생성
ext4
파일 시스템이 적당하다고 가정해보자. 이를 생성하려면 mkfs
를 사용해:
sudo mkfs.ext4 /dev/sdb
명령을 실행한 후 시스템은 디스크와 작업할 준비가 될 거야. 포맷 작업은 디스크의 모든 데이터를 삭제한다는 점을 기억해둬. 그래서 만약 이 순간 상사의 디스크를 잘못 연결한 상태라면ㅡ그리고 포맷하려고 한다면ㅡ멈춰. 지금 당장.
2. 2단계: 새 디스크 마운트하기
이제 새로 포맷된 디스크를 파일 시스템에 연결하자.
2.1 마운트 지점 생성하기
디스크가 연결될 위치가 필요해. 보통은 폴더야. 예를 들어, /mnt
에 폴더를 만들어보자:
sudo mkdir /mnt/newdisk
2.2 디스크 마운트하기
디스크를 시스템에 연결하자:
sudo mount /dev/sdb /mnt/newdisk
모든 게 제대로 작동하는지 확인하려면 df
명령어를 사용해봐:
df -h
목록에서 /mnt/newdisk
와 디스크를 확인할 수 있을 거야.
2.3 자동 마운트 설정하기
매번 디스크를 수동으로 입력하지 않으려면, /etc/fstab
파일에 추가해야 해. 먼저 blkid
를 사용해서 장치의 UUID를 알아내자:
sudo blkid /dev/sdb
출력은 대략 이런 모습일 거야:
/dev/sdb: UUID="abcd-1234-efgh-5678" TYPE="ext4"
이 문자열을 /etc/fstab
에 추가하자:
UUID=abcd-1234-efgh-5678 /mnt/newdisk ext4 defaults 0 2
이제 시스템을 시작할 때마다 디스크가 자동으로 마운트될 거야.
3. 3단계: 데이터 아카이브
디스크에 /mnt/newdisk/data
폴더가 있다고 가정하고, 백업 전에 이 폴더를 아카이브하고 압축하려고 해.
3.1 tar
를 사용하여 아카이브 생성
data
폴더의 아카이브를 생성해 보자:
tar -cvf data_backup.tar /mnt/newdisk/data
3.2 gzip
을 사용하여 아카이브 압축
생성된 아카이브를 압축해 보자:
gzip data_backup.tar
이제 data_backup.tar.gz
파일을 가지고 있어. 이 파일은 더 작고 이동하기에 편리해.
4. 4단계: rsync
를 사용한 백업
이제 우리는 백업을 할 준비가 되었어. rsync
를 사용해서 데이터를 다른 서버나 디스크의 다른 장소로 이동시키자.
4.1 로컬 백업
만약 data
폴더를 다른 디렉토리로 백업하려고 한다면, 이렇게 하면 돼:
rsync -av /mnt/newdisk/data /mnt/backup/
옵션 설명:
-a
아카이브 모드를 활성화하며, 파일 권한과 구조를 유지합니다.-v
자세한 출력을 활성화합니다.
4.2 원격 서버로 백업
데이터를 서버로 전송해야 할 때는 다음 명령어를 사용해봐:
rsync -av /mnt/newdisk/data username@remote_server:/backup/
username
을 서버의 사용자 이름으로, remote_server
를 서버 주소로 바꾸는 거 잊지 마.
5. 5단계: scp
를 사용한 간단한 백업
가끔은 scp
를 사용하는 것이 가장 간단할 때가 있어. 예를 들어, 우리가 아카이브를 서버로 직접 전송하고 싶을 때:
scp data_backup.tar.gz username@remote_server:/backup/
이 명령어는 파일 data_backup.tar.gz
를 원격 서버의 /backup
폴더로 복사할 거야.
6. 6단계: 전체 프로세스가 제대로 작동하는지 확인하기
다음은 우리가 구현한 간단한 시나리오 계획이야:
- 새 디스크에 파일 시스템을 생성했어.
- 디스크를 마운트하고 자동 마운트를 설정했어.
- 폴더에서 데이터를 아카이브하고 압축했어.
rsync
와scp
를 사용하여 데이터를 백업했어.
이제 복사된 데이터가 제대로 있는지 확인해봐. 대상 서버에서 data_backup.tar.gz
를 풀어보자:
gunzip data_backup.tar.gz
tar -xvf data_backup.tar
데이터가 다시 여기 있어, 멀쩡하고 문제없어. 이제 안심해도 돼.
7. 특징 및 발생 가능한 오류
만약
device or resource busy
같은 메시지가 마운트 해제할 때 나타난다면, 해당 장치가 프로세스에 의해 사용 중이 아닌지 확인해봐. 이때fuser
를 사용해:fuser -m /mnt/newdisk
/etc/fstab
을 잘못 설정하면 시스템이 부팅되지 않을 수도 있어. 복구 모드를 사용하거나 변경 사항을 미리 테스트해봐:sudo mount -a
rsync
를 사용해서 백업할 때, 디렉토리를 동기화하며 대상 쪽의 불필요한 데이터를 삭제하려면--delete
옵션을 꼭 기억해.
이제 넌 디스크를 자신 있게 관리하고, 마운트하며, 데이터를 백업해서 안전하게 지킬 수 있는 지식을 갖췄어. 그리고 제일 중요한 건 — 왜 새 하드디스크를 포맷하고 있는지, 책상 위에 새로운 하드디스크가 있는 이유를 전문가처럼 자신 있게 설명할 수 있다는 거야. 😉
GO TO FULL VERSION