Suite à mon article sur l'installation de Deluge sur raspberry, j'avais en tête qu'une version supérieure à celle proposée par raspbian existait. Linux Mint et Manjaro fournissant maintenant la V2 de deluge dans leurs dépôts et étant incompatible avec la version 1.3, je me suis mis en quête de faire une seedbox sur Arch. Le problème c'est que des tutos pour booter sur un ssd usb sans passer par une carte SD, il y en a un paquet pour raspbian mais je n'en ai pas trouvé pour Arch. J'ai fini par trouver la solution et j'en profite pour partager l'expérience.
En pré-requis il faut une version de raspberry capable de booter en USB et préparée pour le faire. Si vous en avez un capable de démarrer en usb sur Raspbian ça devrait le faire avec Arch.
Installation de la distribution
Concernant l'installation d'Arch j'ai suivi la procédure officielle, je vais la résumer ci-dessous avec quelques indications complémentaires. Je l'ai effectué depuis un pc sur linux. Sur windows je suppose que ça doit fonctionner avec WSL.
On commence donc par identifier le disque dur sur lequel on va réaliser l'installation. Je vous conseille d'effectuer toute la procédure en tant que root (sudo -i).
root@MIMINT:~# fdisk -l
Disque /dev/sda : 223,58 GiB, 240057409536 octets, 468862128 secteurs
Disk model: INTEL SSDSC2BW24
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : gpt
Identifiant de disque : 1FB02E21-ABA1-4638-A074-5927E322ED19
Périphérique Début Fin Secteurs Taille Type
/dev/sda1 2048 448511 446464 218M Système EFI
/dev/sda2 448512 98105343 97656832 46,6G Système de fichiers Linux
/dev/sda3 461049856 468860927 7811072 3,7G Partition d'échange Linux
/dev/sda4 98105344 461049855 362944512 173,1G Système de fichiers Linux
Les entrées de la table de partitions ne sont pas dans l'ordre du disque.
Disque /dev/sdz : 7,47 GiB, 8004829184 octets, 15634432 secteurs
Disk model: USB DISK 2.0
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : dos
Identifiant de disque : 0x3d1d25da
Périphérique Amorçage Début Fin Secteurs Taille Id Type
/dev/sdz1 * 0 4104575 4104576 2G 0 Vide
/dev/sdz2 672 5599 4928 2,4M ef EFI (FAT-12/16/32)
Attention, réalisez bien toutes les commandes de cette section sur le bon disque dur. Une commande passée sur le mauvais disque et ciao la partition. Dans la précipitation j'ai écrasé la partition boot de mon PC, c'était pas fun... donc prudence !
Pour ce tuto j'ai utilisé une clé usb de 8 go /dev/sdz qu'on voit ci-dessus. On commence donc avec la préparation du disque ainsi
root@MIMINT:~# fdisk /dev/sdz
Bienvenue dans fdisk (util-linux 2.34).
Les modifications resteront en mémoire jusqu'à écriture.
Soyez prudent avant d'utiliser la commande d'écriture.
On va créer 2 partitions, l'une au format W95 FAT32 de 200 Mo qui sera la partition boot et une seconde EXT4 sur le reste qui contiendra les données du système d'exploitation
La partition de boot est à créer ainsi
Commande (m pour l'aide) : o
Création d'une nouvelle étiquette pour disque de type DOS avec identifiant de disque 0x1b487d33.
Commande (m pour l'aide) : n
Type de partition
p primaire (0 primaire, 0 étendue, 4 libre)
e étendue (conteneur pour partitions logiques)
Sélectionnez (p par défaut) : p
Numéro de partition (1-4, 1 par défaut) : 1
Premier secteur (2048-15634431, 2048 par défaut) :
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-15634431, 15634431 par défaut) : +200M
Une nouvelle partition 1 de type « Linux » et de taille 200 MiB a été créée.
Commande (m pour l'aide) : t
Partition 1 sélectionnée
Code Hexa (taper L pour afficher tous les codes) : c
Type de partition « Linux » modifié en « W95 FAT32 (LBA) ».
J'ai donc commencé par la lettre o pour libérer les partitions du disque, ensuite n puis p et 1 pour créer la 1ère partition primaire. Pour la taille je saisi entrée pour le 1er secteur et +200M pour définir la taille de la partition. Enfin t puis c pour définir le type W95 FAT32.
Ensuite on enchaîne de la même manière pour la partition du système
Commande (m pour l'aide) : n
Type de partition
p primaire (1 primaire, 0 étendue, 3 libre)
e étendue (conteneur pour partitions logiques)
Sélectionnez (p par défaut) : p
Numéro de partition (2-4, 2 par défaut) :
Premier secteur (411648-15634431, 411648 par défaut) :
Last sector, +/-sectors or +/-size{K,M,G,T,P} (411648-15634431, 15634431 par défaut) :
Une nouvelle partition 2 de type « Linux » et de taille 7,3 GiB a été créée.
Ici il suffit de saisir n puis p et valider tout le reste avec entrée ce qui va générer une partition de type linux sur tout le reste du disque.
Après ceci avec p vous devriez pouvoir vérifier vos 2 partitions sdz1 et sdz2 chez moi.
Commande (m pour l'aide) : p
Disque /dev/sdz : 7,47 GiB, 8004829184 octets, 15634432 secteurs
Disk model: USB DISK 2.0
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : dos
Identifiant de disque : 0x1b487d33
Périphérique Amorçage Début Fin Secteurs Taille Id Type
/dev/sdz1 2048 411647 409600 200M c W95 FAT32 (LBA)
/dev/sdz2 411648 15634431 15222784 7,3G 83 Linux
Si c'est ok on valide le tout avec w
Commande (m pour l'aide) : w
La table de partitions a été altérée.
Appel d'ioctl() pour relire la table de partitions.
Synchronisation des disques.
On formate nos deux partitions (Ici Attention à ne pas se tromper !)
root@MIMINT:~# mkfs.vfat /dev/sdz1
mkfs.fat 4.1 (2017-01-24)
root@MIMINT:~# mkfs.ext4 /dev/sdz2
mke2fs 1.45.5 (07-Jan-2020)
En train de créer un système de fichiers avec 1902848 4k blocs et 475776 i-noeuds.
UUID de système de fichiers=3acaf573-85ba-4d43-99b8-795bcf67b071
Superblocs de secours stockés sur les blocs :
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Allocation des tables de groupe : complété
Écriture des tables d'i-noeuds : complété
Création du journal (16384 blocs) : complété
Écriture des superblocs et de l'information de comptabilité du système de
fichiers : complété
Maintenant créez deux dossiers root et boot et montez vos partitions dessus
root@MIMINT:~# mkdir root boot
root@MIMINT:~# mount /dev/sdz1 boot/
root@MIMINT:~# mount /dev/sdz2 root/
Petit rappel ne mettez pas "/boot" mais bien boot/. J'ai du mal avec ça 🙄 .
Les partitions sont prêtes à recevoir la distribution. On lance donc le téléchargement de la distribution qu'on installe sur la partition root. Pour info, sur les versions récentes de Linux Mint/Ubuntu bsdtar s'installe avec le paquet libarchive-tools.
root@MIMINT:~# wget http://os.archlinuxarm.org/os/ArchLinuxARM-rpi-2-latest.tar.gz
root@MIMINT:~# bsdtar -xpf ArchLinuxARM-rpi-2-latest.tar.gz -C root
root@MIMINT:~# sync
J'utilise la version rpi2 pour mon 3B+, comme indiqué sur le site de Arch, ça fonctionne nikel. Si vous voulez essayer avec d'autres versions elles sont listées ici. Pour les versions 3 et 2 je vous conseille de faire comme moi. Pour la version 4 du pi je renseignerais plutôt cette url : http://os.archlinuxarm.org/os/ArchLinuxARM-rpi-4-latest.tar.gz
Enfin on déplace les fichiers boot dans la bonne partition
root@MIMINT:~# mv root/boot/* boot
La procédure d'installation officielle se termine ici. Avec une carte Sd l'installation serait terminée, il suffirait de démonter les partitions root et boot de cette manière pour commencer à utiliser son pi.
root@MIMINT:~# umount boot root
De mon côté je ne fais pas cette commande. J'enchaîne sur la configuration qui va permettre de démarrer cette installation depuis un disque usb.
Configuration du boot en USB
L'idée étant de faire fonctionner tout le système sur un disque usb, on va faire quelques modifications aux fichiers de la distribution.
Tout d'abord, on va récupérer les PARTUUID des deux partitions que nous venons de créer
root@MIMINT:~# ls -l /dev/disk/by-partuuid/
total 0
lrwxrwxrwx 1 root root 10 déc. 5 21:26 09cf210b-62af-4be8-80fa-12989c13fe56 -> ../../sda2
lrwxrwxrwx 1 root root 10 déc. 5 21:26 24028c9e-9d33-4f22-be1a-17188510499b -> ../../sda4
lrwxrwxrwx 1 root root 10 déc. 5 21:26 3d7de209-e32a-4801-b03f-0b4f34076115 -> ../../sda1
lrwxrwxrwx 1 root root 10 déc. 5 21:26 71e4eaf9-3ddf-4174-97a8-2824ed7a1475 -> ../../sda3
lrwxrwxrwx 1 root root 10 déc. 5 21:34 c3c6f0ff-01 -> ../../sdz1
lrwxrwxrwx 1 root root 10 déc. 5 21:34 c3c6f0ff-02 -> ../../sdz2
Les deux identifiants c3c6f0ff-01 et c3c6f0ff-02 correspondant aux partitions du disque sdz resteront les mêmes sur le raspberry. Nous allons donc les utiliser pour configurer le démarrage.
Une fois que c'est noté nous éditons le fichier cmdline.txt présent dans le dossier boot créé précédement et on indique le PARTUUID de la partition root comme ceci. Je ne modifie que le root=, c'est possible que le reste diffère avec le temps.
root=PARTUUID=c3c6f0ff-02 rw rootwait console=ttyAMA0,115200 console=tty1 selinux=0 plymouth.enable=0 smsc95xx.turbo_mode=N dwc_otg.lpm_enable=0 kgdboc=ttyAMA0,115200 elevator=noop
Ensuite on modifie le fichier fstab du dossier root/etc comme ceci
# Static information about the filesystems.
# See fstab(5) for details.
# <file system> <dir> <type> <options> <dump> <pass>
PARTUUID=c3c6f0ff-01 /boot vfat defaults 0 2
PARTUUID=c3c6f0ff-02 / ext4 defaults,noatime 0 1
On peut démonter les dossiers root et boot cette fois
root@MIMINT:~# umount boot root
Voilà avec ceci votre Raspberry devrait démarrer directement sur votre disque USB. J'ai plutôt galéré pour trouver comment faire pour le contenu de cette section et c'est tout bête ^^
Premier pas après installation
Le ssh est actif automatiquement au démarrage du Raspberry, l'utilisateur par défaut est alarm et le mdp alarm. Le mdp root est root.
Avant d'installer vos premiers paquets ou de faire des mises à jour, il faudra passer ces commandes en root pour que pacman fonctionne
[alarm@alarmpi ~]$ su root
[root@alarmpi alarm]# pacman-key --init
[root@alarmpi alarm]# pacman-key --populate archlinuxarm
Après avoir passé ces deux commandes vous devriez pouvoir mettre à jour votre OS avec la commande
[root@alarmpi alarm]# pacman -Syyu
Vous pourrez renommer votre pi avec
echo nouveau_nom > /etc/hostname
Par défaut il me semble que la distribution est en qwerty en mode console, ces commandes permettent de le passer en Azerty
loadkeys fr-pc
echo "KEYMAP=fr-pc" > /etc/vconsole.conf
Sudo n'est pas inclus, si vous y êtes habitués et désirez l'installer faites
pacman -S sudo
Puis éditez le fichier /etc/sudoers pour ajouter la ligne qui commence par la ligne alarm et décomenter celle qui commance par %sudo
##
## User privilege specification
##
root ALL=(ALL) ALL
alarm ALL=(ALL) ALL
## Uncomment to allow members of group wheel to execute any command
# %wheel ALL=(ALL) ALL
## Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL
## Uncomment to allow members of group sudo to execute any command
%sudo ALL=(ALL) ALL
Sinon vous trouverez tout un tas de trucs que je fais lors de l'installation d'un Raspberry sur mon wiki
Voilà vous n'avez plus qu'à faire vos trucs de geek.
Bonjour,
Est ce que ce tutoriel est toujours d’actualité ?
J’ai essayé de le suivre mais j’ai eu beaucoup de difficulté car certaines informations ne sont plus du tout à jour.
Auriez vous un autre tutoriel mise à jour ?
Bonjour Kamichetty,
J’ai fait quelque chose de similaire il y a peu de temps avec un Raspberry Pi OS, je n’ai pas l’impression que ça ait changé des masses. Tu peux me dire à quel niveau tu bloques ou ce qui te semble obsolète? Tu utilise quoi comme raspberry? J’ai constaté sur plusieurs 3B que ça ne bootait pas sur SSD, j’ai l’impression que ça ne fonctionne vraiment qu’à partir des 3b+. Dans ce cas il faut laisser la partition boot sur la carte SD et uniquement traiter la partition root.
Bonjour,
Merci pour votre retour. Finalement, j’ai réussi à effectuer l’installation, en essayant de relire le tuto lentement.
Mais là où je suis un peu perdu c’est dans l’installation de XFCE, il n’y a pas un site qui soit correcte du coup, j’ai regardé sur les divers sites et j’ai fait un mix de différents site, XFCE se lance mais très lentement. Est ce que vous auriez le procédé ou un tutoriel pour l’installation de XFCE ?
Votre procédé est bien fait et très clair.
Bonjour,
Ah tant mieux si tu as pu réussir. Je ne suis pas familier de XFCE désolé, j’utilisais le raspberry en ligne de commande uniquement. Bon courage.
Pour ceux pour qui le raspberry pi ne veut pas du tout boot à partir de l’usb c’est parce que il faut activer le bit correspondant.
Faire le step 1 de cette page suffit:
https://www.instructables.com/Booting-Raspberry-Pi-3-B-With-a-USB-Drive/
Attention :
Il faut remplacer /boot/config.txt dans la commande par /boot/firmware/config.txt !!!
Bonjour Tchoupislayer,
Si j’ai l’occasion je testerais avec /boot/firmware/config.txt. Parce que le reste de ton lien je l’ai tenté sur plusieurs pi 3 sans succès à chaque fois.