리눅스 서버를 운영하다 보면 root 비밀번호를 분실하거나 변경해야 하는 경우가 있습니다.
기존 root 비밀번호를 알고 있다면 passwd root 명령어로 변경할 수 있지만, 비밀번호를 분실하여 로그인이 불가능하다면 GRUB 부팅 화면을 이용해 비밀번호를 초기화할 수 있습니다.
이번 글에서는 Ubuntu, GRUB를 이용하여 root 비밀번호를 변경하는 방법을 정리하겠습니다.
운영체제에 따라 부팅 옵션을 수정하는 방식이 다르므로 각각 구분하여 진행하겠습니다.
1. 리눅스 부팅 시, [END] 키를 누른다.

2. GRUB 메뉴화면에서 ‘e’ 를 눌러 편집 모드로 진입

3. 줄 편집 해주기


부팅 옵션 변경 (ro → rw)
GRUB 편집 화면에서 linux로 시작하는 줄을 찾습니다.
기존 설정:
ro quiet splash $vt_handoff
변경 설정:
rw init=/bin/bash
각 옵션의 의미는 다음과 같습니다.
-
ro : 루트 파일시스템을 읽기 전용으로 마운트
-
rw : 루트 파일시스템을 읽기·쓰기 모드로 마운트
-
init=/bin/bash : 일반적인 init 프로세스 대신 Bash 셸 실행
-
F10 으로 저장 후 나오기
(서버에 맞게 수정 및 설정)
CentOS / Rocky Linux (init=/bin/bash 방식)
변경 전:
ro crashkernel=auto rhgb quiet
변경 후:
rw init=/bin/bash
4. passwd 를 이용하여 root 비밀번호를 변경

root@(none):/# 나오면 passwd root 코드 치고 비번 변경 해주기
5. 변경후 리부팅 명령어

exec /sbin/init
위의 명령어로 재부팅해준다. (일반 재부팅 명령은 실행이 안 된다.)
6. 변경된 비밀번호로 로그인 확인

비밀번호 변경 과정에서 다음 오류가 발생할 수 있습니다.
passwd: Authentication token manipulation error
루트 파일시스템이 읽기 전용으로 마운트된 경우라면 다음 명령어로 읽기·쓰기 모드로 변경할 수 있습니다.
mount -o remount,rw /
이후 다시 비밀번호 변경을 시도합니다.
passwd root
단, 디스크 공간 부족이나 파일시스템 오류 등 다른 원인으로도 발생할 수 있으므로 무조건 마운트 문제로 판단해서는 안 됩니다.
*이 글은 본인의 실제 경험과 학습을 기반으로 직접 작성하였으며, AI는 참고용으로만 활용하였습니다.





