grub2의 검색 명령에서 --hint 옵션은 무엇을합니까?


10

http://www.gnu.org/software/grub/manual/grub.html#index-search 에있는 search명령에 대한 공식 GRUB2 문서를보고 있습니다 .

Command: search [--file|--label|--fs-uuid] [--set [var]] [--no-floppy] name

Search devices by file (-f, --file), filesystem label (-l, --label),
or filesystem UUID (-u, --fs-uuid).

If the --set option is used, the first device found is set as the
value of environment variable var. The default variable is ‘root’.

The --no-floppy option prevents searching floppy devices, which can be slow.

The ‘search.file’, ‘search.fs_label’, and ‘search.fs_uuid’ commands are aliases
for ‘search --file’, ‘search --label’, and ‘search --fs-uuid’ respectively.

섹션 5.3에는 많은 예제가 있습니다.

menuentry "FreeBSD" {
      insmod zfs
      search --set=root --label freepool --hint hd0,msdos7
      ...
}

--hint옵션이 예제 이외의 문서화되지 않은 것으로 나타납니다 . 정확히 무엇을합니까? 인수의 정확한 형식은 무엇입니까?

답변:


6

--hint일치하는 파티션이 여러 개인 경우 선택할 파티션을 선택하는 데 사용됩니다. 기본적으로 첫 번째 일치하는 항목이 선택됩니다.

다음과 같이 레이블 부트 가있는 2 개의 저장 장치가 있다고 가정하십시오.

hd0,msdos1
hd1,msdos7

그런 다음 명령 :

search --set=root --label freepool --hint hd1,msdos7

hd0, msdos1 대신 hd1, msdos7 을 선택합니다


6
별도의 --hint-efi, --hint-baremetal 등의 옵션이 존재하는 이유는 무엇입니까?
Michael Scheper

그리고 search --fs-uuid를 사용하면 어떤 용도로 사용 --hint됩니까?
Saad Malik

@SaadMalik, UUID는 고유하지 않아도됩니다. 파일 시스템 UUID는 레이블과 동일한 방식으로 작동하지만 UUID는 일반적으로 FS 생성시 생성됩니다.
jiwopene

1

이것은 GRUB 매뉴얼에 설명되어 있지 않지만 GRUB 자체 ( search --helpGRUB 쉘)에있는 문서가 있습니다 .

--hint
    First try the device HINT.
    If HINT ends in comma, also try subpartitions

--hint-ieee1275
    First try the device HINT if currently running on IEEE1275.
    If HINT ends in comma, also try subpartitions

--hint-bios
    First try the device HINT if currently running on BIOS.
    If HINT ends in comma, also try subpartitions

--hint-baremetal
    First try the device HINT if direct hardware access is supported.
    If HINT ends in comma, also try subpartitions

--hint-efi
    First try the device HINT if currently running on EFI.
    If HINT ends in comma, also try subpartitions

--hint-arc
    First try the device HINT if currently running on ARC.
    If HINT ends in comma, also try subpartitions

"First try device"의 요점은 무엇입니까?

search이것이 잠재적으로 느리게 작동 한다는 것을 이해해야합니다 .

어쩌면 각각 100 개의 파티션을 가진 50 개의 드라이브를 가지고 search있으며 2356 번째 시도에서 UUID를 찾을 때까지이 모든 과정을 거쳐야합니다.

또는 장치가 매우 느리고 UUID 원인 search을 확인 하는 것이 잠시 멈추는 것일 수 있습니다. 있다 --no-floppy, 가장 일반적인 경우를 방지하기 위해 같아요 -하지만 다른 장치는 속도가 느려질 수 있습니다.

--hint먼저 확인하는 장치를 설정합니다. 힌트가 올 바르면 잠재적으로 긴 검색 작업을 모두 건너 뜁니다. 이것이 속도 최적화입니다. (아마도 하나의 드라이브, 세 개의 파티션으로는 눈에 띄지 않을 것입니다)

동일한 LABEL 또는 UUID를 가진 두 개가있을 때 특정 장치를 선호하는 @totti의 답변 에 설명 된 효과 는 부작용 일뿐입니다.

물론, 한 장치를 먼저 확인하면 다른 장치에서 중복을 찾을 수 없습니다. 그럼에도 불구하고 처음에는 그러한 복제본을 갖지 않는 것이 더 합리적입니다. 중복 UUID (또는 LABEL)는 구성 오류로 간주 --hint될 수 있으며 잘못된 것으로 판명 된 경우 에도 여전히 잘못된 장치를 반환 할 수 있습니다.

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