Le contexte
Après avoir récupéré l'image de la Ubuntu Mate sur https://ubuntu-mate.org/download/ pour l'installer sur mon Rpi2, j'ai donc voulu l'installer sur ma carte micro-sd comme indiqué sur le site de la Mate :
Code : Tout sélectionner
apt-get install gddrescue xz-utils
unxz ubuntu-mate-16.04-desktop-armhf-raspberry-pi.img.xz
ddrescue -D --force ubuntu-mate-16.04-desktop-armhf-raspberry-pi.img /dev/sdx
Code : Tout sélectionner
# ddrescue -D --force ubuntu-mate-16.04-desktop-armhf-raspberry-pi.img /dev/sdc
GNU ddrescue 1.19
Press Ctrl-C to interrupt
rescued: 7892 MB, errsize: 0 B, current rate: 655 kB/s
ipos: 7892 MB, errors: 0, average rate: 5293 kB/s
opos: 7892 MB, run time: 24.85 m, successful read: 0 s ago
Copying non-tried blocks... Pass 1 (forwards)
ddrescue: Write error: No space left on device
Code : Tout sélectionner
fsck.ext4 /dev/sdc2
e2fsck 1.42.13 (17-May-2015)
La taille du système de fichiers (selon le superbloc) est de 1949440 blocs
La taille physique du périphérique est de 1910272 blocs
Le superbloc ou la table des partitions est peut-être corrompue !
Arrêter<o>? oui
Et là le réflexe windowsien primaire voudrait qu'on se jette sur le net pour aller fissa acheter une nouvelle carte plus grande ! Pas de chance pour les commerciaux : notre GNU/Linux a tout ce qu'il faut pour pallier le problème !
On commence par utiliser gparted pour retailler la partition /dev/sdc2 et laisser environ 300Mo d'espace vide côté droit sur /dev/sdc2 :
Code : Tout sélectionner
losetup /dev/loop0 ubuntu-mate-16.04-desktop-armhf-raspberry-pi.img
partprobe /dev/loop0
gparted /dev/loop0
Code : Tout sélectionner
# losetup -d /dev/loop0
# fdisk -lu ubuntu-mate-16.04-desktop-armhf-raspberry-pi.img
Disque ubuntu-mate-16.04-desktop-armhf-raspberry-pi.img : 7,5 GiB, 8053063680 octets, 15728640 secteurs
Unités : sectors of 1 * 512 = 512 octets
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x343d2bfe
Périphérique Amorçage Start Fin Secteurs Size Id Type
ubuntu-mate-16.04-desktop-armhf-raspberry-pi.img1 * 2048 133119 131072 64M c W95 FAT32 (LBA)
ubuntu-mate-16.04-desktop-armhf-raspberry-pi.img2 133120 15042559 14909440 7,1G 83 Linux
Code : Tout sélectionner
truncate --size=$[(14909440+1)*512] ubuntu-mate-16.04-desktop-armhf-raspberry-pi.img
Code : Tout sélectionner
Finished
Il est clair qu'un petit script qui lirait la taille réellement disponible sur la carte SD, calculerait la taille maxi de la partition /dev/sdc2, et appliquerait les opération en conséquence, serait un plus non négligeable pour les débutants...