8 min read

VMware에서 XPEnology 돌려보기

개인용 및 SOHO용 NAS에서 유명한 브랜드로 시놀로지(Synology)가 있다. 디스크 스테이션 매니저(DSM)라는 웹 기반 UI로 편리하게 사용할 수 있어 인기가 좋지만, 아무래도 가격대가 높다 보니 선뜻 구매가 어렵다.

XPEnology라고, 시놀로지 하드웨어를 에뮬레이트 해 주는 부트로더가 있다. 이걸 이용하면 DSM을 아무 하드웨어에서나 구동할 수 있어서 흔히 해놀로지(해킹된 시놀로지)라고 부른다. 법적으로 문제되는지 여부는 사실 잘 모르겠다. 써 볼 지 어쩔지는 이 글을 읽고 있는 독자 본인의 선택이다.

여하튼. 정석적인 설치 방법은 NAS로 활용할 전용 PC를 준비하고 USB에 부트로더를 설치하여 구동하는 것이다. 다만 이런저런 이유로 전용 PC 준비가 어려운 경우 VMware 같은 가상화 솔루션을 이용하여 XPEnology를 구동해 볼 수 있다. VMware에서 가상 USB를 지원하지 않기 때문에 설정 방법이 조금 더 복잡해진다.

VMware 설치 방법은 생략한다. 2022년 1월 현재 VMware Workstation 30일 무료판을 이용할 수도 있고, 개인용으로 무료인 VMware Player를 이용할 수도 있다. 가상 머신을 생성하는데 Linux, Other 5.x kernel (64bit) 로 진행하면 된다. DSM 자체가 꽤 사양을 요구하기 때문에, XPEnology 구동할 가상 머신은 2코어, 램 2GB 이상으로 설정하는게 좋다. 가상 디스크는 저장소로 사용할 디스크를 SATA 형식으로 생성한다. ~100GB 정도는 되어야 쓸만할 것이다.

XPEnology 포럼에서 부트로더를 다운로드 한다. DSM 6.2 버전의 부트로더는 다음 링크에서 다운로드할 수 있다. DS918+ v1.04b 를 다운로드하면 된다.

https://xpenology.com/forum/topic/12952-dsm-62-loader/

다운받은 파일의 압축을 해제하면 50MB의 synoboot.img 파일만 덜렁 나올 것이다. 참 불친절하지만 개인 개발자가 돈도 안 받고 만들어 올려주는 것에 불만을 갖지 말자.

부트로더를 다운로드 받았으면 이제 설정을 약간 손봐야 한다. 윈도우에서 osfmount 툴을 사용하거나, 리눅스에서 루프 마운트를 이용해서 파티션을 마운트 할 수 있다. 해당 이미지 안에는 3개의 파티션이 있는데, 그 중 첫 번째 파티션을 마운트 한다. 리눅스라면 다음 명령어 비슷하게 입력하면 될 것이다.

$ fdisk -l ./synoboot.img
Disk ./synoboot.img: 50 MiB, 52428800 bytes, 102400 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 52173969-41B8-4EDB-9190-B1CE75FCFA11

Device          Start    End Sectors Size Type
./synoboot.img1  2048  32767   30720  15M EFI System
./synoboot.img2 32768  94207   61440  30M Linux filesystem
./synoboot.img3 94208 102366    8159   4M BIOS boot
$ sudo mount -o loop,offset=$((2048*512)) ./synoboot.img ./temp
$ cd ./temp/grub
$ sudo nano grub.cfg

