update-grub이 모든 드라이브를 검색하는 것을 중지하는 방법은 무엇입니까?

update-grub이 모든 드라이브를 검색하는 것을 중지하는 방법은 무엇입니까?

모든 하드 드라이브는 실행될 때 마다 update-grub검사됩니다 . 대기 상태의 각 드라이브는 유휴 상태로 회전합니다. 이것은 에너지 낭비입니다. 우리는 update-grub 버전 1.98을 사용합니다:

# update-grub -v
grub-mkconfig (GRUB) 1.98+20100804-14+squeeze1

반품

  1. GRUB_DISABLE_OS_PROBER=true파일에 옵션이 있습니다 /etc/default/grub. 하지만 이것은 버전 2 이상에서만 작동하는 것 같습니다. 적어도 1.98 버전에서는 모든 드라이브 검색을 중지하지 않습니다.

  2. /etc/grub.d/20_linux_xenupdate-grub의 일부로 실행할 수 있는 스크립트 가 있습니다 . 모든 사용자의 모든 드라이브에서 실행 권한을 제거한 후에도 chmod a-x /etc/grub.d/20_linux_xen여전히 회전합니다.

update-grub모든 하드 드라이브 검색을 중지하는 방법은 무엇입니까 ?

답변1

파일에/etc/grub.d/30_os-prober철사

OSPROBED="`os-prober | tr ' ' '^' | paste -s -d ' '`"

모든 드라이브를 가동합니다(대기 -> 유휴).운영 체제 프로브부팅 드라이브가 아닌 드라이브에서 Linux 설치를 찾기 위한 유틸리티입니다. 이 기능을 os-prober비활성화해야 합니다.

  1. 한 가지 방법은포장 제거: apt-get --purge remove os-prober.
  2. 또 다른 방법은os-prober의 실행 권한 제거. 먼저 os-prober 의 위치를 ​​찾는 데 사용하십시오 $ which os-prober. 출력은 다음과 같습니다 /usr/bin/os-prober. 파일에 대한 모든 사용자 실행 권한을 제거합니다.# chmod a-x /usr/bin/os-prober
  3. 또 다른 방법은30_os-prober의 실행 권한을 제거합니다.. 30_os-prober 의 위치를 ​​찾는 데 사용됩니다 $ locate /30_os-prober. 출력은 다음과 같습니다 /etc/grub.d/30_os-prober. 파일에 대한 모든 사용자 실행 권한을 제거합니다.# chmod a-x /etc/grub.d/30_os-prober
  4. 또 다른 방법은실행 건너뛰기/etc/grub.d/30_os-prober. 예를 들어, 이 GRUB_DISABLE_OS_PROBER=true옵션이 grub 버전 1.98에서 작동하도록 하세요. 이 작업은 파일에 /etc/grub.d/30_os-prober다음 코드 줄을 삽입하여 수행할 수 있습니다 set -e.

...

if [ "x${GRUB_DISABLE_OS_PROBER}" = "xtrue" ]; then
  exit 0
fi

답변2

이것이 정말로 노력할 가치가 있는지 궁금해하시는 분들을 위해 그렇습니다. 어쩌면 에너지를 절약하기 위한 것이 아닐 수도 있지만, 오늘 update-grub이 /dev/sda(내 하드 드라이브) 및 /dev/sdc(USB 스틱)를 조사하려고 했기 때문에 문제에 부딪혔습니다. 후자를 내 노트북에 연결하지 않으면 USB 스틱에 실제로 OS가 설치되어 있지 않고 해당 스틱에서 부팅하지 않는 경우에도 update-grub이 중단됩니다. USB 스틱이 최근에 중단되었으므로 USB 스틱 없이도 update-grub을 계속(활성화)할 수 있는 방법이 필요합니다. 다행히도 GRUB_DISABLE_OS_PROBER=true효과가 있었습니다. :)

답변3

(이 문제를 해결하는 데 정말 시간과 노력을 들일 가치가 있나요?)

말씀하신 대로 조사는 아마도 grub-mkconfig호출 시간에 발생할 것입니다 grub-probe. grub-mkconfig호출 결과를 하드코딩하여 이를 수정할 수 있습니다 grub-probe. GRUB_DEVICE, GRUB_DEVICE_UUID, GRUB_DEVICE_BOOT, GRUB_DEVICE_BOOT_UUID를 채우는 데 사용됩니다 GRUB_FS.

답변4

나는 이것이 오래된 게시물이라는 것을 알고 있지만 스크립트를 변경하지 않는 다른 방법을 찾았습니다. /etc/grub.d/파일 이름을 (마침표로 시작) 30_os-prober로 변경한 후 업데이트 하는 .30_os-prober동안 동일한 위치에 표시되지만( .ls-a

관련 정보