RaspberryPI

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
  • = 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

MST-Admin

Appassionato di elettronica, elettrotecnica generale e programmazione. Fondatore del progetto MST-tutorial, desideroso di condividere con voi l'entusiasmo per l'innovazione tecnologica e la sperimentazione di novità tecniche in questi campi.

Articoli Correlati

Pulsante per tornare all'inizio