Debian 8 Jessie su Raspberry Pi 2
![[Logotipi]](/immagini/tricks/rasp2-sum.jpeg)
Questo è un prontuario di istruzioni commentate per installare il sistema operativo Debian GNU/Linux sul Raspberry Pi 2, su un hard disk esterno. Nota bene: questo prontuario
- tratta di Debian GNU/Linux e non di Raspbian;
- tratta del Raspberry Pi 2 (2014) dotato di processore ARM Cortex-A7 e non del Raspberry Pi (2012) che invece monta un ARM1176;
- installa il sistema su un hard disk esterno, in un sottovolume btrfs, e utilizza la scheda microSD solamente per i blob binari per il boot e il kernel;
- è stato provato con successo utilizzando i binari per il boot dell'immagine 2015-11-21 di Raspbian e la release Debian 8 (Jessie) systemd.
Indice:
- Blob di avvio
- Installazione di Debian, primo passaggio
- Installazione di Debian, secondo passaggio
- Programmi base su Debian
Blob di avvio
Purtroppo, sembra che ad oggi nessuno conosca il contenuto del blob binario necessario per il caricamento del kernel, perciò, un paio di file dovranno essere presi così come sono direttamente dalla partizione di boot di una delle immagini ufficiali.
Inoltre, Debian supporta l'architettura ARM, ma non il Raspberry Pi, quindi non mette a disposizione un kernel ufficiale per il microcomputer. Per risolvere abbiamo due alternative: usare il kernel binario fornito nell'immagine insieme a Raspbian, oppure cross-compilarlo manualmente secondo le istruzioni ufficiali.
Si può scegliere la soluzione che si preferisce: noi abbiamo ricompilato il kernel col supporto a btrfs perché ci piace questo filesystem per fare snapshot del sistema a intervalli regolari.
Sul nostro filebox sono disponibili:
boot-2015-11-21.tar.gz | binari partizione di boot ufficiale (per evitare di dover scaricare tutta l'immagine) |
boot-4.1.15-btrfs.tar.gz | binari con kernel personalizzato con supporto integrato btrfs; i moduli esterni non sono inclusi |
config-4.1.5-btrfs | .config per il kernel personalizzato; usare questo per ricompilare kernel con btrfs e moduli |
Creare una partizione FAT32 (non FAT16) di circa 100MB sulla propria schedina microSD e posizionare i binari e i file di configurazione in tale partizione.
Modificare il file cmdline.txt
aggiungendo:
root=/dev/sda1 rootflags=subvol=slashfs rootfstype=btrfs rootwait init=/bin/bash
dove:
-
root=/dev/sda1
specifica la partizione dove si trova il filesystem di root. Si rammenti che il Raspberry Pi vede la scheda microSD come /dev/mmcblk0 e il primo disco esterno come /dev/sda, mentre il computer host vedrà come /dev/sda il suo disco interno! -
rootflags=subvol=slashfs
specifica il sottovolume btrfs dove si trova il filesystem di root; omettere se si utilizza ext4; -
rootfstype=btrfs
specifica il file system della partizione di root; sostituire conext4
se si utilizza quest'ultimo; -
rootwait
attende indefinitamente il filesystem di root. -
init=/bin/bash
avvia l'interprete bash senza attuare un avvio completo del sistema. Sarà infatti necessario integrare l'installazione minimale di Debian a computer avviato, prima di poter avere un sistema del tutto funzionante;
Installazione Debian
Primo passaggio
Installare lo script debootstrap sulla propria distribuzione. Questo strumento consente di creare un filesystem di root Debian:
$ yaourt -S debootstrap # Arch Linux e derivate # apt-get install debootstrap # Debian e derivate
Partizionare e formattare il disco (occhio a non cancellare il sistema), e montare la partizione in una posizione comoda. Ad esempio, una soluzione può essere:
# cfdisk /dev/sdb # mkfs.btrfs /dev/sdb1 # mkdir /mnt/piroot # mount /dev/sdb1 /mnt/piroot # cd /mnt/piroot # btrfs subvolume create slashfs # cd # umount /mnt/piroot # mount -o subvol=slashfs /dev/sdb1 /mnt/piroot
Adesso installare il sistema minimale Debian usando debootstrap
.
Se il sistema host gira su un'architettura diversa da quella del minicomputer
(come nella maggior parte dei casi, x86_64), l'installazione deve avvenire
in due passaggi:
- creazione di un filesystem di root minimale ma avviabile, completo dei pacchetti di base necessari per un'installazione funzionante, e di tutti gli strumenti necessari per completare l'installazione;
- avviato il minicomputer, completamento dell'installazione del sistema
e della configurazione dei pacchetti mancanti;
infine, ci si potrà sbizzarrire a personalizzare il sistema come si preferisce, come in una comune installazione.
# debootstrap --arch=armhf --foreign jessie /mnt/piroot http://debian.fastweb.it/debian/
dove:
-
--arch=armhf
specifica l'architettura per la quale stiamo installando il sistema (quella del Raspberry Pi 2); -
--foreign
esegue solamente il primo passaggio dell'installazione; deve essere utilizzato se il sistema host (il sistema sul nostro computer) ha un'architettura diversa da quella del sistema guest (il Raspberry Pi 2) -
jessie
specifica la release Debian che si vuole installare, in questo caso Debian 8 (Jessie); -
/mnt/piroot
specifica la directory in cui deve essere creato il filesystem di root; -
http://debian.fastweb.it/debian/
specifica il repository mirror da cui scaricare i pacchetti per l'installazione. Si può usare anche un mirror locale, ammesso di averne per l'architettura in questione.
Per maggiori delucidazioni, come sempre, vedere $ man debootstrap
Secondo passaggio
Inserire la microSD nel Raspberry, collegare il disco esterno e avviare. Il primo avvio darà qualche errore ma caricherà la sola shell bash come richiesto. Se ciò non dovesse accadere (e il sistema si blocca in un bel kernel panic), ricontrollare attentamente tutte le configurazioni.
Rimontare il filesystem di root in scrittura, avendo cura di prendere nota del suo nome (nella maggioranza dei casi sarà /dev/sda1):
# mount -o remount,rw,subvol=slashfs /dev/sda1 /
Scrivere nel file /etc/fstab
la configurazione per montare
il filesystem di root (si può usare nano che è già installato
e configurato). Esempio di fstab:
/dev/sda1 / btrfs rw,subvol=slashfs 0 0
Scrivere nel file /etc/hostname
l'hostname. Per ragioni
ignote, l'hostname predefinito è già impostato come quello
del vostro sistema host.
Impostare una password di root. Questa operazione deve essere eseguita adesso, perché l'amministratore non è dotato di una password di default, perciò, al primo avvio regolare, risulterebbe impossibile accedere.
# passwd root
Completare l'installazione di Debian:
/debootstrap/debootstrap --second-stage
Montare la partizione di boot (sulla scheda microSD) e rimuovere
init=/bin/bash
dal file cmdline.txt
per
permettere un avvio regolare di tutto il sistema:
# mount /dev/mmcblk0p1 /boot # nano /boot/cmdline.txt
Riavviare il sistema:
# rebootSe
reboot
non funziona, usare il Magic SysReq ALT + Stamp + REISU
per chiudere tutti i processi e sincronizzare tutti di dischi, quindi
riavviare con CTRL + ALT + CANC
.
Configurazione base Debian
Riavviato il computer, si ha ora un sistema Debian perfettamente funzionante, perciò questo prontuario può considerarsi concluso. Tuttavia, qui segue un veloce elenco di alcune operazioni facoltative, ma che in molti troveranno comodo.
- collegarsi alla rete Internet; magari impostare un IP statico nel
file
/etc/network/interfaces
-
installare qualche programma utile: un gestore di pacchetti e una shell avanzati,
la tastiera localizzata in italiano, il server ssh, un browser web:
# apt-get install aptitude zsh kbd console-data console-setup console-setup-linux xfonts-terminus openssh-server elinks
- aggiornare il sistema.
