본문 바로가기

Software

Linux Kernel 버전과 하드웨어와의 충돌로 날아간 2년

728x90

 

 

2년전, 그러니까 재작년 8월에 늘 사용해왔던 노트북이 문제를 일으켜서 복구하다가 포기한 적이 있었습니다.

 

https://aidalab.tistory.com/234

 

노트북 복구 포기 ㅠㅠ

복구를 시도하던 노트북을 결국 포기하기로 했습니다.Windows도 설치되지 않고 Linux도 10종류 이상 시도했지만 모두 실패.유닉스 계열의 FreeBSD/OpenBSD도 시도해봤지만 모두 실패했네요.Windows는 설치

aidalab.tistory.com

 

 

Windows를 설치해서 사용하던 노트북(Lenovo Yoga 제품)이었는데 수시로 발생하는 Frozen 상태와 Blue Screen 때문에 재설치를 시도하다가 실패했었죠.

설치 도중에 오류가 발생해서 실패하길 수 십번.

Windows 설치를 포기하고 리눅스를 설치하기로 했으나 그 또한 실패, 여러 종류의 배포판을 바꿔가며 설치해 보았지만 모두 실패했습니다.

역시 설치 도중에 오류가 발생하더군요.

Unix계열의 Solaris나 OpenBSD, FreeBSD 등도 모두 실패했습니다.

그것도 특정 부분, 특정 시점에서 오류가 나는 것이 아니라 설치를 시도할 때마다 모두 다른 장소, 다른 시점에서 오류가 발생했죠.

결국 노트북의 복구를 포기했었는데..

 

몇 달 후 우여곡절 끝에 Windows를 다시 설치 시도, 성공해서 그대로 사용하고 있었습니다.

그러나 여전히 계속되는 Blue Screen과 벽돌상태(Frozen)는 피할 수 없었죠.

정상적으로 부팅이 되는 것도 힘들었지만, 부팅이 되더라도 몇 개의 파일만 건드려도 시스템이 죽었습니다.

메인 PC(노트북)와 그 외의 서브 PC들도 모두 리눅스로 바꾸었지만 Yoga는 어쩔 도리가 없었습니다.

꼭 Windows를 사용해야 하는 작업은 VMWare나 VirtualBox에 설치해 둔 Windows로 작업할 수 밖에 없었죠.

 

그런데 오늘 그 원인을 알았습니다.

계속 방치되어 있던 노트북을 그냥 두기도 아까워서 다시 한 번 이런 저런 체크를 해 보았습니다.

예전에 체크할 때, SSD 쪽의 노후화가 문제일거라는 분석이 나왔기때문에 규격에 맞는 SSD를 구매해서 교체하면 괜찮으려나.. 싶어서 SSD를 구매하기 전에 한 번 더 확인해 보자는 생각이었죠.

SSD의 문제가 아니었다면 구매해봐야 여전히 문제는 계속될거니까요.

 

그런데... 여러가지로 테스트와 체크를 해 보던 중, Puppy Linux와 SystemRescue 리눅스를 Live USB 모드로 작동시키고 노트북의 상태를 점검해 보았더니... 하드웨어 상의 문제는 거의 발견할 수 없었습니다.

예전에도 Puppy Linux와 같은 매우 가벼운 리눅스의 경우, Live USB 모드로는 작동했었습니다.

그래서 시도해 본 것인데, 가장 문제 소지가 많았던 NVMe SSD와 NVMe 관련 인터페이스에도 아무런 문제가 없었죠.

 

여러가지로 궁리해 보다가 발견한 것이 다음과 같은 에러 로그였습니다.

 

 

 

Entry[0]
error_count : 15618
status_field: 0x2002 Invalid Field in Command
lba         : 0

 

 

명령어에 잘못된 필드가 있다는 오류 로그가 무려 15618번이 카운트되어 있더군요.

그 외의 다른 항목에서는 아무런 오류 로그가 없었습니다.

 

그래서 이런저런 생각 끝에 도달한 것이 "Windows 에서 사용하는 어떤 명령이 내 시스템과 맞지 않는 것이 있는게 아닐까?"라는 것이었습니다.

그리고 떠올린 것이 어쩌면 리눅스의 설치도 뭔가가 맞지 않았던 것이 아닐까? 였습니다.

실제로 Live USB 모드의 리눅스는 문제가 없었죠.

설치 시에만 문제가 발생했습니다.

 

혹시 리눅스의 커널이 설치되는 과정에서 내 시스템과 어딘가 맞지 않는 부분이 있어서 실패한 것이 아닐까?

Live USB 모드는 문제 없는 것으로 봐서 커널 자체의 문제가 아니라 커널을 설치하는 시점에서 뭔가 요구사항이 맞지 않았던 것이 아닐까?

 

그래서 생각을 해 보았습니다.

그럼 그 당시에 설치했던 리눅스의 커널은 뭐지? 

모두 6.xx 버전의 커널이었습니다.

다소 지나간 버전을 시도해 보았었지만 역시 6.xx 버전의 범위 안이었고 모두 실패했었죠.

그래서 그럼 그 이전의 버전, 즉 커널 5.15 버전으로 설치해보면 어떨까? 라고 생각했습니다.

 

사실 그때 6.xx 버전을 계속 시도한 이유는 그 노트북보다 더욱 구형 노트북에서도 6.xx 버전의 커널을 가진 리눅스 배포판이 잘 설치되고 잘 작동했었거든요.

그런데 하나의 차이점은.. 더욱 구형인 노트북은 NVMe 타입의 SSD를 사용한 노트북은 아니었습니다.

HDD, HDD형 SSD, 그리고 초기형 M.SATA SSD 가 장착된 노트북이었죠.

그때는 그 차이는 생각조차 하지 못했었습니다.

 

결국 커널 5.15 버전으로 구성된 Linux Mint 21.3 Virginia를 다운로드해서 설치해 보았습니다.

한 번의 시도만에 바로 성공하더군요.

그리고 대규모의 업데이트를 적용했지만 아무런 문제가 없었습니다.

혹시 몰라 업데이트 후 다시 재부팅을 하고 다시 체크를 해 보았지만 여전히 아무런 문제도 없었습니다.

 

무려 2년이 지나서야 그 원인을 알게 되었습니다.

하드웨어의 종류 및 조합과 커널의 버전에 따른 미스매치가 이 정도로 집요하게 오류를 발생시킬 줄은 생각도 못했었습니다.

물론 원인은 알았지만 세부적인 내용과 직접적인 요소는 여전히 모릅니다.

그것까지 알려면 Linux Core나 GRUB나... 더 깊은 곳까지 파고들어야 되겠지만.. 그렇게까지 해서 얻는 것은 그리 없을 것 같네요.

 

어쨋든 2년간 방치되었던 노트북이 드디어 되살아났습니다.

 

 

728x90
반응형