오늘 회사에서 사용할 일이 있어서 해봤던 내용 정리해 둔다. 기존 CentOS5, 6 버전에서는 GRUB1을 사용했기 때문에 single 파라미터를 넘겨주면 되었는데, CentOS7에서는 GRUB2가 도입되어 내용이 바뀌었다. 핵심은 init을 systemd 대신 bash로 바꿔주는 꼼수...




위 부팅 메뉴 화면에서 부팅할 항목을 선택한 상태로 e 키를 누른다. 여기까지는 GRUB1과 동일하다.




위 화면을 잘 보면 linux16 다음 /vmlinuz-3.10.0-862.14.4.el7.x86_64 라는 커널이 있고, root=UUID=83d62740-117f-4b0f-8bb7-c3b2a548e57b 형식의 문구가 있다. 바로 뒤에 ro 즉 / 파티션을 read only로 마운트 하겠다는 옵션이 있는데, 이걸 rw 즉 read write로 바꾼다. (나중에 rw로 remount 해도 되지만 그냥 여기서 미리 바꿔두자)




ro를 rw로 바꾸고, 또 하나는 init을 /bin/bash shell로 지정하고 나머지 불필요 옵션을 제거하는 것이다. (quiet 옵션을 제거하면 커널 메시지가 콘솔에 계속 떠서 성가시다) 그 아래에 있는 initrd16은 건들지 말고 그 위 커널에 대한 옵션만 변경한다. 위와 같이 수정 후 Ctrl + x 누르면 부팅이 시작된다.




위와 같이 passwd 명령어로 패스워드 변경을 잘 하였다. 그리고 reboot 해주면 된다.