진정한 Mac OS X LIVE DVD 제작 기법이 탄생했습니다 (InsanelyMac X Labs)
InsanelyMac 개발팀(spartango, REVENGE 등)이 OS X의 NetBoot 이미지 부팅 아키텍처(IOHDIXController, imageboot, vndevice 및 RAMDisk 섀도우 파일 Copy-on-Write)를 응용해 하드 디스크 설치 없이 DVD만으로 읽기/쓰기가 가능한 완전한 Mac OS X Live DVD를 구동하는 방법을 완성했습니다.
- 주 저자
-
@nfoav8or
게시일: 2009-01-03
- 소속 컬렉션
- 커널 릴리스 및 커뮤니티 공식 발표
- 아카이브 기록 규모
- 누적 조회 212,477회 · 선별된 필드 노트 7건 (원본 게시물 12건에서 추출) · 2009-01-03 – 2009-05-30
- 참여 및 검증 멤버 (8)
- @nfoav8or (3)@milanca (2)@cmdshft (2)@Voyn1x@bob5731@biker69@ultimo@Quentin
- 관련 하드웨어 참조
- AMD Desktop Processors ↗ USB 3.2 Boot Flash Drives ↗ SATA III & NVMe SSDs ↗
InsanelyMac의 개발팀(Dev Team) 덕분에 OS X 및 OSx86 사용자들이 오랫동안 꿈꿔왔던 진정한 의미의 'Live DVD'가 마침내 현실이 되었습니다.
InsanelyMac.com에 올라온 spartango 님의 원본 발표글 인용:
"REVENGE 님이 개발 참여를 독려한 지 얼마 지나지 않아, 마침내 OS X Live DVD 개발팀이 대박을 터뜨렸습니다!
누구나 쉽게 따라 할 수 있으면서도 아주 훌륭하게 작동하는 Live DVD 제작 기법을 완성했습니다. 더 놀라운 점은 어떤 Kext와 부트로더를 조합하느냐에 따라 해킨토시뿐만 아니라 정품 리얼 Mac에서도 똑같이 작동한다는 사실입니다!
이 방식이 가능한 근본적인 이유는 OS X 내부에 원래 네트워크 부팅(NetBoot)을 지원하기 위한 디스크 이미지 부팅 서브시스템이 내장되어 있기 때문입니다. IOHDIXController와 커널은 전달받은 디스크 이미지 경로를 "imageboot" 메커니즘을 통해 부착 가능한 파일 시스템으로 인식하고 루트(/) 파티션으로 직접 마운트할 수 있습니다.
나아가 Apple은 읽기 전용(Read-only) 디스크 이미지에 '섀도우 파일(Shadow file)'을 덧붙여 마치 쓰기 가능한(Writable) 볼륨처럼 동작하게 만드는 시스템을 구축해 두었습니다. 원래는 네트워크 부팅 환경에서 각 사용자의 세션을 로컬의 비영구적(임시) 공간에서 처리하기 위해 고안된 기능으로, /etc/rc.netboot 스크립트에 구현되어 있습니다. 기본 원리는 vndevice(/usr/libexec/vndevice)가 원본 DMG 이미지에 섀도우 파일을 연결하고 해당 장치에 Copy-on-Write(쓰기 시 복사) 전략을 활성화하여, DMG에 가해지는 모든 쓰기 작업을 임시 섀도우 파일로 우회시키는 것입니다. 이는 Linux Live DVD에서 UnionFS를 통해 구현하는 방식과 매우 흡사합니다.
일반적인 NetBoot 환경에서는 이 섀도우 파일이 로컬 하드 디스크나 NFS/HFS 네트워크 공유 폴더 위에 생성됩니다. 반면 제가 고안한 방식에서는 HFS로 포맷된 램디스크(RAMDisk) 위에 섀도우 파일을 생성하며, 시스템은 마치 NetBoot로 부팅된 것과 완전히 동일하게 동작합니다. 유일한 차이점은 부팅할 원본 DMG 경로를 로컬 파일(file:///)로 지정한 뒤 커스터마이징된 rc 스크립트를 수동으로 실행한다는 점뿐입니다. 이 스크립트는 rc.netboot와 똑같이 작동하되, 로컬 디스크 대신 램디스크를 생성하고 그 위에 섀도우 파일을 설정합니다. 이 과정이 끝나면 루트(/) 파일 시스템이 완벽한 읽기/쓰기(R/W) 상태가 되며, OS X는 평소처럼 Finder 데스크톱 화면으로 정상 부팅되어 모든 기능을 사용할 수 있게 됩니다.
더 자세한 기술적 내용은 아래 InsanelyMac X Labs 링크에서 확인하실 수 있습니다!
http://forum.insanelymac.com/index.php?showtopic=144128 ↗
상단 원본 인증 사진 출처: 원본 게시물 ↗의 spartango 님 제공.
개인적으로 그동안 modbin 님의 기존 방식 ↗을 개조해 어떻게든 성공시켜 보려고 한참을 씨름했던 터라, 저보다 훨씬 뛰어난 두뇌를 가진 개발자분들의 이번 쾌거에 깊은 경의를 표합니다 :-B
아울러 당부드리고 싶은 점은, 사람들이 이 제작 기법으로 만든 온갖 변종 Live DVD 이미지들을 인터넷에 무분별하게 도배하지 말았으면 좋겠습니다. Windows 사용자분들의 경우 이미 배포된 몇몇 이미지들이 있으니 TransMac으로 이미지 내부의 파일만 본인 사양에 맞게 살짝 수정해 쓰시면 됩니다. 그리고 이미 OS X를 구동 중인 나머지 분들은... 공개된 [How-To] 가이드를 보고 직접 본인의 Live DVD를 만들어 쓰시기 바랍니다. 이제 가이드가 잘 정리되어 있어서 직접 만드는 것도 충분히 쉽습니다. 기술적인 질문은 개발팀(Dev Team)에게 직접 문의하시거나 이곳 포럼에서 함께 토론하셔도 좋습니다(단, 스레드 제목에 말머리를 명확히 달아주세요).
이번 LIVE DVD의 탄생을 계기로 그동안 복구가 불가능하다고 여겨졌던 먹통 시스템들까지 손쉽게 살려낼 수 있게 되기를 기대해 봅니다.
개발자분들께 다시 한 번 박수를 보냅니다. 정말 대단한 업적입니다, Dev Team!
(본문 상단에 첨부된 OS X LIVE 로고 이미지는 예전에 제가 만들던 구형 AMD-LIVE DVD 프로젝트용으로 포토샵에서 직접 제작했던 이미지를 이번 기사에 맞춰 편집한 것입니다.)
커뮤니티 실측 및 기술 필드 노트
총 12개의 원본 스레드 응답 중 기술적 가치가 높은 7개의 필드 노트 수록
정말 환상적인 소식이네요! 오랫동안 이 기능이 나오기만을 손꼽아 기다려 왔습니다 :
네, 이건 진짜 대단한 물건입니다.. 며칠 전 InsanelyMac에서 원본 스레드를 보자마자 직접 하나 만들어 봤는데 마법처럼 완벽하게 돌아가더군요. 해킨토시 커뮤니티 전체에 엄청난 도움이 될 기술입니다.
@bob5731완성된 ISO 이미지 파일을 구하고 싶습니다.
소식에 따르면 조만간 출시될 신형 Leo4All 설치 DVD에 이 Live DVD 기능이 기본 탑재될 예정이라고 합니다. 제가 만든 이미지를 굳이 따로 업로드하지 않는 이유도 바로 그 때문입니다. 제 시스템과 주변의 몇몇 PC에서 잘 돌아가도록 LiveDVD를 만들어 두긴 했지만, 원래 범용 배포를 염두에 두고 설계한 게 아니라서 이걸 그대로 올렸다가는 자기 컴퓨터에서 안 돌아간다고 불평하는 글들이 쏟아질 게 뻔하거든요.
차라리 직접 본인이 만드는 편이 훨씬 간단합니다.
"구버전" Leopard OSx86 설치 DVD를 기반으로 업데이트를 적용한 뒤 공개된 가이드를 그대로 따라 하시면 됩니다. 제가 보기엔 과정이 꽤 단순합니다.
맞습니다, 직접 LiveDVD를 만드는 과정 자체는 생각보다 무척 간단하더군요. 저도 직접 하나 제작해서 제 시스템 두 대에서 모두 잘 돌아가는 것을 확인했습니다. 인터넷에 업로드할 수도 있겠지만 그러려면 수많은 메인보드 칩셋 드라이버들을 폭넓게 커버해야 해서요. 나중에 기회 봐서 범용(Universal) LiveDVD 형태로 묶어볼까 싶기도 하지만 아직 확신은 없네요. 어쨌든 이 기술이 엄청난 혁신이라는 사실만큼은 분명합니다. 이제 비상 복구용으로 다른 하드 디스크에 예비 OS X를 따로 깔아둘 필요도 없고, 느려터진 설치 DVD로 부팅하는 대신 이 LiveDVD로 부팅해서 백업 디스크 이미지를 복원하거나 깨진 시스템을 수리하는 등 다방면으로 활용할 수 있게 되었습니다.
이 방식에는 물리 RAM 용량 제한이 있는 것 같습니다.
제 컴퓨터는 RAM이 1GB인데, 지인에게 전달받은 테스트용 Live DVD로 부팅해 보니 끝까지 부팅되지 않고 중간에 멈춰버리더군요. 시스템을 완전히 부팅하려면 최소 1.1GB 이상의 물리 RAM이 있어야 하는 것 같습니다.
제 생각에는 초기 빌드 스크립트에서 램디스크(RAMDisk) 할당 크기를 줄여주면 1GB 미만의 적은 RAM을 가진 시스템에서도 충분히 부팅이 가능할 것 같습니다.
조만간 PCWiz 님과 함께 몇 가지 추가 테스트를 진행할 예정입니다. 그분께 전달되는 테스트 빌드를 바탕으로 시스템의 물리 RAM 용량을 자동으로 감지해 최적의 램디스크 크기를 동적으로 잡아주는 스크립트를 시험해 볼 생각입니다.