Raspberry Pi är ett fantastiskt, mångsidigt kit, som kan utföra så olika projekt som att driva ett mediacenter för att använda som en sändningsradio. Men den har en påfallande brist: oförmågan att starta från USB.
Tja, tills nu, alltså.
Om du använder en Raspberry Pi 3 är det nu möjligt att avstå från uppstart från microSD och istället starta upp datorn från en USB-enhet. Detta kan vara ett flashminne, en SSD med en USB-adapter eller till och med en USB-hårddisk i full storlek. Detta är en betydande utveckling, så låt oss ta en titt på hur du kan ställa in din Raspberry Pi 3 för att starta från USB.
Kom igång: Installera Raspbian och lägg till nya filer
Det är bäst att starta det här projektet med en ny kopia av Raspbian, så ladda ner den senaste versionen (vi använder Raspbian Jessie) och installera den på vanligt sätt. Så snart detta är gjort, ta säkert bort kortet från din dator, sätt in det i den avstängda Raspberry Pi och starta, fjärransluta via SSH så snart det laddas upp.
Logga in (om du inte har ändrat dina standarduppgifter) och kör sedan följande kommandon, som kommer att ersätta standardinställningen
start.elf
och
bootcode.bin
filer med nyladdade alternativ:
sudo apt-get update
sudo BRANCH=next rpi-update
Denna uppdatering levererar de två filerna till
/boot
katalog. Med filerna nedladdade, fortsätt för att aktivera USB-startläget med:
echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt
Detta kommando lägger till
program_usb_boot_mode=1
instruktion till slutet av
config.txt
fil.
Du måste starta om Pi när detta är gjort.
Nästa steg är att kontrollera att OTP – engångsprogrammerbart minne – har ändrats. Kolla detta med:
vcgencmd otp_dump | grep 17:
Om resultatet är representativt för adressen
0x3020000a
(Till exempel
17:3020000a
) så är allt bra än så länge. Om du i detta skede vill ta bort
program_usb_boot_mode=1
linje från
config.txt
fil kan du. Pi är nu USB-startaktiverad, och du kanske vill använda samma microSD-kort i en annan Raspberry Pi 3, med samma bild, så att ta bort linjen är en bra idé.
Detta görs enkelt genom att redigera
config.txt
i nano:
sudo nano /boot/config.txt
Ta bort eller kommentera motsvarande rad (med ett föregående #).
Förbered din USB-startenhet
Anslut sedan ett formaterat (eller redo att tas bort) USB-minne till en reservport på din Raspberry Pi 3. Med detta insatt fortsätter vi med att kopiera operativsystemet över.
Börja med att identifiera ditt USB-minne, med
lsblk
kommando.
I det här exemplet är SD-kortet
mmcblk0
medan USB-minnet är
sda
(den formaterade partitionen är
sda1
). Om du har andra USB-lagringsenheter anslutna kan USB-minnet vara sdb, sdc, etc. Med namnet på ditt USB-minne etablerat, avmontera disken och använd det delade verktyget för att skapa en 100 MB partition (FAT32) och en Linux-partition:
sudo umount /dev/sda
sudo parted /dev/sda
Vid (avskilda) prompten anger du:
mktable msdos
Du kan få information om att skivan annars är inkopplad. Välj i så fall Strunta i, notera sedan varningen som instruerar dig att data på disken kommer att förstöras. Som förklarats tidigare bör detta vara en disk som du gärna tar bort eller formaterar, så godkänn detta.
Om du stöter på några problem här kan du behöva byta till skrivbordet (antingen manuellt eller över VNC) och bekräfta att disken är avmonterad, innan du anger kommandot mktable msdos på en kommandorad i fönster.
Fortsätt in med följande:
mkpart primary fat32 0% 100M
mkpart primary ext4 100M 100%
Detta kommer att mata ut lite information om disken och de nya partitionerna. Fortsätt för att avsluta med Ctrl + C, innan du skapar startfilsystemet och rotfilsystemet:
sudo mkfs.vfat -n BOOT -F 32 /dev/sda1
sudo mkfs.ext4 /dev/sda2
Du måste sedan montera målfilsystemen innan du kopierar ditt nuvarande Raspbian OS till USB-enheten.
sudo mkdir /mnt/target
sudo mount /dev/sda2 /mnt/target/
sudo mkdir /mnt/target/boot
sudo mount /dev/sda1 /mnt/target/boot/
sudo apt-get update; sudo apt-get install rsync
sudo rsync -ax --progress / /boot /mnt/target
Det sista är det sista kommandot som kopierar allt, och det kommer därför att ta ett tag att slutföra. Dags att göra en kaffe!
Därefter måste du uppdatera SSH-värdnycklarna för att upprätthålla anslutningen med den omkonfigurerade Raspberry Pi efter en förestående omstart:
cd /mnt/target
sudo mount --bind /dev dev
sudo mount --bind /sys sys
sudo mount --bind /proc proc
sudo chroot /mnt/target
rm /etc/ssh/ssh_host*
dpkg-reconfigure openssh-server
exit
sudo umount dev
sudo umount sys
sudo umount proc
Observera att efter sudo chroot (det femte kommandot ovan) byter du till root, så användaren kommer att ändra från [email protected] till [email protected] tills du går in i utgången på linje 8.
Förbered dig för omstart från USB!
Bara några fler saker att reda ut innan din Raspberry Pi är redo att starta från USB. Vi måste redigera
cmdline.txt
igen från kommandoraden med:
sudo sed -i "s,root=/dev/mmcblk0p2,root=/dev/sda2," /mnt/target/boot/cmdline.txt
På samma sätt måste följande ändring göras i fstab:
sudo sed -i "s,/dev/mmcblk0p,/dev/sda," /mnt/target/etc/fstab
Du är sedan redo att avmontera filsystemen innan du stänger av Pi:
cd ~
sudo umount /mnt/target/boot
sudo umount /mnt/target
sudo poweroff
Observera att den här använder den nya
poweroff
kommando som ett alternativ till
shutdown
.
När Pi har stängts av, koppla bort strömförsörjningen innan du tar bort SD-kortet. Anslut sedan strömförsörjningen igen – din Raspberry Pi bör nu starta från USB-enheten! Och för mer hjälp med din Pi, kolla in hur du ställer in Wi-Fi och Bluetooth på Raspberry Pi 3.
Är du redo att ge Raspberry Pi 4 ett försök? Kolla in dess funktioner och specifikationer.
Om författaren
Christian Cawley (1562 publicerade artiklar)
Biträdande redaktör för säkerhet, Linux, gör-det-själv, programmering och teknisk förklarad, och riktigt användbar podcastproducent, med lång erfarenhet av skrivbords- och mjukvarustöd. Christian är en bidragsgivare till tidningen Linux Format och är en Raspberry Pi-pyssling, en Lego-älskare och en retrospelfantast.
Mer från Christian Cawley
Prenumerera på vårt nyhetsbrev
Gå med i vårt nyhetsbrev för tekniska tips, recensioner, free e-böcker och exklusiva erbjudanden!
Klicka här för att prenumerera
