2024년 11월 7일 목요일

ZFS로 부팅하면서 Grub을 쓰는 모험

결론부터 말하자면, 일단은 실패다. 가볍게 시작한 거였기 때문에 깊게 파고들지도 않았다.

 

발단은 여차저차한 이유로 NVMe가 놀고 있던 본체에 우분투를 깔면서였다. 24.10이 정식 배포된 시점이니 당연히 최신 iso를 받아서 USB로 부팅했고, 해본 적 없던 ZFS 설치를 선택했다.

 

설치한 직후에는 원래 하려던 세팅을 마쳤는데, 생각해보니 이 새 우분투는 ZFS면서 Grub이 설정되어 있는 거였다. 뭐 대단한 게 있을까 싶어서 dpkg -l 명령으로 zfs니 grub이니 걸러보고, /boot 영역 아래에 특별히 더 모셔진 게 있을까도 봤지만 그렇지 않았다.


https://gist.github.com/bcfurtado/6e4d1d4953cfbc28f4a1d482392db348 도 보고,

https://liatas.com/posts/root-zfs/ 도 봤는데, 내용 중에서 

$ grub-install --target=x86_64-efi --efi-directory=/boot/efi \
      --bootloader-id=ubuntu --recheck --no-floppy

이 대목이 눈에 띄어서, 아 이대로 target 같은 것만 잘 구분해주면 그냥도 되는 걸까? 하는 마음에 따라해보았다.

그 와중에 hostdisk not found 어쩌구 하는 에러를 만나기도 했는데 그건 grub-install 시도에 sudo를 붙이지 않아서 그런 거고 에러가 오해를 일으키게 나온다는 https://superuser.com/a/1195919 글을 보고 sudo를 붙여서 hostdisk 에러 자체는 지나갔다.

하지만 grub-install: error: unknown filesystem. 에러가 나왔고, https://askubuntu.com/a/1131970 여기서 안내하는 grub-probe로 fat라고 잘 나오는 걸 봐서 뭐가 문제라는 건지 이해를 못한 상태로 멈췄다.


이 과정에서 MBR이던 USB를 GPT로 바꿨다가 뭔가 부팅이 안 되어서 https://docs.zfsbootmenu.org/en/latest/general/portable.html 설명대로 EFI/BOOT/BOOTX64.EFI 기본 경로에 파일을 넣고서야 부팅이 되었다. 아마 앞서 설정했던 EFI/ZBM/... 경로는 GPT로 넘어가는 과정에서 USB 쪽에서 정보가 없어졌거나 UEFI 시스템 쪽에서 인식 못하는 방식으로 USB가 바뀌거나 했을 것 같은데 더 자세히 파고 들고 싶지는 않았다.

 

UEFI 환경에서의 부팅은 바이오스 단계에서 인식되는 최소한의 디스크만 있으면 되고 USB 정도면 충분하고, grub-install 같은 건 대충 레거시 시스템을 위한 거라는 정도로 이해했다. 지금 시스템도 ZFS 쪽에는 zfsbootmenu 정보만 적어줬을 뿐 실질적으로 뭘 바꾼 건 없으니까 아주 틀린 이해는 아닐 거라고 생각한다.


다음에 또 땡기면 다시.