이제 grub.cfg 파일을 수정해 준다. 주로 수정할 부분은 다음과 같다.

  • 22-23번 라인: vid=pid=를 설정하는 부분이다. 실제 PC에서 USB 부팅으로 사용한다면 이 부분을 USB의 값에 맞도록 수정해 주어야 한다. 가상머신 에서는 반영되지 않으므로 기본값을 그대로 두어도 된다.
  • 24번 라인: sn=기기 시리얼 번호를 설정한다. 자리수가 동일하도록 적당히 숫자만 고쳐 준다.
  • 25번 라인: mac1= 이더넷 MAC 주소를 변경해 준다. 가상머신의 MAC 주소는 가상머신 콘솔의 Devices 에서 Network Adapter 더블클릭하여 설정창을 연 뒤 Advanced... 버튼을 클릭하면 확인할 수 있다.
  • 실제 PC에서 랜카드가 여러 개라면 이 줄 다음에 이어서 mac2, mac3, mac4 까지 추가해 주면 된다.
  • 34번 라인: sata_args= SATA 설정을 변경해 준다. 가상머신에서 작동할 때 이 부분 설정이 중요한데, SataPortMap=44 DiskIdxMap=0010 으로 입력해 주면 대체로 문제없이 작동한다.
    SataPortMap=44 부분은 한 자리씩 잘라서, 첫 번째 SATA 컨트롤러의 포트가 4개, 두 번째 컨트롤러의 포트가 4개라고 강제로 인식시키는 명령어이다. DiskIdxMap=0010 부분은 두 자리씩 잘라서, 첫 번째 SATA 컨트롤러의 포트가 0x00=0번으로 인식되고, 두 번째 컨트롤러의 포트는 0x10=16번으로 인식되도록 한다.
    이후 가상머신에서 데이터 디스크는 첫 번째 컨트롤러에, 부팅 디스크는 두 번째 컨트롤러에 설정할 것이다. DSM에서 하드디스크는 0~15번 까지만 인식하므로, 부팅 디스크를 16번으로 설정하여 인식에서 제외시키는 것이다. 이 작업을 해 주지 않으면 부팅 디스크를 데이터 디스크로 인식하면서 DSM 초기 설치시 오류가 발생하게 된다.
  • 실제 하드웨어에서도 컨트롤러를 여러 개 연결하여 하드 디스크를 십수개 씩 연결하는 경우, 이 부분을 컨트롤러 환경에 맞도록 설정해야 한다. 특히 HBA를 사용하여 SAS 인터페이스를 사용하는 경우, SasPortMap, SasIdxMap 파라미터를 지정해 주어야 한다.
  • 37번 라인: timeout= 부트 메뉴 대기 시간이다. 기본값 1초는 너무 짧으므로 3초나 5초 정도로 수정한다.

이제 grub.cfg 파일을 저장하고, synoboot.img 파일을 가상 디스크 VMDK 포맷으로 바꾸어 주어야 한다. img파일은 raw disk image이므로, 그냥 50MB짜리 Pre-allocated VMDK 파일을 만들고 데이터 파일만 바꿔주면 된다. 굳이 서드파티 툴을 사용할 필요가 없다. VMware를 기본 디렉터리에 설치했다면 명령 프롬프트를 열고 다음과 같이 실행하면 된다. -t 2 부분이 Preallocated VMDK 파일을 만들라는 옵션이다.

"C:\Program Files (x86)\VMware\VMware Workstation\vmware-vdiskmanager.exe" -c -s 50MB -t 2 synoboot.vmdk

이제 synoboot.vmdk, synoboot-flat.vmdk 파일이 생성되었을 것이다. flat 파일을 삭제하고, synoboot.img 파일을 해당 이름으로 바꿔주면 된다.

생성한 부트로더 파일을 가상머신에 추가해 준다. 이 때 SATA로 추가해 준 다음, SATA node를 변경해 주어야 한다. 가상머신 콘솔의 Devices 에서 추가된 디스크의 Hard Disk  X (SATA) 를 선택한 뒤, Advanced... 에서 node를 1:0 으로 바꿔 준다. 두 번째 컨트롤러의 첫 번째 장치로 바꾸어 주는 것이다.

이제 가상머신 전원을 켠다. 부트로더에서 세 번째 항목을 선택해야 함을 잊지 말자. Happy hacking. 메시지가 뜨면 30초 정도 기다렸다가 http://find.synology.com/ 에 접속해서 초기 설정을 진행하면 된다.

시스템 설치시 DSM 설치 파일은 6.2.3 버전을 수동으로 설치해 주어야 한다. 자동 설치를 선택하면 6.2.4를 다운로드 하는데, 이 버전에는 부트로더 파손되는 문제가 있어서 설치를 권장하지 않는다. 다음 URL에서 구 버전을 다운로드 받을 수 있다. DS918+ 로 검색해서 다운로드 받으면 된다.

https://archive.synology.com/download/Os/DSM/6.2.3-25426

설치 후 다음 포럼 글에 따라 FixSynoboot.sh 를 설치해 주면 DSM 6.2.3-Update3 까지 업데이트가 가능하게 된다. 포럼 가입이 필요한데 이메일 주소만 있으면 된다. 귀찮다면 그냥 업데이트 안 하고 써도 된다.

https://xpenology.com/forum/topic/28183-running-623-on-esxi-synoboot-is-broken-fix-available/