X32 확장용 Grub에 추가 부팅 옵션을 추가하시겠습니까?

X32 확장용 Grub에 추가 부팅 옵션을 추가하시겠습니까?

저는 무료/오픈 소스 프로젝트를 진행하고 있습니다. 데비안 관리자가 X32에서 오류가 발생했다고 보고했습니다(오타가 아닙니다. X86이 아닙니다). 저는 이를 재현하기 위해 테스트 환경을 설정하려고 합니다.

데비안에 따르면X32 포트 위키, 커널에서 X32 확장을 활성화해야 합니다. 그렇게 하려면 Grub 항목을 추가해야 합니다. 아래는 내가 에 추가한 내용 /etc/default/grub이며 위키 페이지에서 가져온 것입니다(기본 항목에 주석을 단 것을 제외하고).

# GRUB_CMDLINE_LINUX_DEFAULT="syscall.x32=y quiet"
GRUB_CMDLINE_LINUX="syscall.x32=y"

update-grub그런 다음 위키 페이지별로 작업을 수행 하고 컴파일된 메뉴의 항목을 확인했습니다(아래 참조).

시스템을 부팅할 때 기본 메뉴나 고급 옵션에서 해당 옵션을 사용할 수 없는 것 같습니다.

X32에 대한 Grub 항목이 누락되었습니다.

데비안의그럽2문서에는 부족한 점이 많습니다. 메뉴 항목의 색상을 지정하는 방법만 설명합니다(이런 종류의 항목은 만들 수 없습니다...).

문서에서 제공한 처방을 따른 후 다음을 예상했습니다.

  • 데비안 GNU/리눅스
  • 데비안 GNU/리눅스(X32)
  • 고급 옵션
  • 메모리 테스트(memtest86+)
  • 메모리 테스트(memtest86+, 직렬)
  • ...

Grub에 X32 부팅 옵션을 추가하고, "Debian GNU/Linux (X32)"와 같은 이름을 지정하고, 부팅하는 동안 커널에 대한 부팅 옵션이 있는지 확인하고, 또는 이후 변경 사항이 유지되도록 하려면 어떻게 해야 upgrade합니까 dist-upgrade?


아래 Marius의 답변에 따르면 다음을 추가했습니다 /etc/grub.d/40_custom.

menuentry 'Debian GNU/Linux (X32)' --class debian --class gnu-linux --class gnu --class os
  $menuentry_id_option 'gnulinux-simple-a4af7dfc-640c-4aa8-bf0b-068af3d72b01' {
    linux/boot/vmlinuz-4.2.0-1-amd64 root=UUID=a4af7dfc-640c-4aa8-bf0b-068af3d72b01 ro syscall.x32=y quiet
}

예상대로 명명된 항목을 제공하지만 부팅 오류가 발생합니다.

error: can't find command: `linux/boot/vmlinuz-4`

내 생각엔 Emacs의 복사/붙여넣기 때문인 것 같습니다(공백이 제거된 것 같군요???). 그래서 로 바꿨습니다 linux /boot/vmlinuz-4.2.0-1-amd64.... 커널 패닉이 발생했습니다.

여기에 이미지 설명을 입력하세요

답변1

내가 이해한 것이 맞다면 X32를 사용하거나 사용하지 않고 부팅할지 여부를 선택할 수 있는 방법을 찾고 싶을 것입니다. 두 가지 방법으로 이를 수행할 수 있습니다.

  1. 필요에 따라. 부팅, 부팅 메뉴 히트에서 e해당 edit줄까지 아래로 스크롤

    linux /boot/vmlinuz-linux root=UUID=978e3e81-8048-4ae1-8a06-aa727458e8ff quiet splash
    

그리고 그것을 다음과 같이 수정하세요.

  linux /boot/vmlinuz-linux root=UUID=978e3e81-8048-4ae1-8a06-aa727458e8ff syscall.x32=y quiet 

이제 부팅을 계속하세요.

  1. 체계적으로. 디렉토리에는 이 작업에 정확히 사용되는 /etc/grub.d/항목이 있습니다 . 파일의 섹션( 중괄호 사이와 끝 부분에 포함된 부분)을 40_custom복사해야 합니다 . 포함 후 줄을 수정하십시오./boot/grub/grub.cfgmenuentry Debian GNU/Linux...}

     linux /boot/vmlinuz-linux root=UUID=978e3e81-8048-4ae1-8a06-aa727458e8ff quiet splash
    

~ 안으로

     linux /boot/vmlinuz-linux root=UUID=978e3e81-8048-4ae1-8a06-aa727458e8ff syscall.x32=y quiet

또한 메뉴 항목의 이름을 40_custom첫 번째 항목과 다른 이름으로 변경해야 합니다. 그렇지 않으면 두 항목을 구별할 수 없습니다.

실행 update-grub하면 완료됩니다.

답변2

최상위 메뉴에서 최신 커널에 대한 옵션만 원하는 경우 "syscall.x32=y"를 /etc/default/grub. 대신, 찾아보세요

linux_entry "${OS}" "${version}" simple \
"${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"

그 뒤에 /etc/grub.d/10_linux다음을 추가하세요.

linux_entry "${OS} (X32)" "${version}" simple \
"${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT} syscall.x32=y"

update-grub그런 다음 그에 따라 업데이트를 실행하십시오 /boot/grub/grub.cfg.

이렇게 하면 "syscall.x32=y" 옵션을 사용하여 최신 커널을 부팅할 수 있지만 옵션 없이 부팅하는 것과는 차이가 없습니다. Xubuntu 15.10 64비트에 있습니다. grub 패키지 업그레이드 후에도 유지되는 구성은 모르겠습니다. 어쩌면 설치 시 사용자 정의된 구성 파일을 발견하고 이를 유지할 수 있는 옵션을 제공할 수도 있습니다. 적어도 이것은 커널 업데이트 후에도 유지됩니다.

답변3

foo=bargrub에 추가할 수 있습니다 .

터미널에서 다음을 실행하세요.

gksudo gedit /etc/default/grub

그리고 비밀번호를 입력하세요.

GRUB_CMDLINE_LINUX_DEFAULT로 시작하는 줄을 찾아 끝에 foo=bar를 추가하세요. 예를 들어:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash foo=bar"

파일을 저장하고 편집기를 닫습니다.

마지막으로 터미널을 시작하고 다음을 실행합니다.

sudo update-grub

GRUB의 구성 파일을 업데이트하려면 (비밀번호를 입력해야 할 수도 있습니다).

다음 재부팅 시 부팅 매개변수를 사용하여 커널을 시작해야 합니다.

출처 : Grub 포럼

관련 정보