Xpenology DSM7 만능 부트로더 만들기(Tinycore)

Xpenology DSM7 만능 부트로더 만들기(Tinycore)

안녕하세요. 달소입니다.

최근에 redpill loader의 업데이트가 없어도 꾸준하게 헤놀포럼의 경우 눈팅을하고있었는데요.

인기있는 pocopico님의 tinycore를 소개해드리고자 합니다.

tinycore 는 초경량 리눅스로 구동되는 OS인데 이 OS에 부트로더를 생성할때 필요한 모든것을 넣어두고 이미지화 시킨게 pocopico/tinycore 입니다.
가장좋은기능은 아마 Native 유저들이 사용하시는 SataPortMap / SasIdxMap등을 자동으로 인식해서 로더에 포함시켜주는 기능이 아닐까 싶습니다.

간단하게 말씀드리자면 기존 Redpill 부트로더를 만들기위해서는 Linux 환경을 설치하고 docker를 설치하고 jq 등 패키지를 추가로 설치하고 툴체인을 받아서 이미지를 만들고 받고 vmdk 및 usb에 썼다면 pocopico의 tinycore의 경우 동작이 신기합니다.

동작을 제대로 이해하지않을경우 기존 redpill 보다 어렵게 느껴지실수도 있을거라고 생각은 하지만.. 이해하신다면 크게 어렵지는 않을 수 있습니다.
+2022/02/16 tinycore업데이트로 DS3622XS 모델도 지원대상에 추가되었습니다.

tinycore linux의 역할

-tinycore에서 부트로더 빌드시 tinycore의 파티션 자체를 별도로 빼고 tinycore 내에 부트로더를 생성합니다.(ex. 최초 grub 에 tinycore1개만 있던게 bootloader가 신규로 추가)
-tinycore는 4가지 모델을지원합니다.(DS918+/DS3615xs/DS3617xs/DS3622xs)
-tinycore는 부트로더에 필요한 기본셋팅이 되어있는 상태이고 여기서 부트로더의 pid/vid/sn/mac/sataportmap 등을 변경합니다.
-tinycore에서는 추가하고싶은 확장드라이브를 기존처럼 추가할 수 있습니다.
-tinycore에서는 각 모델별 sn/mac을 몇 가지 제공해줍니다.(vmdk일경우 유용/Native일경우 상관x)
-위 과정을 통해 이미지를 다시만들지않고도 지속적으로 부트로더를 자체 변경가능합니다.(모델/sn/mac등)
-tinycore는 img와 vmdk 두가지를 모두 지원합니다.

img의 경우 usb에 windiskimager 프로그램을 통해 이미지를 USB에 쓰고 기존부트로더처럼 접속해주시면 됩니다.

vmdk의 경우 바로 virtualbox,esxi나 vmworkstation에 붙여서 로드해주시면됩니다.

이 글은 가이드를 위해 esxi+vmdk를 기본으로 가이드를 진행하겠습니다.

준비사항

tinycore img/vmdk
usb일 경우 usb/windiskimager
vmdk일 경우 virtualbox/esxi/vmworkstation

ssh 접속용 putty 파일전송용 winscp
ipscanner 등등

tinycore 이미지와 vmdk 파일은 아래 공식 깃 이나 서버포럼 자료실에서 한방팩을 다운로드 받아주세요.

서버포럼 자료실 한방팩 https://svrforum.com/148632

https://github.com/pocopico/tinycore-redpill

다운로드 받은 gz 파일의 압축을 풀어서 Native와 가상환경에 맞춰서 준비해줍니다.

Native - windiskimager로 usb에 이미지 쓰기

가상환경 - esxi/vmworkstation인 경우 이미지를 데이터스토어에 올리고 vmdk 형식 변경. cmd나 shell에서 (vmkfstools -i [기존vmdk파일] [변경할vmdk파일])

자 길고 긴 준비가 끝났으니 부팅됐다는 가정하에(?) 바로 시작해보겠습니다.

VM 가상머신 생성하기

ESXi의 경우 깡통 VM을 먼저 만들어주세요.

linux 커널 4버전 64비트,디스크는모두 제거 , SCSI 컨트롤러 삭제 / CD 디스크 삭제 / 부트옵션 UEFI, CD롬 삭제 등등을 해주고 만들어줍니다.

ESXi의 경우 위에서 말씀드린대로 vmdk 형식변경이 필요하기때문에 데이터스토어를통해 vmdk를 먼저 업로드해주세요.

그리고 esxi ssh로 접근해서 해당볼륨으로 가신뒤 아래 명령어로 부트로더 형식을 바꿔줍니다.
vmkfstools -i tinycore-redpill.v0.4.4.vmdk tinycore-redpill.vmdk

이제 깡통 VM에 디스크를 추가해줄 차례입니다.
기존디스크에 아까만든 ESXi vmdk 및 신규디스크(데이터저장용) 하나를 추가해줍니다.

