Raspberry PI: preparazione memoria SD NOOBS da GNU/Linux
In questa guida volgiamo mostrarvi come preparare una memoria SD con NOOBS (New Out Of Box Software) per il nostro Raspberry PI sotto un sistema GNU/Linux. Volendo proporre un procedimento compatibile con il maggior numero di distribuzioni possibili sono state utilizzate applicazioni presenti di default in tutte le distro più famose.
NOOBS è una sorta di installer/recovery studiato per permettere agli utenti di Raspberry PI di installare facilmente il sistema operativo all’interno della scheda SD. Per questa guida è stato scelto di lasciare la massima libertà all’utente e di installare NOOBS LITE, il quale permette l’avvio del nostro Raspberry e posticipa la scelta/download del sistema operativo in un secondo momento.
La guida è utilizzabile per qualunque scheda RaspberryPI.
Per prima cosa è necessario procurarsi l’ultima versione disponibile di NOOBS dalla pagina download del progetto RaspberryPI. Nel link che segue troveremo due versioni di NOOBS: la prima conterrà sia il sistema di avvio/recovery sia Raspbian (versione di debian modificata per Raspberry), la seconda, chiamata LITE, invece conterrà solo il sistema di avvio/recovery. Personalmente consiglio il download di NOOBS LITE, ma voi potrete scegliere la versione che meglio preferite, la guida è valida per entrambe i sistemi.
Download NOOBS
Download NOOBS LITE
Aprendo il terminale possiamo scaricare NOOBS tramite wget con i seguenti comandi:
wget https://downloads.raspberrypi.org/NOOBS_lite_latest
per la versione lite, oppure
wget https://downloads.raspberrypi.org/NOOBS_latest
per la versione che include Raspbian.
Una volta scaricato il sistema dovremo procedere alla preparazione della memoria SD, poiché dovrà essere formattata con filesystem FAT 32 e dovrà contenere i file di sistema con gli appositi permessi di scrittura/lettura.
Inseriamo quindi la memoria SD nel nostro computer, apriamo il terminale di sistema e facciamo il login di amministratore (su, se siamo su distribuzioni Debian e derivate dovremo porre sudo prima di ogni comando). Per prima cosa con il seguente comando andiamo a trovare il percorso dove è associata la nostra memoria:
fdisk -l
l’output sarà l’elenco di tutte le memorie (e relative partizioni) accessibili dal sistema. Otterremo una risposta simile alla seguente:
[root@localhost Scaricati]# fdisk -l Disk /dev/sda: 232,9 GiB, 250059350016 bytes, 488397168 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x25d17948 Dispositivo Avvio Start Fine Settori Size Id Tipo /dev/sda1 * 2048 1026047 1024000 500M 7 HPFS/NTFS/exFAT /dev/sda2 1026048 347955199 346929152 165,4G 7 HPFS/NTFS/exFAT /dev/sda3 347955200 350052351 2097152 1G 83 Linux /dev/sda4 350052352 488396799 138344448 66G 5 Esteso /dev/sda5 350054400 488396799 138342400 66G 8e Linux LVM Disk /dev/mapper/fedora-root: 41,7 GiB, 44719669248 bytes, 87343104 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/mapper/fedora-swap: 4 GiB, 4278190080 bytes, 8355840 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/mapper/fedora-home: 20,3 GiB, 21831352320 bytes, 42639360 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/sdb: 7,4 GiB, 7969177600 bytes, 15564800 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x00000000
Nel mio caso la memoria SD è posizionata in /dev/sdb. Nel caso la nostra memoria fosse già formattata con una partizione particolare (esempio /dev/sdb1) è opportuno provvedere a smontarla con il comando:
mount /dev/sdb*
Quindi procediamo con il seguente comando per entrare nella gestione partizioni della memoria SD:
fdisk /dev/sdb
Ora con i seguenti comandi (elencati nel corretto ordine di inserimento) dobbiamo eliminare tutte le partizioni presenti sulla SD, crearne una nuova primaria e scrivere le modifiche sulla memoria.
- d = elimina partizione (se necessario va ripetuto più volte)
- n = crea partizione lasciando pure i parametri proposti di default
- t = assegna la tipologia filesystem, nel nostro caso FAT 32, che corrisponde alla lettera b
- w = scrive la nuova tabella di partizione
Otteniamo quindi quanto segue:
[root@localhost mae89]# fdisk /dev/sdb Welcome to fdisk (util-linux 2.29.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Comando (m per richiamare la guida): d Numero della partizione (1,2,5, default 5): Partition 5 has been deleted. Comando (m per richiamare la guida): d Numero della partizione (1,2, default 2): Partition 2 has been deleted. Comando (m per richiamare la guida): d Selected partition 1 Partition 1 has been deleted. Comando (m per richiamare la guida): d No partition is defined yet! Could not delete partition 94915584128945 Comando (m per richiamare la guida): n Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p): Using default response p. Numero della partizione (1-4, default 1): First sector (2048-15564799, default 2048): Last sector, +sectors or +size{K,M,G,T,P} (2048-15564799, default 15564799): Created a new partition 1 of type 'Linux' and of size 7,4 GiB. Partition #1 contains a vfat signature. Do you want to remove the signature? [Y]es/[N]o: y The signature will be removed by a write command. Comando (m per richiamare la guida): t Selected partition 1 Partition type (type L to list all types): b Changed type of partition 'Linux' to 'W95 FAT32'. Comando (m per richiamare la guida): w The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks.
Fatto ciò è obbligatorio assegnare alla partizione appena creata (quindi /dev/sdb1) il filesystem FAT32 con l’istruzione:
mkfs.fat /dev/sdb1
Terminata questa fase DOBBIAMO procedere SENZA privilegi di amministratore per decomprimere l’archivio NOOBS nella SD. Eseguire questo passaggio come root significa sfalsare tutti i permessi dei file, e di fatto la nostra SD non si avvierà correttamente. Prima di procedere rimoviamo e reinseriamo la memoria SD (in tal modo verrà montata dal sistema).
NB. /run/media/mae89/6B4C-7250 è il percorso della SD nel mio PC… andrà opportunamente modificato a seconda della distribuzione che utilizzate.
unzip NOOBS_latest -d /run/media/mae89/6B4C-7250
Una volta terminata la copia dei file di sistema di NOOBS non ci resta che procedere con la rimozione in modo sicuro della memoria SD.
umount /dev/sdb1
A questo punto la nostra memoria è pronta per essere inserita in un RaspberryPI.
Per il progetto RaspberryPI sono utilizzati i seguenti prodotti:
► Raspberry PI 3 B+ http://amzn.to/2nQuk4w
► SanDisk Ultra Imaging MicroSDHC 32 GB http://amzn.to/2nZNX6V
► Adattatore HDMI to VGA http://amzn.to/2nZIq0r
► Alimentatore 40W 8A http://amzn.to/2nZBTTj
► Cavi micro usb http://amzn.to/2nffeCu