USB 하드 드라이브에서 Linux 커널을 부팅하기 위해 grub을 어떻게 구성해야합니까?


17

큰 펜 드라이브로 사용하는 외장 인클로저에 랩톱 하드 드라이브가 있습니다. 트위스트를 추가하기 위해 Linux를 설치 했으므로 선택한 배포 방식으로 컴퓨터를 부팅 할 수 있습니다 (예 : 데이터 복구 또는 b0rked 시스템 복구 또는 사전 설치된 Windows를 파괴하지 않고 빌린 랩톱 사용). 문제는 하드웨어 구성에 따라 USB 하드 드라이브가 다른 경로에서 보일 수 있다는 것입니다. grub 구성의 (hda0,0)경우 grub을 시작한 장치와 관련하여 사용합니다. 에 UUID 항목이 /etc/fstab있습니다. 또한 rootwait커널 매개 변수를 지정 하여 장치를 마운트하기 전에 USB 서브 시스템이 정지 될 때까지 기다립니다.

커널로 무엇을 전달해야 root=합니까? 현재 pendrive에서 한 번 부팅하고 디버그 메시지를 확인 /dev/sdX하여 커널이 USB 드라이브에 할당 한 장치 를 확인한 다음 재부팅하고 grub 구성을 편집하십시오. Boot from USB hard driveBIOS에서 활성화 하고 내부 하드 드라이브보다 우선 순위를 높게 설정하는 것 외에는 PC에서 아무것도 변경할 수 없습니다 .

루트 장치 경로에 UUID에 대한 지원을 포함하는 다양한 initrd 생성 스크립트가 있습니다. 불행히도 Gentoo 네이티브 스크립트 (genkernel)는 지원하지 않으며 rootwait다른 것을 사용하려고 시도 하지 않았습니다 .

부팅 프로세스는 다음과 같습니다 ( Windows에서는 매우 유사 함 ).

  1. BIOS는 부팅 장치를 선택하고 MBR (grub stage-1)을로드합니다.
  2. Grub 은 BIOS에서로드 한 장치를 root사용하여 설정 한 장치에서 구성 및 2 단계 파일을 (hd0)로드합니다.
  3. Grub은 커널을로드하고 시작합니다 (여전히 같은 번호를 사용하므로 (hd0,0)다시 사용할 수 있습니다 ).
  4. 커널은 모든 내장 장치를 초기화합니다 ( rootwait지금은 마술입니다).
  5. 커널은 전달 된 파티션을 마운트합니다 root(grub 매개 변수가 아닌 커널 매개 변수 임).
  6. init.d에서 마운트하는 것을 포함하여 userland 부팅 프로세스를 시작합니다 /etc/fstab.

Part 5는 문제를 일으키는 부분입니다.

답변:


6

대답은 root=LABEL=...또는root=UUID=...

그러나 이것이 효과가 없다는 것을 나타냅니다. initrd의 동작에 문제가 있는지 살펴볼 것을 제안합니다.


나는 initrd가 없다. 그것은 전체 문제이다. genkernel은 "rootwait"옵션을 지원하지 않으며 Gentoo에서는 작동하지 않습니다.
skolima

2

오해의 소지가 있거나 오해의 소지가있을 수 있지만 부팅중인 컴퓨터의 BIOS에서 구성 할 부팅 장치를 선택하지 않습니까?

GRUB을 부트 로더로 설치 한 USB 드라이브를 선택한 다음 GRUB 메뉴에서 부팅 할 배포판을 선택하는 것이 문제라고 생각합니다.


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