Ubuntu 18.04에서 GRUB 시간 초과를 0으로 설정하는 방법


11

grub 구성 파일을 시간 초과를 0 값으로 업데이트하려고 했으므로 OS가 빠르게 시작됩니다. /etc/default/grubUbuntu 18.04에서 구성 파일을 수정 한 후 다음을 실행했습니다.

sudo update-grub

그리고 그것은 작동하지 않았다. 나는 또한 달렸다.

sudo grub-mkconfig
sudo update-grub

그러나 그들은 작동하지 않았다.

웹 에서이 문제를 해결하기 위해 많은 것을 검색했지만 모든 가이드는 update-grub 명령을 실행하여 /etc/default/grub구성 파일로 grub을 업데이트한다고 말합니다 . grub 파일을 다른 방식으로 처리하는 Ubuntu 18.04인지는 모르겠지만 매개 변수로 grub을 업데이트 할 수 없습니다.

이것은 내 /etc/default/grub파일입니다.

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

3
질문을 편집하고 수정 된 grub 구성 파일을 포함하십시오. 그렇지 않으면 우리는 당신이 한 일을 추측하려고합니다.
유기농 대리석

다른 배포본이 설치되어 있습니까 (이중 부팅)?
mook765

작동하지 않았다는 것은 기본적으로 @Melebius
Bob91

나는 같은 SSD에 다른 배포판에 다른 hdd에 설치된 Windows가 있지만 지난 달에는 우분투 18 대신 fedora 27이 있었고 grub 구성 파일을 변경했을 때 작동 했으므로 다른 배포판이 원인이 아니라고 생각합니다. 이 동작 @ mook765
Bob91

1
당신은 실행시겠습니까 부팅 정보편집 의 결과 정보를 로그에 대한 링크를 포함하는 질문을? 감사.
David Foerster

답변:


13

에서 /boot/grub/grub.cfg파일, 거의 파일의 끝에서, 조건이 그 세트 당신이 당신의 0으로 제한 시간을 설정하면 시간 제한이, 즉 0으로 설정하면 10 시간 종료 /etc/default/grub후 업데이트 애벌레 상태 이상, 10 초로 재설정하십시오.

if [ "${timeout}" = 0 ]; then
     set timeout=10
fi

그러나 /boot/grub/grub.cfg읽기 전용 파일이므로 해당 조건을 제거 할 수 없습니다. 에서 다른 시간 초과 값으로 몇 가지 테스트를 수행했습니다 /etc/default/grub. 1ms (0.001), 0.1s 및 1s로 시도한 결과 1 미만의 값 (0.1 및 0.001과 같은)이 동일한 방식으로 작동하고 거의 시간 초과가 0으로 설정된 것으로 나타났습니다.


work in the same way and almost like timeoutbash의 수학은 정수만 지원하기 때문입니다. 차이를 만드는 최단 시간 제한은 1입니다.
Marcin Orlowski '12

6

필자의 경우 문제는 내 시스템이 "recordfail"을 지원하지 않아 별도의 블록이 grub.cfg에 추가되어 기본 시간이 30 초가 된 것입니다. 관련 코드 /etc/grub.d/00_header:

if [ "$recordfail_broken" = 1 ]; then
  cat << EOF
if lsefi; then
  set timeout=${GRUB_RECORDFAIL_TIMEOUT:-30}
  if [ x\$feature_timeout_style = xy ] ; then
    set timeout_style=menu
  fi
fi
EOF

수정은 단순히 GRUB_RECORDFAIL_TIMEOUTin 값을 추가하고 다시 /etc/default/grub실행하는 update-grub것입니다. 예를 들면 다음과 같습니다.

GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX=""

# Adjusted timeout for system which doesn't support recordfail
GRUB_RECORDFAIL_TIMEOUT=2

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

3

다른 답변과 마찬가지로 주석 처리를 제거 GRUB_HIDDEN_TIMEOUT하고 실행하십시오 update-grub. 그런 다음

if [ "${timeout}" = 0 ]; then
  set timeout=10
fi

의 섹션 /boot/grub/grub.cfg. vim에서는 느낌표로 읽기 전용 속성을 재정의 할 수 있습니다 :x!. 아니면 당신은 실행할 수 있습니다

sudo chmod +w /boot/grub/grub.cfg
sudo vim /boot/grub/grub.cfg
sudo chmod -w /boot/grub/grub.cfg

파일을 편집하는 동안 일시적으로 쓰기 권한을 갖습니다.


3
당신 말이 맞지만, grub을 업데이트 할 때마다 (수동으로 또는 os 업그레이드가있을 때) /boot/grub/grub.cfg위의 조건으로 다시 생성됩니다.
Bob91

2
사실, 최근에 경험 한 것처럼 파일을 업데이트 할 때 덮어 씁니다.
asantas93

1

당신은 설정할 수 있습니다 GRUB_TIMEOUT0.

부분 덮어 쓰기 시간 종료 값은 ajust_timeout의 맨 위에 함수로 작성됩니다 /etc/grub.d/30_os-prober.

ajust_timeout () {
...
if [ "\${timeout}" = 0]; then
  set timeout=10
fi
...
}

따라서 파일을 편집하고 if-block을 주석 처리하여 값을 설정할 수 있습니다.


1

당신은 설정할 수 있습니다 GRUB_TIMEOUT-1.

전의:GRUB_TIMEOUT="-1"


'GRUB_TIMEOUT'키를 누르지 않으면 메뉴가 표시된 후 몇 초 후에 기본 항목을 부팅합니다. 기본값은 '5'입니다. 메뉴를 표시하지 않고 즉시 부팅하려면 '0'으로 설정하고 무기한 대기하려면 '-1'로 설정하십시오. 명령에서info -f grub -n 'Simple configuration
Vijay

1

주석을 해제 GRUB_HIDDEN_TIMEOUT=0하고 update-grub다시 실행 하십시오.


작동하지 않습니다
Bob91

GRUB_HIDDEN_TIMEOUT = -1
kuhajeyan

1
GRUB_HIDDEN_TIMEOUT=-1우분투 18.10에서 일했습니다.
Manish Raj

0

우리는 단순히 라인을 추가 할 수 있습니다

set timeout=0

/etc/grub.d/40_custom파일을 실행 가능하게 만듭니다.

chmod +x /etc/grub.d/40_custom

실행

sudo update-grub

새로운 파일을 생성합니다 /boot/grub/grub.cfg. set timeout우리가 추가 한 명령은 마지막 set timeout명령입니다 /boot/grub/grub.cfg.


-1

해결책은 추가하는 것입니다

GRUB_RECORDFAIL_TIMEOUT=0

/etc/default/grub.

다른 모든 솔루션은 grub 업데이트시 재설정됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.