시작을 누르면 tinycore linux로 자동으로 부팅이되며 로딩 후 터미널을 실행시켜서 ip를 확인해주시거나 ip스캐너로 22번포트가 열려있는 새로운 ip를 확인해주셔도 됩니다.

이제 이 ip로 putty를 사용해서 접근해줍니다.

putty는 ssh 접근 툴 입니다.

계정명 : tc // 비밀번호 : P@ssw0rd

부트로더 세부 값 설정하기(vid/pid/mac/sn/satamap/idxmap 등등)

저는 DS918+를 기준으로 진행할 예정이며 차근차근 하나씩 해주시면됩니다.

아예 native처럼 사용하고 계신 mac이나 s/n 정보들이 있는경우에는

vi user_config.json 를통해 입맛에 맞게 수정하신뒤 추후 확장 드라이버 추가부터 봐주시면됩니다.

먼저 DS918+에 사용할 시리얼넘버를 자동으로 생성해서 user_config.json에 넣겠습니다.
./rploader.sh serialgen DS918+

여기서 y를 눌러주면 나온 mac/s/n이 설정파일에 자동으로 적용됩니다.

이제 vid/pid를 자동으로 인식해서 설정값에 넣어주겠습니다.
./rploader.sh identifyusb now

vm은 이렇게 나옵니다.

SataPortMap이나 DiskIdxMap도 인식하긴하는데 이기능은 테스트중이라고하니 절대적으로 신뢰해서는 안됩니다.(확실히 다르긴합니다. ESXi인 경우 SataPortMap을 9로 설정해주세요)
./rploader.sh satamap now

여기나온 값으로 user_config.json을 수정해줍니다.
MAC/Sn도 한번확인해주세요.

최종적으로 이렇게 됐습니다.

이제 설정파일 작성이 완료되었으니 확장 드라이버 추가로 넘어가겠습니다.

부트로더에 확장드라이버 추가하기.

헤놀로지의 경우 사용하고 계신 환경이 모두 다릅니다. Disk 조합부터 Lan 어댑터나 심지어 Realtek에서 어떤 모델인지 Raid카드나 sata 확장카드에 대한 모든 경우의 수가 많습니다.
이때문에 헤놀리지의 사용이 어려운 경우도 있구요.

다행히 DSM7버전이 나오고 레드필로더가 생겨나면서 능력자들이 이 확장드라이버를 추가하는 방법을 제공해주고있습니다.
자세한 확장드라이버 목록은 아래에서 확인할 수 있으며 저는 ESXi용이기때문에 PVSCSI/VMXNET3 정도만 추가하겠습니다.
https://github.com/pocopico/rp-ext

지원해주는 플랫폼은 아래와 같습니다. DS918은 apollolake DS3615xs는 bromolow 입니다.

이제 아래 명령어들로 확장드라이버를 추가해주세요.

./rploader.sh ext apollolake-7.0.1-42218 add https://raw.githubusercontent.com/pocopico/rp-ext/master/vmw_pvscsi/rpext-index.json

./rploader.sh ext apollolake-7.0.1-42218 add https://raw.githubusercontent.com/pocopico/rp-ext/master/vmxnet3/rpext-index.json

필요하신 드라이버를 모두 설치하셨으면 이제 빌드만 해주시면 됩니다.
빌드 과정은 redpill 로더와 거의 똑같습니다.

./rploader.sh build apollolake-7.0.1-42218

빌드가 종료되면 /home/tc/redpill-load/cache/ 경로에 해당 pat설치파일이 남는데. 공홈에서 받은 설치파일도 잘되서.. 굳이 안받으셔도 되고 혹 공홈에서 받으신게 안되신다면 winscp와같은 툴로 받아주시면됩니다.

또한 자동으로 파티션이 분할되면서 종료 후 다시 실행시에는 기존 부트로더에서 자주보던 화면이 보이실겁니다.

ESXi 유저들은 tinycore 종료 전에 user_config에서 mac주소를 미리 복사해주세요.

테스트하기(DSM 7 설치하기)

filetool.sh -b &&/usr/bin/exitcheck.sh 로 tiny코어를 종료시켜주시고 편집 -> 네트워크로 가서 아까 복사해놓은 MAC 주소를 넣어줍니다.

다시 부팅을 시켜주시면 아래처럼 로더창이 뜨실겁니다.
저는 SATA 부팅이기때문에 두번쨰로..
*혹 이미지의 변경을 하시려면 3번째인 tinycore로 가서 동일하게 셋팅하고 빌드해주면 자동으로 로더도 변경됩니다.

이제부터는 기존 헤놀로지 설치와 똑같습니다 find.synology.com 이나 ip scanner로 해당 ip에 접근해주시고 설치를 진행해주세요.

길고긴 여정이 끝났습니다 ㅎㅎ 아마 이 글을 기점으로 대부분의 사용자들이 tinycore를통해 직접 하드웨어 상황에 맞게 이미지를 만드시고 유지보수 하시기를 기대합니다.

감사합니다.