• 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글
잡담

레드필 부트로더를 하드에 이식해 보려 합니다.

화정큐삼 화정큐삼 416

9

14

예전 DSM 5, 6 시절에도 시도가 되었던 방법인데요.

 

헤놀로지 포럼에 가이드가 있을 정도로 검증된 방법이긴 합니다.

 

 

 

시놀로지를 BASIC 방식의 파티션을 설치한후 맨뒤에 남는 100MB 의 공간에 부트로더를 복사해 넣습니다.

 

과거의 DSM 6 시절 Jun's 로더는 50M 수준이라 이게 쉽게 가능했는데,

 

레드필은 덩치들이 너무 커져서 100M 안쪽으로는 도저히 들어갈 수가 없습니다.

 

그래서 2개의 하드를 활용하는 방법을 지금 연구중입니다.

 

불가능할것 같지는 않고요. 성공하면 공유 드리도록 하겠습니다.

신고공유스크랩
14

화정큐삼 화정큐삼
30Lv. 18104P
다음 레벨까지 1116P

1) Xpenology RedPill DS918+ FRIEND DSM 7.2.1-69057 Update 1, ASUS IOT H310i-IM-A R2.0 G5500 / Intel I211, I219-V / 16GB  / SilverStone ECS07 5포트 SATA M.2 NVMe PCIe 스토리지 확장 카드 / 3x4TB + 1x3TB SHR, 1x8TB 

 

2) Xpenology RedPill DS1823xs+ FRIEND DSM 7.2.1-69057 Update 1, Asus B150I PRO GAMING/AURA i3-7100T / Intel Gigabit LAN x 3 / 16GB  /  ASM1166 M.2 NVME PCIE 6 Port Sata 스토리지 확장 카드 / 6 x 3TB RAID6

profile image 1등
akrsoTale 2024.02.29. 19:15
오... 부트로더가 담길 사이즈가 꼭 100MB이어야 하는 이유가 있나요? 더 커도 문제가 없다고 생각했는데..

어샘블리로 EFI로더 직접 짜면 그래도 사이즈에 구애를 받지 않는걸로 알고 있어서 여쭙니다
profile image
화정큐삼 글쓴이 2024.02.29. 19:28
akrsoTale
네, 시놀로지 안에서 BASIC 타입으로 만들면 맨 앞의 2개의 시스템 파티션은 DSM 이 사용하고 나머지 공간을 대부분 데이터 파티션이 자리잡게 됩니다.
이 데이터 파티션의 사이즈를 조금 줄이고 그만큼 로더를 위한 공간을 더 확보할 수는 있지만,
이렇게 하면 시놀로지가 바로 알아차리고 디스크 오류를 뿜어내기 시작합니다.
그래서 시놀로지가 잡아준 파티션 영역은 건들지 않아야 합니다.
그 뒤로 확장가능한 남는 짜투리 공간이 100M 입니다.
profile image
akrsoTale 2024.02.29. 19:39
화정큐삼
아 그렇게 설계가 되어 있군요...
확실히 소프트웨어 장사 하는 회사들이 다 그렇게 하나보네요

부트 파티션 두 개에 나눠서 로드하는게 가능한가요....? 저도 시스템 개발은 거의 초짜중에 초짜 수준이라(해봐야 eBPF로 샌드박스 만지는 정도..)그림도 안그려지네요
profile image
화정큐삼 글쓴이 2024.02.29. 20:43
akrsoTale

네, 일단 계획은 첫번째 basic 하드인 /dev/sda5 의 100 메가 영역에는 부트활성화 액티브하고
1. 원래 synoboot 1번 파티션의 내용을 그대로 전부 담습니다.
2. 1번의 남는 공간에 실제 시놀로지 DSM 부팅을 하게 되는 dsm커널 (initrd-dsm 과 zimage-dsm) 두개만 더 넣습니다.
3. synoboot 2번 파티션이 생략 가능하다면 건너뛰고 synoboot 3번 파티션을 위해
2번째 하드인 /dev/sdb5 에 100 메가 영역을 더 확보합니다.
4. 여기에는 friend 커널 부트에 필요한 initrd-friend, bzImage-friend 를 담습니다.
5. grub.cfg 에서는 set root=hd0,msdos5 , set prefix=(hd0,msdos5) 로 명시적으로 지정해서 위에 준비한 대로
부팅을 진행하고 부트엔트리에서는 다시 /dev/sdb5 에 대당하는 FRIEND 커널을 띄우기 위해
(hd1,msdos5)/initrd-friend, (hd1,msdos5)/bzImage-friend 를 로딩합니다.
6. Friend 커널 로딩이 진행되는 /root/boot.sh 의 맨 마지막에서는 다시 1번 하드의 dsm 커널을 마지막으로 로딩하기 위해 (hd0,msdos5) 파티션을 가리킵니다.

