질문
8디스크 Btrfs RAID10 볼륨에서 Arch Linux로 부팅된 머신이 있습니다. 최근에 재부팅했는데 다음과 같은 GRUB 복구 프롬프트가 표시되었습니다.
정확히 무엇이 이 일을 촉발시켰는지는 잘 모르겠습니다. 마지막 부팅 이후 최소 두 개의 업데이트( )를 설치했으며 pacman -Syu
GRUB 재설치를 포함하여 시스템에 다른 변경 사항을 적용했을 수도 있습니다.전용 부팅 디스크를 추가하면 시스템을 부팅할 수 있습니다.
이론
#archlinux IRC 채널의 유용한 멤버와 문제를 해결하는 동안 우연히 만났습니다.Arch 위키에 대한 이 메모:
파티션 오프셋
core.img를 파티션된 디스크에 포함하려고 하면 오프셋 문제가 발생할 수 있습니다. 이는 grub의 core.img가 분할되지 않은 디스크(예: /dev/sdX)의 Btrfs 풀에 직접 포함될 수 있음을 의미합니다. GRUB는 Btrfs 파티션을 부팅할 수 있지만 모듈이 다른 파일 시스템보다 클 수 있습니다. grub-install로 생성된 core.img 파일은 MBR과 첫 번째 파티션 사이 드라이브의 처음 63개 섹터(31.5KiB)에 맞지 않을 수 있습니다. 최신 파티션 도구(예: fdisk 및 gdisk)는 첫 번째 파티션을 약 1MiB 또는 2MiB만큼 오프셋하여 이 문제를 방지합니다.
이는 파티션에 GRUB를 설치하는 데 문제가 있을 수 있음을 나타내는 것 같습니다.그리고파티션이 없는 디스크, 최신 파티션 도구는 디스크 시작 부분에 추가 공간을 남겨두어 이를 완화합니다(현재로서는).
파티션을 나누었거나 파티션을 나누지 않은 디스크에 설치
경고하다:애벌레매우 낙담함파티션된 부트 섹터나 GRUB Legacy 또는 Syslinux와 같은 파티션 없는 디스크에 설치합니다. 이 설정은 특히 업데이트 중에 쉽게 손상됩니다.지원하지 않음아치 개발자가 제공합니다.
글쎄요.
어쨌든 grub-install -v
출력에 다음 줄을 포함합니다.
grub-install: info: the total module size is 0xa07c.
위에서 언급한 31.5KiB 제한을 훨씬 초과하는 약 41K이지만, 이것이 문제가 되는 이유인지 확신할 만큼 GRUB를 잘 알지 못합니다.
질문
이 경우예문제는 그것을 어떻게 증명할 수 있느냐는 것입니다.
grub-install
만약 그렇다면 큰 소리로 실패하는 것은 어떨까요?나중에 부팅 가능한 Btrfs 디스크를 포맷하는 올바른 방법은 무엇입니까? 마스터 부트 레코드? 일반적인 기술? — 전용 부팅 디스크가 매력적이지만 볼륨의 모든 장치에 중복 부트로더가 있는 것을 선호합니다.
btrfs replace
각 디스크를 지우고 실행하는 것보다 각 디스크를 파티션 테이블로 마이그레이션하는 더 좋은 방법이 있습니까 ?
답변1
과거에는 fdisk를 사용하여 MBR 파티션 테이블을 생성할 때 기본적으로 처음 63개 섹터가 변경되지 않았습니다. 여기에 GRUB 및 기타 부트로더를 설치할 수 있습니다.
현대로 빠르게 나아가면 동일한 도구(fdisk)를 사용하면 GRUB2가 BTRFS를 지원하는 stage1을 설치할 수 있을 만큼 더 많은 공간이 남게 됩니다. 나는 오프셋이 업계에서 무엇을 의미하든 기본적으로 약 1MB라고 생각합니다.
왜 실패하지 않았는지 모르겠지만 grub-install
부팅 섹터 크기를 확인하지 않는 것 같습니다. 파티션 없이는 어떻게 가능합니까?
중복 부트로더를 사용하는 데 아무런 문제가 없다고 생각합니다. 수동으로 관리해야 하는데 GRUB2의 stage1은 자주 바뀌지 않습니다. 그러나 이는 파티셔닝이 필요하다는 것을 의미합니다.
파티션 테이블을 추가하기 위해 디스크를 마이그레이션할 수 있는 도구는 없습니다. 문제는 파일 시스템이 디스크의 섹터와 연결되어 있고 파티션 테이블을 추가하면 해당 섹터가 변경된다는 것입니다. BTRFS 파일 시스템이 LVM에 있는 경우 파일 시스템이 "가상 섹터"에 바인딩되므로 파일 시스템을 이동할 수 있습니다. 이렇게 해야 한다고 말하는 것이 아니라 문제가 무엇인지만 언급하는 것입니다.