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

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

서버포럼 - Xpenology DSM7 만능 부트로더 만들기(Tinycore)
++ 화정큐삼 @화정큐삼 undefined 님 피드백으로 빌드시 기본드라이버 잡아주는내용추가 ++ 22/03/01 UEFI 로더내용 추가. ++ 22/03/11 SataPortMap 관련 메뉴얼 내용추가 안녕하세요. 달소입니다. 최근에 redpill lo...

기존 tinycore로 부트로더 만드는 글을 쓴지 어언 2달이 지났는데요. 해당글이 ESXi 기준으로 진행했던거라 개발서버에 Proxmox 재설치 전에 Native로 한번 설치하면서 과정을 찍어서 업데이트해봅니다.(ESXi라면 위글을 참고해서 진행해주세요.

아무쪼록 도움이 되시면 좋겠습니다.


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

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

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

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

동작을 제대로 이해하지않을경우 기존 redpill 보다 어렵게 느껴지실수도 있을거라고 생각은 하지만.. 이해하신다면 크게 어렵지는 않을 수 있습니다.

tinycore linux의 역할

-tinycore에서 부트로더 빌드시 tinycore의 파티션 자체를 별도로 빼고 tinycore 내에 부트로더를 생성합니다.(ex. 최초 grub 에 tinycore1개만 있던게 bootloader가 신규로 추가)
-tinycore는 5가지 모델을지원합니다.(DS918+/DS3615xs/DS3617xs/DS3622xs/DS1621+/)
-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 한방팩 - 자료실 링크

- Native용 img 파일
- 가상화용 vmdk 파일
- USB이미지 쓰기용 win32diskimager
- ssh 접근용 putty
- 파일전송용 winscp
- ip찾기용 IPScanner

설치환경

CPU : i9-9900t es
M/B : Asrock H370M-HDV (Sata4 보드)

Loader : Tinycore v0.46-uefi

Sata 0 번에 hdd하나 물리고 진행했습니다.

USB에 이미지 씌우기(Write)

이 과정은 부팅 USB를 만드는 과정입니다.

한방팩에 있는 Win32 Disk Imager를 설치하신뒤에 포함된 img 파일을 usb에 씌워주세요.

uefi를 지원하지않는 구형보드라면 uefi가 안붙은 img파일로진행해주시면되고 4세대 이상 보드라면 uefi가 붙은파일로진행해주시면됩니다.

이제 만들어진 USB를 가지고 헤놀로지를 설치할 PC에 꽂고 USB를 우선부팅하여 부팅시켜주세요.

첫 GRUB 창에는 Tiny core Image Build만 보입니다

부팅이 되면 바탕화면에 우클릭 -> 터미널 혹은 아래 터미널창을 누르신뒤에 ifconfig 명령어로 ip를 확인해주세요.

이렇게 ip를 확인했으면 putty 클라이언트 툴을 사용해서 tinycore로 접속해줍니다.

putty는 ssh 접근 툴 입니다.

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

접속 후 sudo su 명령어로 root 권한으로 진행하겠습니다

부트로더 설정값 변경하기

이제로더 업데이트 명령어를 통해 최신버전으로 진행하겠습니다.
./rploader.sh update now

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

y를 눌러서 적용해주신다음 mac은 실제사용하는것으로 변경해주셔야합니다.(맨마지막)

이제 USB의 VID/PID를 인식시켜서 자동으로 user_config.json이 넣어주겠습니다.

./rploader.sh identifyusb now

이제 SataPortMap 설정입니다.

./rploader.sh satamap now

최종적으로 vi 편집기로 변경된 내용을 최종확인해주고 mac 주소를 업데이트해주겠습니다.

mac 주소는 ipscanner를 통해 확인해주시거나 bios에서 mac주소를 확인해주시면됩니다.

vi user_config.json

편집하려면 i를 눌러서 편집모드로 들어가신뒤에 내용을 수정해주시면됩니다.

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

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

Tinycore에서는 기본적으로 부팅된 하드웨어에 따라서 자동으로 드라이버를 인식해서 추가해줍니다.

혹 build시 자동으로 드라이버 추가가 안될경우 수동으로 확장드라이버를 추가하는 방법을 제공해주고있습니다.

혹 다른시스템에 사용할 부트로더를 만들고 있으시다면 아래 확장드라이버 목록을 참고해서 설치하시면됩니다.
https://github.com/pocopico/rp-ext

지원해주는 플랫폼은 아래와 같습니다. DS918은 apollolake DS3615xs는 bromolow 입니다. DS3622XS는 broadwellnk 이며 계속 추가되고있네요.


확장드라이버 추가는 아래 명령어로 진행하시면 됩니다.
ex)
./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와같은 툴로 받아주시면됩니다.

filetool.sh -b &&/usr/bin/exitcheck.sh 를 통해 tinycore의 내용을 저장해주고 tinycore를 종료해주겠습니다.

그리고 재부팅을 진행해주세요.

DSM7설치하기

재부팅을 할떄 화면을 보시면 이전 6버전처럼 부트로더를 선택하는 창이 나옵니다.
Native 이기때문에 USB를 눌러서 부팅을해주시면됩니다.

위창이뜨고 기존 tinycore로 접속했던 ip로 접속하면 설치를 진행할 수 있습니다.

기존 디스크는 초기화됩니다

10분 지나면 설치를 진행할 수있습니다.

SMART도 잘나오고~

CPU 정보도 일부러 돌려봤는데 es시피유도 잘뜨네요

maxlanport를 3으로 변경했더니 이전에 구매했는 듀얼포트랜도 잘 적용되네요

기타 가이드는 포럼의 다른게시글들을 참고부탁드립니다

도움이되시면 좋겠네요 감사합니다~