[Linux] 부팅 안되고 뻗을때 해결하기 (Ubuntu)

가끔 전원이 강제로 나가면 뭔가 파일이 꼬이면서 부팅이 안될 때가 있다. 왜 그런지는 모르겠지만.. 한번 꼬이면 악순환이 시작되는 느낌이다.
그럴때 대처법을 간단히 정리해본다.




1. 복구모드로 부팅하기

정말 최악의 상황이 아니라면, 부팅할때 부팅 방법을 선택하는 페이지가 뜬다.
일단 부팅에 뭔가 문제가 생겼을때는 일반 복구모드로 진입해야 한다.

advanced option으로 들어가서


recovery mode를 선택한다.


여기서 이런저런 시도들을 해볼 수 있는데, 여기서 resume을 들어가면 다시 일반 부팅 모드로 진입하고, root로 들어가면 root 계정 상태로 쉘을 열 수 있다.
일단 쉘에 들어가는게 할 수 있는게 많다.




2. 쓰기 모드로 mount하기

root 모드로 쉘에 진입해도, 보통 read-only 마운트 상태라서 쓰기 작업이 일체 안될 수 있다.

그럴때는 먼저 마운트된 파일시스템을 확인한다.
이 경우에는 /dev/nvme1n1p2다.

다음 명령어들을 사용해서 쓰기가 가능하게 remount한다.

umount /dev/nvme0n1p2 
e2fsck /dev/nvme0n1p2
mount -o remount,rw /dev/nvme0n1p2

그리고 touch나 vi로 파일 쓰기가 동작하는지 확인해서, 잘 되면 된다.





Case A. 스왑 파일 깨졌을때

시커멓게 터미널만 뜨면서 swapfile 로딩에 실패했다거나 하는 문구가 뜰 때가 있다.
이럴때는 일단 스왑파일을 아예 제거하거나, 스왑 설정을 꺼야 한다.


# 제거
srm /swapfile

# 혹은 주석쳐서 끄기
vi /etc/fstab

더 자세한 제어는 별도 포스트를 참조한다.
https://blog.naver.com/sssang97/223449129234




Case B. 그냥 터미널에 아무것도 안 나올때

항상 그런건 아니겠지만, 뭔가 daemon들이 데드락에 빠졌을때 이런 현상이 자주 발생한다.

systemctl list-unit-files

데몬 목록을 조회하고


의심되는 놈들을 하나하나 조지는 수밖에 없다.


systemctl disable 데몬명

나는 이래 다 조졌더니 됐다.