Computer >> 컴퓨터 >  >> 하드웨어 >> 하드웨어

읽기 전용 UEFI NVRAM 우회 설치 방법: VirtualBox Raw Disk 활용 가이드

오늘 주제에 가장 적절하고 유용한 제목을 무엇으로 할지 한참 고민한 끝에 이렇게 정했습니다. 간단히 말씀드리면, Windows와 여러 Linux 배포판을 8중 부팅으로 운영하던 제 Lenovo G50 테스트 노트북의 NVRAM이 최근 읽기 전용(read-only) 상태로 바뀌어 버렸습니다. 이로 인해 UEFI 설정을 변경할 수 없게 되었고, 당연히 외부 미디어로 부팅하거나 새 시스템을 설치하는 것도 불가능해졌습니다.

그래도 기존 구성에 어떤 식으로든 변경을 가하고 싶었기에, 우회로가 있을지 잠시 고민해 보았습니다. 답은 '있다'였습니다. 오늘 소개할 내용은 데이터 측면에서 다소 위험할 수 있는 트릭으로, 명백한 하드웨어 제약에도 불구하고 새 시스템을 설치할 수 있게 해 줍니다. 함께 살펴보겠습니다.

VirtualBox Raw Disk 접근

본격적으로 시작하기 전에 엄중하게 경고합니다.

오늘 다룰 내용은 가상화와 raw disk 접근에 대한 전문 지식과 자신감을 요구합니다. 매우 까다롭고 위험한 작업 묶음으로, 심각한 데이터 손실과 큰 고통으로 이어질 수 있습니다. 어떤 이유에서든 이 글의 지침을 따르면 시스템이 완전히 망가지고 소중한 개인 정보를 잃을 수도 있습니다. 반드시 신중하게 진행하시기 바랍니다.

데이터 백업과 시스템 이미징을 마쳤다면 이제 테스트를 고려해 볼 수 있습니다. 작동 원리는 이렇습니다. VirtualBox는 디스크 전체 또는 특정 파티션을 가상 디스크로 마운트하는 기능을 제공하며, 이것이 바로 'raw 접근'이라는 표현의 의미입니다. 가상 디스크 역할을 할 파일 컨테이너를 새로 만드는 대신, 실제 물리 하드웨어를 직접 사용하는 방식입니다.

따라서 아이디어는 이렇습니다. 가상 머신을 생성하고 raw disk 접근 기능을 활용한 뒤, ISO로 부팅하여 해당 운영체제를 물리 파티션에 설치합니다. 이때 부트로더 설정은 일부러 건너뛰고, 부팅 순서를 관리하는 실제 운영체제(여기서는 openSUSE)로 들어가 그곳에서 GRUB을 갱신하는 것입니다.

Raw Disk 생성

다음 명령 하나면 마법처럼 처리됩니다:

VBoxManage internalcommands createrawvmdk -filename file.vmdk -rawdisk /dev/sdX -partitions Y,Z -relative

각 옵션을 살펴보겠습니다. 먼저 VMDK 파일을 생성할 위치를 지정합니다. 홈 디렉터리나 가상 머신을 모아 두는 전용 폴더 어디든 좋습니다. 그다음 사용할 raw 디스크(제 경우 /dev/sda)와 파티션을 지정합니다. 저는 하나만 선택했습니다(/dev/sda8, CentOS 7.2가 들어 있는 파티션). 그리고 relative 플래그를 함께 사용했는데, 이 플래그를 붙이면 해당 파티션에만 쓰기 권한이 허용되어 발생 가능한 피해 범위를 줄일 수 있습니다.

VBoxManage internalcommands createrawvmdk -filename test.vmdk -rawdisk /dev/sda -partitions 8 -relative

VBoxManage internalcommands createrawvmdk -filename /home/roger/test.vmdk -rawdisk /dev/sda -partitions 8 -relative
RAW host disk access VMDK file /home/roger/test.vmdk created successfully.

이 명령은 sudo 또는 root 권한으로 실행해야 합니다. VirtualBox 역시 같은 방식으로 시작해야 합니다(vmdk 파일의 권한 및 소유권과는 무관합니다). mount 작업과 마찬가지로 장치를 직접 잡으려면 특수 권한이 필요하기 때문입니다.

저장소 화면을 잘 보십시오. Kubuntu 파티션은 100GB인데도 1TB 디스크로 표시됩니다. raw disk 접근을 사용 중이기 때문입니다.

sudo나 root 없이 실행하면 다음과 같이 불친절하고 도움이 되지 않는 오류를 만나게 됩니다:

Result Code: VBOX_E_FILE_ERROR (0x80BB0004)
Component: MediumWrap
Interface: IMedium {4afe423b-43e0-e9d0-82e8-ceb307940dda}
Callee: IVirtualBox {0169423f-46b4-cde9-91af-1e9d5b6cd945}
Callee RC: VBOX_E_OBJECT_NOT_FOUND (0x80BB0001)

UEFI 환경에서의 추가 설정

여기서 끝이 아닙니다. 상황을 더 복잡하게 만드는 것은 제 시스템이 UEFI 방식에 GPT 디스크 레이아웃이라는 점입니다. 이 경우 디스크에 SATA 컨트롤러를 사용해야 하고, ISO도 같은 방식으로 마운트해야 합니다. 게다가 가상 머신 설정에서 EFI를 활성화하도록 지정해야 합니다. 참고로 '설정해야 한다'는 표현은 사실 저 자신을 가리키는 말입니다. 여러분은 굳이 이런 작업을 할 필요가 없기를 바랍니다.

테스트 결과

실제로 이 방식으로 가상 머신을 손쉽게 부팅할 수 있었습니다. 디스크 전체 구조가 그대로 드러나며, 이를 피할 방법은 없습니다. 이후에는 단순한 설치 작업과, 아무것도 손상되거나 훼손되지 않도록 하는 강한 집중력만 남습니다. 그럼에도 이 방법은 새 데이터를 물리 파티션에 기록할 수 있는 하나의 통로를 제공한다는 점에서 의미가 있습니다.

기술적으로는 가상 머신을 부팅한 뒤, 확장하여 마운트한 라이브 미디어에서 하드 디스크로 데이터를 직접 복사하는 방법도 가능합니다. dd를 사용할 수도 있지만, 이쯤 되면 상당히 과감하고 위험한 영역에 들어선 셈입니다.

이것을 우리는 흔히 '인셉션(Inception)'이라고 부릅니다.

결론

raw 접근을 일종의 전략 무기라고 생각하십시오. 평소에는 절대 사용하고 싶지 않지만, 그것이 존재한다는 사실 자체가 마음을 편안하게 해 주고, 비상시에 필요하다면 의지할 수 있다는 점이 중요합니다. 대신 저는 시스템 안에서 이루어지는 자연스러운 업그레이드가 충분히 흥미로울 것이라 생각하며, 배포판 탐험이라는 오락거리는 구형 테스트 머신 몇 대가 책임져 줄 것입니다.

생각해 보면 방법은 언제나 있습니다. 하지만 저는 평화적인 해결책, 즉 노트북을 분해하거나 디스크의 모든 것을 걸지 않고도 NVRAM을 다시 쓰기 가능한 상태로 되돌리는 방법을 찾는 것을 선호합니다. 그래도 정말로, 정말로, 정말로 필요하다면 가상화를 통한 raw disk 접근이 하나의 대안이 되어 줍니다. 물론, 평소에는 결코 사용하지 않는 것이 좋습니다. 항상 건강하시고, 안전한 컴퓨팅 되세요.