L'utilisation d'un disque dur permet :
Les partitions sont repérées comme au paragraphe Première étape : partitionnement.
Seule la partition de démarrage de Raspbian et celle de BerryBoot doivent impérativement résider sur la carte SD.
Cela économise la carte SD qui ne comporte plus que le boot et peut être mise en mode lecture seule.
Partitionnez le disque pour obtenir une partition ext4 assez grande pour contenir la partition racine actuelle.
Le plan de partitionnement proposé ici comporte :
Branchez le disque USB sur un PC.
Ouvrez gparted.
Partitionnez le disque pour obtenir une partition ext4 assez grande pour contenir la partition racine actuelle.
Voici un exemple de préparation d'un disque externe avec gparted :
Ici, le disque USB est en /dev/sdh avec ses partitions :
Nous allons déplacer sur un disque dur USB la partition racine de l'installation Raspbian existante pour améliorer les performances et préserver la carte SD.
Seul boot doit résider sur la carte SD.
Branchez le disque usb sur le Raspberry Pi.
Repérez les partitions :
pi@framboise:~ $ sudo blkid /dev/mmcblk0p1: LABEL="RECOVERY" UUID="4410-7BB7" TYPE="vfat" PARTUUID="d25b6342-01" /dev/mmcblk0p3: LABEL="SETTINGS" UUID="b089fc95-75de-464f-8700-dc9cf62be0b9" TYPE="ext4" PARTUUID="d25b6342-05" /dev/mmcblk0p5: LABEL="BOOT" UUID="5172-B45E" TYPE="vfat" PARTUUID="d25b6342-06" /dev/mmcblk0p6: LABEL="root" UUID="4051e5cf-3f44-4459-890f-de6d77c01f15" TYPE="ext4" PARTUUID="c0965f47-06" /dev/sda1: UUID="8528...|" TYPE="ext4" PARTUUID="c0965f47-01" /dev/sda2: LABEL="Rpi-data" UUID="422f3716-add7-48ed-a427-32e60109cc2e" TYPE="ext4" PARTUUID="c0965f47-07" /dev/sda3: LABEL="Reservoirs" UUID="fd152153-c344-4f58-b9cd-5dee43091f5d" TYPE="ntfs" PARTUUID="c0965f47-05"
On voit :
Pour transférer le système, commençons par vérifier les montages par :
pi@framboise:~ $ sudo df -h Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur rootfs 36G 12G 23G 33% / /dev/mmcblk0p6 36G 12G 23G 33% / devtmpfs 458M 0 458M 0% /dev tmpfs 462M 13M 450M 3% /run tmpfs 5,0M 4,0K 5,0M 1% /run/lock tmpfs 462M 0 462M 0% /run/shm /dev/mmcblk0p5 66M 22M 45M 32% /boot /dev/mmcblk0p3 30M 444K 28M 2% /media/SETTINGS /dev/sda1 30M 434K 28M 2% /media/8528... /dev/sda2 99G 2,2G 92G 3% /media/Rpi-data /dev/sda3 94G 21G 69G 23% /media/Reservoirs
La partition /dev/mmblk0p6 est la racine (/dev/root = rootfs), montée en /
On retrouve :
partition | montée en |
---|---|
/dev/mmblk0p5 | /boot |
/dev/mmblk0p6 | / |
/dev/sda1 | /media/XXXX… |
La partition /dev/mmblk0p6 est la racine (/dev/root = rootfs), montée en /
Affichez le fichier /boot/cmdline.txt :
pi@framboise:~ $ cat /boot/cmdline.txt dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p6 rootfstype=ext4 elevator=deadline rootwait
L'élément à repérer est root=/dev/mmblk0p6 : pour l'instant, la racine utilisée est /dev/mmblk0p6, sur la carte SD. Nous allons la remplacer par /dev/sda1
Commençons par copier cette partition sur celle du disque :
Démontez la partition du disque et faites la copie :
pi@framboise:~ $ sudo umount /dev/sda1 pi@framboise:~ $ pv /dev/mmblk0p6 | sudo dd of=/dev/sda1 bs=4M
Maintenant, il faut rediriger le boot vers le disque.
Éditez avec les droits d'administration le fichier dev/mmblk0p5/cmdline.txt pour remplacer root=/dev/mmblk0p6 par root=/dev/sda1
Cas particulier : écriture directe de Raspbian sur la carte SD sans BerryBoot
Dans /dev/mmcblk0p1, modifier les paramètres de cmdline.txt pour signifier au noyau que le Root File System se trouve sur /dev/sda2.
Éditez avec les droits d'administration le fichier /boot/cmdline.txt pour remplacer root=/dev/mmcblk0p2 par root=/dev/sda2
Éditez avec les droits d'administration le fichier /dev/sda2/etc/fstab pour :
Il s’agit ici du fichier fstab qui se trouve dans la partition /dev/sda2, pas de celui qui est sur la carte SD (/dev/mmcblkop2)
/dev/mmcblk0p5 /boot vfat defaults 0 2 #/dev/mmcblk0p6 / ext4 defaults,noatime 0 1 /dev/sda1 / ext4 defaults,noatime 0 1
Redémarrez le Raspberry PI :
pi@framboise:~ $ sudo reboot
Si tout se passe bien il démarre comme d’habitude, mais depuis le disque.
Notez que vous ne perdrez pas de données ; si les choses tournent mal, il suffit de modifier à nouveau le fichier /boot/cmdline.txt sur un ordinateur pour démarrer de nouveau à partir de la carte SD.
Le rootfs (partition /dev/sda1) ne fait que 1.8Go, car c'est la copie de la carte SD…
L'étendre avec resize2fs pour qu'il occupe tout l’espace disponible :
pi@framboise:~ $ sudo resize2fs /dev/sda1
Résultat : le rootfs (partition /dev/sda2) a été agrandi.
Basé sur « Pitié pour la carte SD de votre framboise314 : Bootez sur un disque dur USB » par François Mocq.