이렇게 시나리오를 짜 봤는데요. 문제가 있을만한 부분은 지적 부탁드립니다.

profile image
akrsoTale 2024.02.29. 22:17
화정큐삼
퇴근 후 집에서 맥주한캔 하면서 읽었는데 훌륭하네요.. GRUB에서 DOS파티션을 따로 지정해줄 수 있는것도 적어주신걸 토대로 리서치 해서 알게 되었습니다.

저도 시스템 프로그래밍을 관심있어하고 공부하는 유저로서 되게 흥미롭게 읽었네요..!

최근에 저는 SDS(Software Defined Storage)를 커널모듈로 개발할 수 있는걸 좀 만져보는 개인적인 연구를 하는 초짜입니다..ㅎㅎ Ceph처럼 좋은 SDS를 만들어보고 싶네요
profile image
화정큐삼 글쓴이 2024.03.04. 14:31

/dev/sda 에 grub2 를 update-grub 또는 grub-mkconfig 로 재설치해야 할것 같은데, 이부분이 많이 어렵네요.
위에 헤놀로지 포럼 가이드에서는 윈도우에 하드를 붙이는 번거로운 과정이 있어서 가능하면 리눅스 안에서 해결을 보려 합니다.
friend 커널도 다시 빌드루트해서 누락된 grub2 툴들을 포함시켰구요.
이제 grub-install 이나 grub-mkconfig 도 friend 커널 안에서는 사용할 수 있게 되긴 했는데,
넘을 산들이 많네요. 한 1주일 시간 투자하고 있는데,
grub tools 를 휙 apt 로 설치할 수 있는 환경도 아니고
grub 컨트롤에 대한 경험이 많지 않아서 시행착오가 많습니다. ㅎㅎ

진호군 2024.03.05. 14:47
업데이트 등에 불안도가 높아 지지 않을까요 업데이트 할때는 USB 등 꼽고 하는 방식이 되겠네요.
profile image
화정큐삼 글쓴이 2024.03.05. 15:31
진호군
그게 사실좀 고민입니다. USB 의 로더 내용을 똑같이만 담을수 있다면 하드에 있는 로더로 재빌드, 업데이트 이런것 다 가능하게 해드릴 수 있을것 같은데, 현실이 그렇지 못하네요.
재빌드용 Tinycore Linux 도 들어내야 할것 같고 딱 로더빌드한 당시의 Fix 된 버전만 하드에 이식 가능할것 같습니다.
대신 SmallUpdate 버전업 까지는 RamDisk Patch 가 가능하도록 해서 커버해 드리려고 합니다.
7.2.1 U4 -> U5 를 의미합니다.
뚕뚕 2024.03.05. 16:42

헤놀 만들때 부트로더를 만든 후 USB 파티션을 그대로 SSD 128gb 에 복제해서 SSD를 부트로더로 썼었는데 이 방식과는 다른건가요?

profile image
화정큐삼 글쓴이 2024.03.05. 17:27
뚕뚕
네, 제가 위 댓글에 번호별로 순차적으로 어떻게 만들지 계획을 설명드린 내용에 이미 나와있습니다.

시놀로지가 이미 사용하고 있는 하드에 파티션을 쪼개서 공간을 확보해야 합니다.
오늘까지 테스트한 결과로는 8G+2G 의 맨앞 2개 시스템파티션과 데이터 파티션 사이에 약 128MB 의 여유공간이 추가로 확인되었습니다.
여기에 확장파티션을 잡고 다시 로지컬 파티션들을 잡아서 시험중입니다.
이렇게 할때는 다시 데이터파티션 뒤쪽에 100MB까지 확장해서 사용을 할 수는 없습니다.

USB나 SSD에 담았던 만큼의 충분한 공간의 여유가 없습니다.
profile image
화정큐삼 글쓴이 2024.03.05. 23:21
조금 가닥이 잡혀가네요.
지금까지 grub-install 을 우분투 중심으로 처리해 보려했던것이 오산이였습니다.
pocopico님의 tinycore 가 출발였다는걸 망각했던게 1주일 시간을 허비하게 만들었네요.

