Windows 10 IoT Core와 Pi 3

1.
Raspberry Pi를 애용하지만 Linux계열을 사용합니다. Windows 10 IoT Core라는 OS도 설치가능하고 동작한다는 이야기를 들었지만 한번도 시도하지 않았습니다.

잘 알고 지내는 용산 사장님이 연락을 주셨습니다. 데이타를 복구하는데 도움을 달라고 합니다. 메인보드 혹은 보드와 관련한 수리에 있어서 엄청난 전문가이시지만 소프트웨어는 가끔 문의를 주십니다. 방문해서 보니까 SD 카드를 주십니다. 디렉토리를 구조를 보니까 생소합니다. MainOS라는 폴더명이 보입니다. 혹시나 해서 MainOS라는 배포판이 있는지 보니까 전혀 없습니다.

하드웨어가 무엇인지 물어보니까 Raspberry Pi 3 모델입니다. Raspberry Pi에 Windows IoT Core를 설치해서 무슨 기계를 만든 듯 합니다. 갑자기 정전이 발생하면서 SD카드의 부트섹터가 날아가서 부팅을 못하는 상태였습니다.

기본적인 정보를 가지고 Windows 10 IoT Core를 설치하기 위한 준비를 하였습니다. 마이크로소프트가 관련한 파일을 제공합니다.

Windows 10 IoT Core
Windows 10 IoT Core for Raspberry Pi 2 / 3

이중에서 Raspberry Pi 3용을 다운 받습니다. ISO파일을 실행하면 msi파일을 확인할 수 있습니다.

msi를 실행하면 flash.ffu라는 파일을 설치합니다.



이제 ffu파일을 이용하여 부팅디스크를 만들어야 합니다. 가장 손쉬운 방법은 Windows IoT Dashboard를 설치하는 것입니다. 다만 어느 순간부터 마이크로소프트가 지원을 하지 않습니다. 다운을 받을 수 없습니다. 관련한 파일을 다운받을 수 있는 곳도 없습니다.

그래서 구글링을 해보니까 – 요즘은 Gemini에게 물어보는 분들이 많지만 – 아래 사이트가 괜찮아 보였습니다.

Eyeing up the Internet of Things with Windows 10 IoT Core on the Raspberry Pi 2

대안은 dism.exe라는 프로그램을 이용하여 CLI방식으로 이미지를 만드는 것입니다.

DISM.exe(배포 이미지 서비스 및 관리)는 Windows 운영체제 이미지를 관리, 수정, 복구하고 Windows 환경(PE, RE, 설치 프로그램)을 준비하는 데 사용되는 강력한 명령줄 도구입니다. 이 도구는 온라인(현재 실행 중인 운영체제) 및 오프라인(WIM, VHD 파일) Windows 이미지를 모두 처리할 수 있습니다

dism.exe를 설치하기 위하여 Windows ADK 다운로드 및 설치에서 파일을 받아서 설치하였습니다.

필요한 소프트웨어를 선택하고 설치하였습니다. 이제 SD 카드를 준비합니다. diskpart.exe를 이용하여 디스크를 깨끗이 정리합니다

이제 부팅디스크를 만들 순서입니다.

dism.exe /Apply-Image /ImageFile:flash.flu /ApplyDrive:\\.\PhysicalDrive1 /SkipPlatformCheck

조금은 복잡합니다. 무슨 뜻인지 모를 정도이지만 help를 보면 지원하는 옵션이 무척이나 많습니다. 위 명령어를 정상적으로 실행하려고 할 때 실수를 두가지 했습니다.

첫째는 ffu파일의 위치입니다. 절대경로로 해야 잘 동작합니다.
둘째 PhysicalDrive에서 숫자를 무엇으로 할지입니다. 일반 드라이브철자가 아니라 diskpart로 할 때 보이는 숫자를 입력합니다. 예를 들어서 Disk 2라고 하면 PhysicalDrive2로 하면 동작합니다.

몇 번의 실수를 한 후 실행하니까 최종 빌런이 가로막아 섰습니다. 마지막 옵션입니다. 에러로그입니다.

dism.exe가 /SkipPlatformCheck를 인식하지 못하는 문제입니다. Gemini가 분석한 결과는 이렇습니다.

최신 버전(10.0.26100)의 DISM에서도 동일한 에러가 발생하는 것으로 보아, 현재 사용 중인 Windows 환경의 DISM 라이브러리(Provider)가 /SkipPlatformCheck 옵션을 완전히 거부하고 있는 상황입니다.

2.
이제 우회로를 가야 합니다. 검색한 결과는 다음의 방식입니다.

첫째 ffu를 img(Raw Image)로 변경한다.
둘째 Raspberry Pi Imager를 이용하여 부팅디스크를 만든다.

ffu를 img로 바꾸려면 ffu2img라는 파일을 받아야 합니다.

Installing Windows 10 on Raspberry Pi 2 using your Mac

Python과 위에서 받은 파일을 이용하여 아래와 같이 실행합니다.

이제 rapberry pi Imager를 이용하여 디스크를 만듭니다.

Device를 선택한 후 OS를 선택할 때 Custom에서 앞서 만든 img파일을 선택합니다. 이렇게 하고 난 결과는 다음과 같습니다.


무척이나 지저분한 파티션입니다. 수정할 수도 있지만 그대로 두었습니다.

3.
마지막 관문입니다. Raspberry Pi 3에 넣고 실행을 해봅니다.

위 화면으로 IP주소등을 확인한 후 웹으로 접속한 화면입니다.

Leave a Comment

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 Akismet을 사용하여 스팸을 줄입니다. 댓글 데이터가 어떻게 처리되는지 알아보세요.