Kaip

Tokiu būdu paleisite „Raspberry Pi“ iš USB ar tinklo

Paprastai „Raspberry Pi“ paleidžiate iš (mikro) SD kortelės. Tačiau kartais tai nėra labai patogu. Neseniai minikompiuterių šeimos kūrėjai įtraukė du naujus įkrovos režimus: USB ir tinklą. Naudodami USB režimą, galite paleisti „Raspberry Pi“ iš operacinės sistemos USB atmintinėje arba standžiajame diske, kurį prijungiate per USB.

Naudojant tinklo režimą, jums net nereikia vietinio atminties įrenginio: „Raspberry Pi“ operacinę sistemą per internetą atsisiunčia iš kito kompiuterio. Pavyzdžiui, galite lengvai paleisti kelis „Raspberry Pi“ per operacinę sistemą centriniame kompiuteryje. Jei atnaujinsite tą centrinę operacinę sistemą, visi jūsų „Raspberry Pis“ automatiškai veiks naujausią versiją.

01 Eksperimentiniai valčių režimai

Naujieji įkrovos režimai yra eksperimentiniai ir sukurti „Raspberry Pi 3“. Tam reikalingas įkrovos kodas yra BCM2837: „Raspberry Pi 3“ procesorius. Jei turite „Raspberry Pi 1“, „2“ arba „Zero“, taip pat galite naudoti naudokite naujus įkrovos režimus, tačiau žiediniu būdu: suformuokite SD kortelę su fat32, nukopijuokite failą bootcode.bin į kortelę ir paleiskite savo Pi iš šios kortelės. Tai gali būti ne viskas be SD kortelės, bet jūs galite paleisti savo Pi iš USB ar tinklo.

02 Galimos USB problemos

Įkrovimas iš USB ne visada veikia. Pavyzdžiui, kai kurios USB atmintinės įsijungia per lėtai. Išoriniai standieji diskai taip pat ne visada reaguoja per dvi sekundes - laiką, kurio paleidimo kodas laukia pagal numatytuosius nustatymus. Galite padidinti skirtąjį laiką iki penkių sekundžių, tačiau kai kurie įrenginiai net nebus paruošti. Kitos USB atmintinės turi labai specifinius ryšio protokolo reikalavimus, kurių neatitinka „Raspberry Pi 3“ įkrovos kodas (ribotas iki 32 kB romų). Taigi gali tekti išbandyti kai kuriuos diskus.

03 Programinės aparatinės įrangos atnaujinimas

Manome, kad jūsų „Raspbian“ veikia jūsų „Raspberry Pi“. Jei ne, atsisiųskite vaizdą ir įdėkite jį į SD kortelę naudodami „Win32DiskImager“ programą ir iš jos paleiskite „Pi“. Pirmiausia atnaujinkite visas saugyklas naudodami sudo apt-get atnaujinimas. Jei naudojate „Raspbian Lite“ (versija be grafinės sąsajos), pirmiausia paleiskite sudo apt-get install rpi atnaujinimas nes toje minimalioje „Raspbian“ versijoje nėra „rpi-update“ paketo. Tada atnaujinkite aparatinę programinę įrangą iškitas filialas su sudo BRANCH = kitas rpi atnaujinimas.

04 USB režimo įjungimas

Atidarykite įkrovos konfigūracijos failą naudodami sudo nano /boot/config.txt ir pridėkite komandą program_usb_boot_mode = 1 iki galo. Išsaugokite failą naudodami „Ctrl“ + O ir uždarykite „nano“ naudodami „Ctrl“ + X. Paleiskite „Pi“ iš naujo naudodami sudo iš naujoir po naujo paleidimo patikrinkite, ar įjungtas USB režimas. Jūs tai darote su užduotimi vcgencmd otp_dump | 17 grep:, kuris turėtų grąžinti skaičių, pasibaigiantį 0x3020000a. Tada dar kartą atidarykite įkrovos konfigūracijos failą ir ištrinkite komandą program_usb_boot_mode = 1kad netyčia neįjungtumėte USB įkrovos režimo kitame Pi, į kurį įdėsite šią SD kortelę.

05 USB atminties skaidymas

