한 여름 컴퓨터 소동..

들어가며..

올 여름엔 매일 같이 사용하던 데스크탑이 사망하질 않나 같이 붙여두었던 하드 디스크도 파티션이 날아가서 애를 먹이더니, 이젠 회사에서 사용하던 랩탑마저 문제가 생겨 단시간에 많은 컴퓨터 노동을 하게 되었다. 앞으로는 무리가 되는 컴퓨터 모험은 그만하고 싶은 심정이다.

내가 사용하던 랩탑에서는 SSD 1개에 MacOS와 Linux partition을 넣어두고 필요에 따라 multiboot을 하게 해놓았는데 이게 어떻게 말썽을 일으켰는지, 그리고 어떻게 해결했는지 이틀간 고생한 기록을 적어볼까 한다.

1) bootloader update

legacy bootloader (BIOS를 통한 boot)를 UEFI bootloader로 변경하는 도중에 누군가 말을 걸어와 무심코 config file들을 복사하지 않고 재부팅하는 과정에서 문제가 발생함. 매우 중요한 작업이니 신중에 신중을 거듭하고 혹여 부팅이 되지 않을 사태를 대비해서 별도 부팅 가능한 linux USB stick이나 별도 파티션에 설치해둔 linux는 매우 유용하다.

2) arch linux installation fault

별도 파티션에 ubuntu desktop을 가지고 있었는데 용량이 자꾸 커져서 arch linux로 바꿔 설치해놓았다. 귀찮았는지 부트가 되는지 테스트 안해봤던 모양인지 재부팅하니 grub에서 error을 뿜고 grub prompt만 덜렁 떠있다. 황당하다.

3) don’t repair your filesystem with windows!

일단 파일 시스템 상태를 확인해보고자 아무 생각 없이 외장하드에 설치해놓은 windows 8.1로 부팅을 시도했다. 무엇보다도 파일을 살려내고자 함이라고 봐야 맞을 것 같다. 어라? 이게 무슨 일인가 file system에 문제가 있다며 repair를 하겠단다. 혹여 멀쩡한 file system까지 건드릴까 생각하면서 그냥 내버려두었다. 한참 하드가 돌더니 windows 8이 부팅된다. 그러나 MacOS/Linux partition에 대해서 윈도우가 해줄 수 있는 것은 아무 것도 없다. 읽지도 못하고 쓰지도 못한다. 별 수 없이 과거 부트로더가 살아있는지 그것으로 부팅할 수 있는지 확인해보기 위해 UEFI boot partition을 무력화하려는데 윈도우에서는 이 마저도 하지 못한다.

4) arch linux boot/rename EFI folder to disable it/boot with older bootloader

arch linux를 USB로 부팅해서 EFI partition을 mount 한 뒤 folder 이름을 바꾸면 PC가 UEFI로 부팅이 안되는 것으로 판단하여 legacy boot을 시도하게 될 것으로 판단하여 그렇게 진행했다. Legacy bootloader로 진입은 성공했는데, 부팅이 되지 않고 kernel panic이 나거나 먹통이 되거나 반복한다.

5) Don’t change your bios setup

BIOS setup에 문제가 있나 생각되어 ACPI나 USB 관련 setup들을 이리 저리 바꾸고 재부팅해봐도 kernel panic은 여전하고 prelinkedkernel까지 읽어들인 후에 반응이 뜸하다가 그냥 뻗어버린다. 무엇이 문제인지 모든 조합의 설정을 다 해봐도 달라지지 않는다.

여기서 부터 문제가 계속해서 꼬여서 하루 이상을 허비하게 된다. 답답하다.

여기서 부터 해결 과정..

0) Take a deep breath or sleep(!!)…

문제가 있다고 해서 한 가지 방법으로만 해결하려고 무한 반복하면 정신적/육체적/시간적 낭비가 크다. 잠시 푹 자고 온다든가 나가서 놀다오는 것이 좋을 것이다.

1) Check your system partitions/Backup your files

간신히 MacOS 설치화면으로 진입해서 system partition을 확인한다. 왠걸 HFPS+ 파티션이어야 할 부분이 Microsoft..xxxx로 나온다. 그렇다 위 3)번 항목에서 windows가 멀쩡한 MacOS partition을 문제가 있는 파티션으로 생각하고 지맘대로 repair한 것이다.

잘은 모르지만 partition id만 HFPS로 돌려놓으면 좋을 것 같아 방법을 찾아보니 linux의 fdisk를 이용하면 된다고 해서 바꿔본다. 참고로 MacOS Extended Journaled partition은 partition id가 0xaf이다. fdisk에서 partition type을 0xaf로 넣어주면 모르는 (unknown) partition type이라고 하는데, 그냥 무시하자.

다시 MacOS 설치 단계에 진입해서 disk repair를 시도한다. 복구 안된다. Windows가 생각보다 많은 부분을 건드린 것이다. SSD 그리고 HDD에 있는 MacOS partition은 모두 다 못 쓰게 만들어놓았다. 그러나 울며 겨자먹기로 linux에서 mount는 가능하다. 이때 재빨리 살아있는 파일들을 모두 백업해놓는다. Linux가 없었으면 이런 일은 꿈도 못 꿨을 것이다.

2) reinstall MacOS

이 과정이 좀 신기한데, Macbook에서 만든 installation disk, USB stick 모두 설치 화면에 진입해서 설치 버튼을 눌러 진행하면 중간에 뭔가 잘못 되어있었는지 아니면 설치가 끝나서 재부팅을 한 것인지, 재부팅하면 여전히 제대로 부팅이 되지 않는다. 확인차 새로운 OS를 설치하려는 디스크에 가보면 달랑 Install Mac OSX.app이 덩그러니 들어있다. 시스템이 설치되지 않은 것이다. 그것도 한번은 USB로 한번은 외장하드로 시도했는데 모두 다 같은 결과가 나왔다. 이거 어찌 해야하나 자포자기의 심정으로 Recovery partition을 선택해 부팅해본다. 앗! 왠 걸. 부팅이 되자마자 인터넷을 통해 OS를 download하겠단다. iMac이나 Macbook에서는 이렇게 해봤다만 clover에선 처음인데 반신 반의 하는 심정으로 시도한다. 실제로 설치 앱을 받아온다. 한참 지나니 다 받았다며 설치 과정을 진행한다. 반신 반의 시키는 대로 해본다. 제대로 설치가 되고 있다. 아 재부팅까지 완벽하게 된다.

결론..

MacOS는 왠만해서 잘 고장 나지 않는 OS이다. 꼬였다고 생각하면 최소한의 노력으로 해결할 방법을 찾길 바란다. 급한 마음에 이런 저런 방법을 나처럼 잘못 시도하다가는 문제가 심하게 꼬여서 나중에 회복할 수 있는 여지마저 잃어버릴 수 있다. 특히나 윈도우즈로 부팅하지 말길 바란다. 또 하나의 OS가 하나의 disk를 쓰도록 하는 것이 바람직하니 여러 개의 OS를 한 disk에 심는 우를 범하지 말라. 설치시에는 이것이 일종의 도전이고 경제적인 방법이니 선호하게 될지 모르지만, 나중에 문제가 발생하게 되면 정말로 골치 아픈 일이 생길 수 있다. Clover bootloader를 쓴다면 긴급 상황에서 recovery partition을 무시하지 말길 바란다. 다만 이 때를 대비해서 NIC의 kext는 제대로 잘 inject 될 수 있게 해야한다. 기왕이면 하드웨어가 native로 인식되는 것을 사용하면 이럴 걱정도 없으니까 더 좋고 말이다.