tinycore linux 에도 전용 grub2 패키지가 있었네요.

답은 tinycore linux 포럼에서 찾았습니다.
https://forum.tinycorelinux.net/index.php/topic,19364.0.html

아래처럼 처리하면 일단 부팅은 가능하고 기존 FRIEND 로더로도 진입가능하게 조절할 수 있습니다.

커널들의 경로들이 달라서 grub.cfg 는 물론 손을 봐두어야 합니다.

tce-load -wi grub2-multi
sudo mount /dev/sda5 /mnt/sda5
sudo mkdir /usr/local/share/locale
sudo grub-install --target=x86_64-efi --boot-directory=/mnt/sda5/boot --efi-directory=/mnt/sda5 --removable
sudo grub-install --target=i386-pc --boot-directory=/mnt/sda5/boot /dev/sda

이제 좀더 안정적으로 만들어 줄 수 있는 스크립트 보완을 할 과정만 남은것 같습니다.
기초 테스트는 마친셈입니다.
profile image
화정큐삼 글쓴이 2024.03.08. 09:05
Addtional Function 하위 메뉴에 로더를 하드에 심을 수 있는 메뉴가 생길예정이구요. 별도의 공지 하겠습니다.
마지막 안정성 시험을 계속 하고 있습니다.
이번주 너무 집중해서 잠이 좀 부족한 상황이네요.ㅎㅎ
wjz304님도 맨날 로더 개발에 빠지져서 잠이 부족하다고 하시는데, 저도 간만에 무리좀 했습니다. ㅋㅋ
TC 는 경량 리눅스라서 안에 포함하고 있는 유틸이 거의 없는 상태라 그때 그때 받아 내려야 하는데
grub-install (gub2-multi 패키지) 도 없는 터라 로더 이식 과정 중간에 툴 설치를 하도록 되어 있습니다. 약간의 대기시간이 들어가구요.
3번째 파티션은 특수하게 UUID 를 고정해서 TCRP 로더 파티션이란것을 인지하도록 관리하고 있는데,
UUID 를 TC 안에서 바꿀수 있도록 만들고 있습니다.
이와 관련해서도 TC 포럼을 찾아봐야 겠네요.

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story
번호 분류 제목 글쓴이 날짜 조회 추천
공지 정보 DSM 7.2v) Mshell로 헤놀로지 부트로더 빌드하기. 62 달소 23.05.29.01:57 24772 +24
공지 정보 DSM 7.2v) ARPL-i18n(rr)으로 헤놀로지 부트로더 빌드하기. 73 달소 23.05.23.23:58 26342 +23
후기 asustor에서 나온 nas에 dsm 올렸습니다... 4 링츠링링 2일 전18:45 357 +2
질문 Wireguard 관련해서 질문 드립니다! 2 리준 4일 전12:25 175 +1
가이드 bitwarden 라이센스적용하기. 6 블랙앤해적 5일 전20:01 431 +2
520 잡담
normal
서맹 3일 전09:42 455 0
519 잡담
image
초보나스 6일 전12:21 204 0
518 잡담
normal
TheSTREET 6일 전23:50 424 +6
517 잡담
image
N4100 24.04.19.22:38 534 +1
516 잡담
image
estel1 24.04.15.23:51 619 +2
515 잡담
normal
아나나나나다 24.04.11.11:47 278 0
514 잡담
normal
아나나나나다 24.04.11.09:32 210 0
513 잡담
image
유니파트 24.04.08.23:40 246 0
512 잡담
image
유니파트 24.04.06.19:49 206 0
511 잡담
normal
서맹 24.04.06.11:26 529 0
510 잡담
normal
니즛 24.04.02.14:13 275 0
509 잡담
normal
화정큐삼 24.04.01.14:44 188 +1
508 잡담
image
kmw_ 24.03.30.11:42 331 +1
507 잡담
image
TheSTREET 24.03.29.20:46 974 +7
506 잡담
image
헤놀로지맨 24.03.29.18:31 576 +1
505 잡담
image
훔친수건 24.03.29.01:47 576 0
504 잡담
image
유니파트 24.03.25.21:28 436 +1
503 잡담
normal
니즛 24.03.24.12:38 164 0
502 잡담
normal
kmw_ 24.03.23.21:39 376 +1
501 잡담
image
kmw_ 24.03.22.11:59 545 0