인텔 맥에서 부트캠프 이용 시, 가상화 안되는 문제 해결 – 시스템 무결성 보호 비활성화

지금 뭐 여러모로 돈이 나갈 일이 많아서 오랫동안 써오던 맥북 프로 15인치 2015 버전에다가 부트캠프를 쓰고 있습니다. 그리고 거기에 윈도우를 설치해서 쓰고 있죠. 아직 전 윈도우 개발이 주인 개발이 여럿 있어서요…ㅠㅠ

그런 와중에, 언제부턴가 가상화가 사용할 수 없는 현상이 발생하더군요. 테스트 머신인 가상머신이 있는데…. 그걸 써야 되는데…왜…..ㅠㅠㅠㅠㅠㅠㅠㅠ

안돼....ㅠㅠㅠ
안돼…ㅠㅠ

그러던 와중에, 맥을 쓸 일이 있어서 맥으로 부팅을 해서 맥을 업데이트 하고, 여러모로 작업 후 다시 윈도우로 돌아와도 안되더군요….ㅠㅠ

‘보통 맥을 쓰다가 다시 돌아오면 된다고는 하던데…뭐지….ㅠㅠ’

하다가 발견한 녀석이 있었으니,

바로 시스템 무결성 보호라는 녀석이었습니다. 설명에 대한 것은 링크로 달아뒀습니다.

OS X El Capitan과 iOS 9에 적용된 오래된 기술이더군요. 간단히 말하면, 유닉스 기반의 운영체제이기 때문에 rm -rf / 같은 명령어면 그냥 시스템 싹 다 날려먹고 그럴 수 있으니, 그걸 보호하기 위해 root 권한을 무시하는 루트리스(rootless)라는 녀석을 쓰는 거더군요.

이러면 root 권한이 있더라도 쉽게 변경할 수 없도록 되었고, 그 안에는 애플 소프트웨어 업데이트와도 연계되어 있어서 업데이트가 꾸준히 되어서 항상 시스템 관련된 부분을 보호하는 형태가 되는 것입니다.

써놓은 거 보면 그냥 SELinux라고 보면 이해가 확 될 겁니다만… 그게 뭐야 씹덕아 라고 하면…ㅠㅠ

SELinux 정도는 알아야 합니다! (퍽!)

뭐, 그 덕분에… 솔직히 그냥 아무 잘못없이 시스템 망가지는 건 있을 수 없게 되긴 했습니다. 일반 이용자 입장에서는요…

대신 아마 시스템 유틸리티나 그쪽 관련된 개발 하던 사람들은 그냥 포기하고 나가지 않았을까 싶은데… 생각보다 코드 인젝션 처리해서 유틸리티 만들던 사람들이 많아서요. 그게 불가능한 상황이니 그냥 개발 포기하는 그런 형태가 되었을 꺼 같군요.

근데 이녀석이, CPU의 가상화 기능과도 연관이 있더군요. 하긴, 프로세서 관련된 것들은 보호받는 쪽이 제조사나 os 제공자의 입장에서는 확실히 문제가 없는 거니깐요…

뭐, 좀 잡설이 길었는데, 이거 해제하는 방법은 간단합니다.

초기 부팅할 때, 전원 누른 다음에 Command + R을 누르면 복구 모드에 들어갑니다. 그때에 터미널을 열어서 다음과 같은 명령어를 입력하면 됩니다.

csrutil disable

다시 설정하려면 아래와 같이 입력하면 됩니다.

csrutil enable

어렵지 않죠? 그렇게 해서 다시 가상화가 사용되게 되었습니다. ㅠㅠ

평화로운 개발 환경이 다시 왔습니다. ㅠㅠ