Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Bootowanie Raspberry Pi z dysku USB

ghost666 14 Mar 2019 20:30 2094 14
  • Bootowanie Raspberry Pi z dysku USB
    Raspberry Pi 3 B można bootować bez problemu z pendrive USB, jednakże trzeba dokonać w nim jednej, prostej modyfikacji. Nie trzeba zmieniać nic w sprzęcie, ale konieczna jest zmiana w pamięci OTP systemu.

    Krok 1: Zmiany w pamięci OTP

    W pierwszej kolejności musimy załadować system z karty SD, aby zmienić zawartość interesującej nas komórki w pamięci OTP. W pierwszej kolejności aktualizujemy system do najnowszej wersji (jeśli jeszcze tego nie zrobiliśmy):

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    A następnie dodać odpowiedni wpis konfiguracyjny w pliku /boot/config.txt. Po wejściu w folder /boot dodajemy tą linijkę:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    Po dodaniu opcji możemy zresetować nasz komputer, wpisując w linii komend:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    Następnie możemy sprawdzić, czy pamięć OTP została poprawnie zaprogramowana. Wystarczy wpisać linii komend:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    Pod adresem 17:3020000a powinien być widoczny nasz zapis. Jeżeli nie jest, to należy powtórzyć opisaną powyżej procedurę programowania. Jeśli po kolejnej próbie bit konfiguracyjny w pamięci OTP nie jest poprawnie ustawiony, to znaczy, że nasze Raspberry Pi może być w jakiś sposób uszkodzone.

    Po zaprogramowaniu układu wpis 'program_usb_boot_mode' możemy z config.txt usunąć. Dzięki temu nie zaprogramujemy tego bitu przypadkiem, gdy włożymy kartę SD do innego Raspberry Pi.

    Krok 2: po resecie

    Teraz potrzebny nam będzie kompatybilny pendrive, z którego możemy załadować system na Raspberry Pi. Autor poradnika wykorzystuje Buffalo RUF3-KS, ponieważ jest dosyć szybki i niedrogi. Z kolei np. napędy firmy Verbatim w większości nie działają.

    Następnie możemy wgrać na pendrive obraz interesującego nas systemu (zastępujemy X w poniższych komendach ścieżką do naszego pendrive); image.img to obraz systemu, jaki chcemy wykorzystać.

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    Zachowajmy ostrożność wprowadzając tą komendę - jeśli pomylimy ścieżki, to możemy uszkodzić w ten sposób nasz komputer.

    Po załadowaniu obrazu systemu na pendrive możemy wyłączyć nasz system:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    Krok 3: bootowanie systemu

    Teraz możemy usunąć kartę SD ze slotu w Raspberry Pi i podłączyć do komputera dysk USB i zasilanie. Wszystko powinno automatycznie wystartować i nasz system zostanie załadowany z dysku USB.

    Źródło: https://www.instructables.com/id/Booting-Raspberry-Pi-3-B-With-a-USB-Drive/


    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
  • #2 14 Mar 2019 23:35
    CHAST
    Poziom 17  

    Odnośnie tej przeróbki mam kilka pytań.
    Skoro pamięć OTP czyli operacja w jedną stronę.
    Mają SD i USB które staruje pierwsze?
    W jaki sposób uszkodzi się komputer wpisując źle: sudo dd if=/dev/sdX of="/path/to/image.img"?

  • #3 15 Mar 2019 03:07
    guciu2
    Poziom 15  

    CHAST napisał:
    Odnośnie tej przeróbki mam kilka pytań.
    Skoro pamięć OTP czyli operacja w jedną stronę.
    Mają SD i USB które staruje pierwsze?
    W jaki sposób uszkodzi się komputer wpisując źle: sudo dd if=/dev/sdX of="/path/to/image.img"?


    Ad1. Tak - raz ustawione "program_usb_boot_mode" nie zmienisz już na 0.
    Ad2. SD startuje pierwsze, potem USB i ewentualnie boot przez ethernet ( choć tego ostatniego nie testowałem ).
    Ad3. Też jestem ciekaw. Może chodzi o to aby przypadkiem nie podać ścieżki of=/ do tej samej partycji którą właśnie zrzucamy?

  • #4 15 Mar 2019 05:27
    qbus1981
    Poziom 12  

    CHAST napisał:
    Odnośnie tej przeróbki mam kilka pytań.
    Skoro pamięć OTP czyli operacja w jedną stronę.
    Mają SD i USB które staruje pierwsze?
    W jaki sposób uszkodzi się komputer wpisując źle: sudo dd if=/dev/sdX of="/path/to/image.img"?


    Jeśli podasz błędny parametr "of" (który na przykład wskaże na twój dysk HDD) zniszczy ci tablicę partycji zapisując obraz z parametru "if" tworząc nowe partycje.

    I w sumie powinno być na odwrót czyli if=/ścieżka do pliku.img of=/dev/sdx.

  • #5 15 Mar 2019 06:53
    Slawek K.
    Poziom 29  

    Zamiast pendrive polecam dysk SSD, u mnie domoticz w ten sposób obsługuje cały dom przy zapisie co minutę z kilkudziesięciu rożnych czujników. Karta SD padała po niespełna miesiącu, pendrive wytrzymywał nieco dłużej.
    Ważne info, które kolega @ghost666 napisał moze nie dla wszystkich czytelnie, zmiana OTP nie jest możliwa na RPi poniżej wersji 3B.

    Pozdr

  • #6 15 Mar 2019 10:02
    igorrr
    Poziom 15  

    rs6000 napisał:
    Zamiast pendrive polecam dysk SSD, u mnie domoticz


    Możesz więcej coś na ten temat napisać? Jak podpinasz dysk do maliny? Dysk Jakiej pojemności masz?

  • #7 15 Mar 2019 14:26
    enigma
    Poziom 12  

    Podpinasz kolego dysk SSD w kieszeni na USB i już

  • #8 15 Mar 2019 19:27
    guciu2
    Poziom 15  

    enigma napisał:
    Podpinasz kolego dysk SSD w kieszeni na USB i już


    Niestety nie tak "już" bo nie wszystkie przejściówki SATA->USB będą działać z Raspberry tak jak i nie wszystkie pendrive-y i czasami można się niemile rozczarować

  • #9 15 Mar 2019 22:02
    Marek_Ertew
    Poziom 15  

    Artykuł przydało by się rozszerzyć o botowanie z USB na starszych malinkach, np. 2B. Tutaj procesor botuje się z karty SD, lecz w kolejnym kroku bootloader umożliwia załadowanie Linuxa z dowolnej partycji, w tym z dysku USB.
    https://www.raspberrypi.org/forums/viewtopic.php?t=193157

  • #10 16 Mar 2019 11:16
    bfksoql
    Poziom 7  

    A czy komuś udało się zrobić boot z pendrive przy jednocześnie podłączonym innym pendrive bez systemu. U mnie taki konfig nie działa:(

  • #11 16 Mar 2019 13:33
    PUH_HESTA
    Poziom 12  

    igorrr napisał:
    rs6000 napisał:
    Zamiast pendrive polecam dysk SSD, u mnie domoticz


    Możesz więcej coś na ten temat napisać? Jak podpinasz dysk do maliny? Dysk Jakiej pojemności masz?


    Można zastosować X820.

  • #12 16 Mar 2019 15:03
    bfksoql
    Poziom 7  

    PUH_HESTA napisał:
    igorrr napisał:
    rs6000 napisał:
    Zamiast pendrive polecam dysk SSD, u mnie domoticz


    Możesz więcej coś na ten temat napisać? Jak podpinasz dysk do maliny? Dysk Jakiej pojemności masz?


    Można zastosować X820.


    Jeden 60gb ssd z systemem i jak go wpinam samego to działa. Drugi 250gb taki NAS. Jak wepne go do działającej malinki to ok. Ale jak są oba wpiete to się nie bootuje. Wpisy fstab i config są ok - na UUID dysku.

  • #13 16 Mar 2019 16:18
    guciu2
    Poziom 15  

    A nie lepiej przygotować na karcie SD obraz live systemu odpowiednio zmodyfikowany, a na USB podpiąć dysk magazynujący tak żeby SD praktycznie tylko czytało?

  • #14 17 Mar 2019 16:38
    Bojleros
    Poziom 15  

    O ile dobrze pamiętam to mam 3B+. Bootloader zachowuje się w nich tak że najpierw próbuje bootować SD a potem zaczyna poszukiwanie urządzeń usb-storage. Jak znajdzie jakiekolwiek urządzenie usb-storage z bootloaderem EFI to zaczyna się bootowanie systemu. Nic z OTP kopać nie trzeba.

    Marek_Ertew napisał:
    Artykuł przydało by się rozszerzyć o botowanie z USB na starszych malinkach, np. 2B. Tutaj procesor botuje się z karty SD, lecz w kolejnym kroku bootloader umożliwia załadowanie Linuxa z dowolnej partycji, w tym z dysku USB.


    Najprostszy sposób na boot z mmc z systemem na dysku usb to wrzucenie tego samego obrazu na obydwa nośniki a potem wyedytowanie bootloadera na mmc tak aby zamiast bootować /dev/mmc* bootowało /dev/sda* . Przy takim tricku nie polecam używania UUID.

    CHAST napisał:
    W jaki sposób uszkodzi się komputer wpisując źle: sudo dd if=/dev/sdX of="/path/to/image.img"?


    To chyba skrót myślowy. Odpalasz jako root polecenie którym możesz wyorać plik albo całe urządzenie dyskowe. Wystarczy artystycznie zamienić if na of i/lub wybrać nieodpowiednie urządzenie :)

    bfksoql napisał:
    A czy komuś udało się zrobić boot z pendrive przy jednocześnie podłączonym innym pendrive bez systemu. U mnie taki konfig nie działa


    Zamiana urządzeń miejscami nie powinna raczej pomóc bo współczesne kernele enumerują sprzęt równolegle i kolejność wpięcia w gniazda usb niczego nie gwarantuje. Zobacz czy Twój bootloader ma podane nazwy urządzeń blokowych czy uuid.

  • #15 22 Mar 2019 17:34
    sesmart
    Poziom 6  

    Witam. Odpalałem boot z dysku 1.8 cala na RPI3B+ przez dwie przejsciówki USB=>PATA=>ZIF (dysk zif zasilanie 3.3v)
    Niestety samo nie poszło.
    Dopiero po podaniu napięcia zasilania zewnętrznego na dysk, wpiecia usb do RPI i na koncu zasilenia raspberry poszło.
    Nie każdy dysk bez aktywnego hab-a pójdzie w związku z poborem prądu przez dysk a wydolnością prądową portów usb raspberry (zależne od modelu rpi #i zasilacza).