외장 USB 스틱 / 드라이브에서 부팅 하시겠습니까?


44

외부 USB 스틱 / 드라이브에서 직접 부팅 할 수는 없지만 SD 카드에서 부팅해야 외부 장치가 대신 할 수 있습니다. 이것을 설정하는 가장 쉽고 선호되는 방법은 무엇입니까? 따라서 SD 카드에서 부팅 한 다음 외부 장치가 대신 할 수 있습니까?

답변:


37

Pi에서 기존 OS를 실행중인 경우 먼저 USB 장치가 지원되는지 확인하는 것이 좋습니다. 평상시처럼 마운트하여이 작업을 수행 할 수 있습니다.

mount /dev/sda1 /mnt 

실패하면 커널 모듈을 활성화하지 않고 USB 장치를 루트 파티션으로 사용할 수 없습니다. 이를 위해 자신의 커널을 컴파일해야 할 수도 있습니다.

성공하면 Pi가 사용하는 부팅 매개 변수를 약간 조정하면 정상적으로 작동합니다.

기존 이미지 cmdline.txt에서 부팅 파티션에있는를 열고 다음 행을 입력하십시오.

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 
root=/dev/sda1 rootfstype=ext4 rootwait text

그런 다음 해당 이미지를 SD 카드로 플래시하고 Pi를 부팅하기 만하면됩니다. 모두 /dev/sda1제대로 작동하면 Pi가 부팅 될 때 USB 드라이브의 위치 여야하므로 해당 위치를 루트로 사용하려고합니다. 이 rootwait매개 변수는 USB 드라이브가 인식 될 때까지 부팅 프로세스를 중단 시키므로 중요합니다. 그것없이 Pi는 위치가 존재하지 않는다고 불평 할 수 있습니다.

기존 라즈베리 파이 이미지에서 USB 드라이브로 루트 파티션을 복사하여 부팅 할 것을 권장합니다.

추가 정보가 필요하면 알려주십시오.


+1 좋은 답변입니다. console=...아직 없어야합니까 ?
Alex Chamberlain

2
또한 명령 행에서 UUID를 사용할 수 있습니까?
Alex Chamberlain

예, 전체 파일을 제공했으며 UUID 사용에 대해 어디에서 이야기하고 있습니까?
Jivings

3
Jivings에게 감사드립니다. 공식 이미지를 USB 스틱에 "플래시"한 다음 FAT 파일에서 SD 카드로 내용을 복사하고 cmdline.txt를 조정했습니다. 필자의 경우 루트 파티션은 / dev / sda2입니다. 왜냐하면 / dev / sda1은 USB 스틱에서 (사용되지 않은) 부팅 파티션이기 때문입니다. 필자의 경우 rootwait가 필요하지 않았지만이 매개 변수를 아는 것이 좋습니다!
stefan.at.wpf

@ stefan.at.wpf (및 Jivings) 대신의 UUID를 사용할 수 있습니다 /dev/sdx- 적어도 /etc/fstab/- 다음은 중요하지 않습니다 경우 x변경됩니다.
Alex Chamberlain

4

이것을 설정하는 가장 쉬운 방법은 BerryBoot 를 사용하는 입니다. 멋진 GUI 인터페이스를 통해 USB 스틱 (또는 SD 카드 자체)에 하나 이상의 이미지를 설치하거나 USB 스틱 (또는 SD 카드 자체)에 설치할 수 있습니다.

~ 70MB의 설치 파일을 FAT32 형식의 SD 카드에 복사하여 장치에 넣고 부팅하기 만하면됩니다. 이더넷 또는 Wi-Fi 연결을 통해 자동으로 다운로드하여 설치할 수있는 사전 구성된 이미지 목록도 있습니다.

그런 다음 사용 가능한 이미지에서 기본적으로 부팅하려는 OS를 선택하고 나중에 새 이미지를 추가하거나 기본값을 변경하려면 부팅 프로세스 중에 enter 키를 눌러 재구성하십시오!


이미지를 SD 카드로 옮기시겠습니까? USB 스틱에 설치하고 싶다고 생각 했습니까?
Suhaib

OP가 언급했듯이 Raspberry Pi의 USB 스틱에서 직접 부팅 할 수는 없습니다-전원을 켠 후 다른 장치로 프로세스를 넘길 수있는 부트 로더가 설치된 SD 카드가 필요합니다.
Nathan Dunn

2

좋아, 명확히하기 위해-

@Jivings 답변 추가-

fstab에서 디스크를 참조 할 수있는 몇 가지 방법이 있습니다. scsi 디스크가 나타나는 순서가 보장되지 않기 때문에 / dev / sdXX를 사용하는 것이 항상 안전하지는 않습니다.

내가 모르는 것은 부팅 구성이 기본 장치 레이블 이외의 것을 이해하는지입니다. "root = / dev / sda1"은 추상화이므로 이론상 root = LABEL = TEST가 작동 할 수 있습니다. 조사해야합니다.

내가 명확하지 않으면 사과드립니다. 리눅스를 새로운 사람들에게 설명하는 데 약간의 기술 이득이 있습니다.


1
Jivings : 당신의 comand line 예제에있는 몇몇 매개 변수를 우리 누비들에게 설명해 주시겠습니까? 감사.
Michael Moriarty

그는 fstab을 언급하지 않았습니다. 대상 장치 / 파티션 이름은 커널 매개 변수입니다. UUID와 같은 다른 명명 규칙은 현대 커널에서 가능하며 특히 initrd / initramfs 모듈이있는 경우 가능합니다.
jiggunjer
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.