복구 디스크: 시스템이 부팅되지 않을 때
머신을 SystemRescue로 부팅하고 디스크를 마운트해 fstab, 부트로더, 잊어버린 비밀번호를 고친 뒤 정상 부팅으로 돌아가는 방법을 설명해요.
업데이트 2026년 8월 23일
SSH로 접속한 상태에서 설정을 수정하거나 커널을 업데이트하거나 디스크를 가득 채운 뒤에 머신이 응답하지 않는다면, 더 이상 내부에서 고칠 수 없어요. 이런 경우를 위해 제어판에서는 SystemRescue 복구 디스크로 부팅하는 모드를 제공해요. 이는 메모리에서 실행되는 별도의 시스템으로, 여기서는 머신의 디스크가 일반 저장 장치처럼 보여요.
진입 방법
/hosting/vds/m/<id>의 “접속” 탭을 여세요.- 부팅 모드 블록에서 SystemRescue 복구 디스크를 선택하세요.
- 머신을 재부팅하고 “콘솔” 탭을 여세요.
SystemRescue에는 root로 비밀번호 없이 로그인해요. 여기서는 SSH 접속을 쓸 수 없으니 콘솔로 작업하세요. “Screen” 뷰(VNC)를 선택하세요. 창 크기가 시리얼 라인으로 전달되지 않아 항상 80×24이고, 전체 화면 유틸리티가 잘못 표시돼요.
머신의 디스크는 /dev/sda로, 파티션은 /dev/sda1, /dev/sda2 등으로 나타나요.
시스템을 마운트하고 고치기
lsblk -f
mount /dev/sda1 /mnt
ls /mnt
파티션을 잘못 골랐다면 umount /mnt를 실행하고 다음 파티션을 시도하세요. 루트는 etc, var, usr 디렉터리로 알아볼 수 있어요.
그다음에는 이런 작업을 주로 해요.
nano /mnt/etc/fstab
nano /mnt/etc/ssh/sshd_config
du -xh /mnt --max-depth=2 | sort -h | tail -20
journalctl -D /mnt/var/log/journal -b -1 -p err
시스템 “내부”에서 작업하려면, 즉 비밀번호를 재설정하거나 패키지를 다시 설치하거나 부트로더를 다시 빌드하려면 chroot로 진입하세요.
mount /dev/sda1 /mnt
for d in dev proc sys run; do mount --bind /$d /mnt/$d; done
chroot /mnt /bin/bash
passwd root
exit
나온 뒤에는 모든 것을 언마운트하세요: umount -R /mnt.
흔한 원인과 대처법
| 증상 | 원인 | 조치 |
|---|---|---|
| 파티션을 기다리며 부팅이 멈춤 | /etc/fstab의 오타, 존재하지 않는 UUID | 해당 줄을 주석 처리하거나 nofail을 추가하세요 |
| 서비스가 죽고 남은 공간이 없음 | 로그나 이미지가 디스크를 다 차지함 | /mnt를 통해 /var/log와 /var/lib/docker를 정리하세요 |
| 머신은 부팅되지만 SSH가 조용함 | sshd_config의 오류 또는 스스로를 차단한 방화벽 | 설정을 수정하고 규칙을 초기화하세요 — ufw |
| 루트 비밀번호를 잊음 | — | chroot에서 passwd를 실행하거나 “접속” 탭에서 새 비밀번호를 설정하세요 |
정상 모드로 돌아가기
부팅 모드를 다시 정상으로 바꾸고 머신을 재부팅하세요. 그렇지 않으면 다시 SystemRescue로 부팅되어, 수정이 안 된 줄 알게 돼요.
복구 모드에서 작업한 내용은 저장되지 않아요. SystemRescue는 메모리에서 실행돼요.
/mnt밖에서 바꾼 것은 재부팅 후 사라져요.
시스템을 복원할 수 없다면 “접속” 탭에 운영 체제를 선택해 재설치하는 옵션이 있어요. 이는 디스크를 완전히 지우니, 먼저 필요한 파일을 SystemRescue에서 복사하세요. 예를 들어 scp나 rsync로 다른 머신에 옮기면 돼요.