커널 루트를 부팅과 동일한 파티션으로 설정

커널 루트를 부팅과 동일한 파티션으로 설정

GRUB를 실행하면서 커널 루트 매개변수를 부트로더가 있는 디스크와 동일한 파티션(또는 더 일반적으로는 동일한 장치의 파티션)으로 설정하고 싶습니다.

처음에 설치 시 GRUB 메뉴 항목이 /dev/XX루트 매개변수로 설정됩니다.

title XXXXX
    root (hd#,#)
    kernel /boot/vmlinuz-XXXX root=/dev/XX1 resume=/dev/XX2 splash=silent quiet showopts vga=0x###
    initrd /boot/initrd-XXXX

kernel디스크 레이블을 참조하도록 해당 줄을 변경하여 다양한 순서로 표시되는 허용 범위를 늘릴 수 있습니다.

    kernel /boot/vmlinuz-XXXX root=LABEL=??? resume=LABEL=swap? splash=silent quiet showopts vga=0x###

부팅 파티션( 또는 )을 참조할 수 있도록 해당 줄을 변경하고 싶습니다. /dev/sda2또는 커널이 부팅 파티션(GRUB)을 기준으로 해석 /dev/hdb6할 파티션 번호만 참조하는 것이 더 좋습니다 .root (hd#,#)

답변1

grub을 올바르게 설치하는 경우 이 정보는 관련이 없습니다. /boot 파티션을 지정할 필요는 없으며 grub을 설치할 때 설치하기만 하면 됩니다. Grub은 설치 중에 장치(디스크)와 vmlinuz 및 /initrd의 위치를 ​​MBR에 저장하므로 grub 구성에서 더 이상 참조할 필요가 없습니다.

편집하다

"부팅 파티션을 기준으로 루트 파티션을 참조"하고 싶다는 점을 명확히 한 후. 내가 아는 한, 이를 지원하는 옵션은 없지만 직접 추가할 수 있습니다(따라서 여기에서 내 마지막 설명에 줄을 그어 지우십시오). 여기에는 initrd 이미지의 init 스크립트를 수정하는 작업이 포함됩니다. 예를 들어, bootrel=+1과 같은 매개변수를 커널 라인에 추가하고 initrd 이미지에 일부 코드를 추가하여 부팅 파티션이 어디에 있는지 알아낸 다음 bootrel 매개변수를 확인하여 루트 파티션을 찾고 이에 따라 루트 매개변수를 설정할 수 있습니다. .

물론 이것은 지나치게 복잡하고 해키적인 방법입니다. 어쩌면 문제에 잘못 접근하고 있을 수도 있습니다. 달성해야 할 사항을 보다 일반적으로 설명하면 누군가가 더 많은 옵션을 제공할 수 있습니다.

관련 정보