새소식

사용팁/virtualbox

Ubuntu 20.04 single mode in virtualbox

  • -

기록용으로 남깁니다.

virtualbox 에 설치된 우분투 20.04를 한동안 방치하다가 사용해볼 일이 있어서 오랜만에 접근했더니.. sudo 가 안먹습니다. /etc/sudoers 목록에 없다고 합니다.

회사에 자주 켜놓고서 퇴근하고 했더니.. 누군가 장난질을 친건지..

어쨌든 이 안에 있는 데이터들 때문에라도 이 상황을 해결할 필요가 생겼습니다.

이름하여 리눅스 싱글모드!!

예전에는 부팅 미디어로 부팅해서 mount 및 chroot 등으로 작업을 진행했습니다. 뭐 예전에 부트로더 날려먹었을 때 이런 방법을 썼었죠.

하지만 지금은 부트로더도 멀쩡하고 제 계정만 문제가 생겼습니다.

virtualbox 에서 콘솔을 열어서 (Ctrl + Alt + T) reboot 명령을 내리면 root 권한 없이도 시스템이 재부팅됩니다.
문제는 부트로더 화면이 나오지도 않고 또 부팅이 완료되어 버립니다..
virtualbox 에서는 reboot 가 동작하고 시스템이 까만 화면으로 바뀔 때 shift 키를 누르고 있어야 합니다.
그러면 반가운(?) grub 화면이 나옵니다. 저는 뭐 덕지덕지 설치된 커널이 없어서인지(방치되어 있어서..) ubuntu 하나와 debug 하나와 메모리 테스트 하나 정도만 있습니다.

ubuntu (또는 원하는 커널 버전)에 커서를 둔 상태에서 E 키를 한 번 누르면 해당 레이블의 부트 스크립트(?)가 나옵니다.

여기에서 linux 란 키워드가 맨 처음에 있고 /boot/어쩌구저쩌구라고 되어 있는 줄로 이동합니다.

줄의 맨 끝에 init=/bin/bash 라고 타이핑 한 다음에 부팅 키(Ctrl+X 키나 F10 키)를 누르면 입력한 내용으로 부팅됩니다.

부팅이 성공적으로 완료되면 root@(none):/# 과 같은 프롬프트가 나옵니다. 여기까지 성공을 했기 때문에 실패한 경우에 어떤 메시지가 나오는지는 모르겠습니다..

이 상황에서 보통 grub 을 손대든지 passwd 명령으로 root 비번을 바꾸든지 하는 등의 작업을 할텐데 저는 user 계정을 sudoers 파일에 등록만 하려고 하기 때문에 이런 명령은 손대지 않습니다.

일단 / 를 쓰기가 가능하도록 다시 마운트 합니다.

 

mount -o remount,rw /

group 파일을 엽니다.

vim /etc/group

sudoers 키워드를 찾아 줄 마지막인 : 끝에 user (자기 로그인 id)를 추가해줍니다. 기존에 다른 값이 있다면 쉼표와 함께 추가해주면 됩니다.

:old_user,user

ZZ 키를 눌러 저장해서 나가고 재부팅해주면 됩니다.

exec /sbin/init

부팅이 완료되면 터미널을 열어서 sudo 명령이 제대로 실행되는지 확인해봅니다.

sudo ls

저는 잘 됩니다 :)

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.