Ayant récemment changé le disque SSD de mon ordinateur par un de plus grande capacité, j’en ai profité pour transférer l’ancien sur la Banana Pi afin d’augmenter les performances en terme de vitesse d’accès aux fichiers. Il est difficile de trouver LA procédure qui marche sur le net, celles que j’ai essayé, en grande majorité, ne marchant pas.
Tout d’abords le SSD en question est un Samsung 850 EVO de 120 Go donné pour environ 520 Mo/s en débit de lecture/écriture. La banana Pi, en plus de posséder un port Sata, dispose également d’une alimentation 5V dédié au disque. Par contre, il faut avoir (ou fabriquer) le câble qui va bien pour s’adapter à une prise d’alim Sata. J’ai privilégié l’achat d’un adaptateur (2,3€) bien qu’il aurait été possible d’en fabriquer un à partir de récup. Voici à quoi ressemble l’installation une fois le tout branché :

Dans un premier temps, la procédure consiste à copier tout les fichiers existant de la carte SD sur le SSD puis à modifier la partition de boot pour pointer le démarrage sur le SSD. A noter qu’il n’est pas possible de se dispenser de carte SD, elle reste nécessaire pour le boot de la banana pi. Privilégier donc une carte SD de faible capacité.
1. Préparation du disque
S’assurer que le disque est bien détecté :
fdisk -l
On obtient alors :
Disk /dev/sda: 111.8 GiB, 120034123776 bytes, 234441648 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: 0xf0584047Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 234441647 234439600 111.8G 83 LinuxDisk /dev/mmcblk0: 14.9 GiB, 15931539456 bytes, 31116288 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: 0x0ccea0b3Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p1 2048 43007 40960 20M 83 Linux
/dev/mmcblk0p2 43008 31116287 31073280 14.8G 83 Linux
Le SSD est détecté en tant que /dev/sda tandis que la SD est déclaré comme /dev/mmcblk0 avec deux partitions. La première est la partition de boot qu’il faudra modifié tandis que la deuxième contient toutes les données.
Lancer l’utilitaire de gestion des partition pour le SSD:
fdisk /dev/sda
Effacer les partitions existantes en tapant « d ». J’ai du l’effectuer au début comme j’avais Windows installé dessus. Créer une nouvelle partition primaire en tapant « n » puis « p ». Laisser par défaut la taille maximale. Sauvegarder les modifications en tapant « w ».
Maintenant formater la partition du SSD sous le format .ext4 :
mkfs.ext4 /dev/sda1
2. Transfert des données
Maintenant que le disque est formaté, on va copier les données de la partition 2 de la carte SD sur le SSD. Pour cela :
mkdir /tmp/source /tmp/target
mount /dev/mmcblk0p2 /tmp/source
mount /dev/sda1 /tmp/target
(cd /tmp/source; tar --backup -c *) |tar -C /tmp/target -xv
Cela devrait prendre un certain temps suivant la quantité de données à transférer…
3. Modifier la partition de boot
Ce qui suit va dépendre de la version de votre OS installé sur la banana Pi. Pour cela taper :
cat /proc/version
Pour ceux ayant la version Linux version 3.4.111-bananian, on va modifier le boot.cmd dans la partition 1 de la carte SD. Pour les autres, voir le lien en référence en bas de page.
mount /dev/mmcblk0p1 /mnt
cd /mnt
nano boot.cmd
Changer TOUS les (il y en a 2) :
root=/dev/mmcblk0p2
par
root=/dev/sda1
Maintenant installer u-boot-tools :
apt-get install u-boot-tools
Convertir boot.cmd en boot.scr
mkimage -C none -A arm -T script -d boot.cmd boot.scr
En sortie :
Image Name:
Created: Sun Dec 3 09:22:58 2017
Image Type: ARM Linux Script (uncompressed)
Data Size: 1602 Bytes = 1.56 kB = 0.00 MB
Load Address: 00000000
Entry Point: 00000000
Contents:
Image 0: 1594 Bytes = 1.56 kB = 0.00 MB
Rebooter la banana Pi :
shutdown -r now
On peut vérifier avec df-h que sda1 est bien la partition principale (11G Go au lieu des 15Go de la SD):
Filesystem Size Used Avail Use% Mounted on
/dev/root 111G 14G 92G 13% /
devtmpfs 486M 0 486M 0% /dev
tmpfs 98M 220K 97M 1% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 195M 0 195M 0% /run/shm
On peut en profiter pour vérifier le débit :
apt-get install hdparm
hdparm -t --direct /dev/sda
Ce qui nous donne :
/dev/sda:
Timing O_DIRECT disk reads: 506 MB in 3.00 seconds = 168.63 MB/sec
Rien à voir avec les 10MB/sec qu’on avait avant !!
Source : http://forum.lemaker.org/thread-12057-1-1.html
Une réponse sur « Booter avec un SSD Sata sur une banana pi »
Article intéressant effectivement si le disque sda est detecté
Je dispose d’un Bananapi M3,
hdparm detect /dev/sda, mais pas fdisk -l
NAME= »Ubuntu »
VERSION= »19.10 (Eoan Ermine) »
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME= »Ubuntu 19.10″
VERSION_ID= »19.10″
HOME_URL= »https://www.ubuntu.com/ »
SUPPORT_URL= »https://help.ubuntu.com/ »
BUG_REPORT_URL= »https://bugs.launchpad.net/ubuntu/ »
PRIVACY_POLICY_URL= »https://www.ubuntu.com/legal/terms-and-policies/privacy-policy »
VERSION_CODENAME=eoan
UBUNTU_CODENAME=eoan