Dabar prijunkite USB atminties įrenginį prie „Pi“. Padalinkite šį įrenginį naudodami sudo išsiskyrė / dev / sda. Sukurkite naują skaidinio lentelę naudodami mktable msdos ir patvirtinkite Taip kad norite sunaikinti visus disko duomenis. Tada sukurkite 100 megabaitų fat32 skaidinį su mkpart pirminiai riebalai32 0% 100M ir „ext4“ skaidinys, užimantis likusią disko dalį su mkpart pirminis ext4 100M 100%. Peržiūrėkite pakeitimus spausdindami ir uždarykite mesti. Tada sukurkite įkrovos failų sistemą naudodami sudo mkfs.vfat -n BOOT -F 32 / dev / sda1 ir šaknų failų sistemą su sudo mkfs.ext4 / dev / sda2.

06 „Raspbian“ kopija

Įdiekite programą „rsync“ su sudo apt-get install rsync. Tada sukurkite naują katalogą naudodami sudo mkdir / mnt / usb ir prijunkite ant jo USB atmintinės ext4 failų sistemą sudo mount / dev / sda2 / mnt / usb /. Tada sukurkite įkrovos katalogą naudodami sudo mkdir / mnt / usb / boot ir įdiekite įkrovos failų sistemą į ją naudodami sudo mount / dev / sda1 / mnt / usb / boot /. Dabar nukopijuokite „Raspbian“ sistemą, paleistą iš SD kortelės, į failų sistemą, esančią jūsų USB atmintinėje. Jūs tai darote su užduotimi sudo rsync -ax --progress / / boot / mnt / usb. Būkite kantrūs, nes tai gali užtrukti.

07 Chroot

Dabar USB atmintinėje yra jūsų veikiančios „Raspbian“ kopija, tačiau ne viskas gali būti identiška. Pavyzdžiui, naujai sistemai reikia skirtingų ssh raktų. Todėl eikite į USB atmintinę naudodami cd / mnt / usb ir prijungti kai kurias specialias failų sistemas su sudo mount --bind / dev dev, sudo mount --bind / sys sys ir sudo mount --bind / proc proc. Tada įveskite a chroot (pakeisti šaknį) su sudo chroot .. Visos komandos, kurias dabar vykdote, bus vykdomos sistemoje, esančioje USB atmintinėje, o ne sistemoje, esančioje SD kortelėje.

08 Nauji ssh raktai

Dabar esate pagrindinis „chroot“ naudotojas. Pirmiausia ištrinkite esamus ssh raktus, nes juos mes nukopijavome iš sistemos iš SD kortelės. Jūs tai darote su rm / etc / ssh / ssh_host *. Tada sugeneruokite naujus ssh raktus, perkonfigūruodami „OpenSSH“ serverį naudodami dpkg perkonfigūruoti openssh serverį. Po to išeikite iš chroot su išėjimas. Visos komandos, kurias dabar vykdote, vėl bus vykdomos sistemoje SD kortelėje. Tada atjunkite specialias failų sistemas su sudo umount dev, sudo umount sys ir sudo umount proc.

09 Šaknies failų sistemos pritaikymas

Dabar įsitikinkite, kad Pi naudoja šakninių failų sistemą USB atmintinėje, o ne SD kortelėje. Tam tikslinate failą /įkrovos / cmdline.txt į su sudo sed -i "s, šaknis = / dev / mmcblk0p2, šaknis = / dev / sda2,"/mnt/usb/boot/cmdline.txt. Atlikite tą patį faile / etc / fstab: sudo sed -i "s, / dev / mmcblk0p, / dev / sda," / mnt / usb / etc / fstab. Po to eikite į savo namų katalogą su CD, atjunkite failų sistemas iš USB atmintinės sudo umount / mnt / usb / boot ir sudo umount / mnt / usb ir išjunkite Pi su sudo maitinimas. Atjunkite maitinimo laidą, išimkite SD kortelę ir vėl įjunkite maitinimo laidą. Jei viskas gerai, jūsų „Pi“ bus paleista iš jūsų USB atmintinės.

$config[zx-auto] not found$config[zx-overlay] not found