모든 하드 드라이브는 실행될 때 마다 update-grub
검사됩니다 . 대기 상태의 각 드라이브는 유휴 상태로 회전합니다. 이것은 에너지 낭비입니다. 우리는 update-grub 버전 1.98을 사용합니다:
# update-grub -v
grub-mkconfig (GRUB) 1.98+20100804-14+squeeze1
반품
GRUB_DISABLE_OS_PROBER=true
파일에 옵션이 있습니다/etc/default/grub
. 하지만 이것은 버전 2 이상에서만 작동하는 것 같습니다. 적어도 1.98 버전에서는 모든 드라이브 검색을 중지하지 않습니다./etc/grub.d/20_linux_xen
update-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
비활성화해야 합니다.
- 한 가지 방법은포장 제거:
apt-get --purge remove os-prober
. - 또 다른 방법은os-prober의 실행 권한 제거. 먼저 os-prober 의 위치를 찾는 데 사용하십시오
$ which os-prober
. 출력은 다음과 같습니다/usr/bin/os-prober
. 파일에 대한 모든 사용자 실행 권한을 제거합니다.# chmod a-x /usr/bin/os-prober
- 또 다른 방법은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
- 또 다른 방법은실행 건너뛰기의
/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