C'est curieux parce que j'avais déjà pensé à un système identique d'Aérotrain hybride pour voies SNCF.Le I80 était équipé de 4 roues rétractables et d'un volant permettant de le conduire comme un bus (c'est ce qui s'en rapproche le plus de part sa forme) pour les transferts entre le rail et le hanga[...]
Mes rélexions au sujet de l'aérotrain :Bertin a utilisé les techniques de l'époque en créant un mode de transport séparé de ceux existants.Personnellement je verrais un train combinant deux techniques :1- Sur coussin d'air2- Sur railTechnique 1 sur coussin d'air-----------------------------Rail cime[...]
Le déploiement du pare soleil s'est terminé avec succès le mardi 4 janvier 2021 à 18h01.
La vidéo de la séparation d'Ariane 5 et du déploiement du panneau solaire.Le télescope fonctionne uniquement sur batterie jusqu'au déploiement du panneau solaire. ▶
Il est arrivé sur son pas de tir. Photos à voir sur le flickr de l'ESA.
Merci pour le commentaire
Je suis sur Chrome et ça marche niquel !Gros merci !
Hola buenas noche mi numero es 646933333 luis ablame estoi interesado para comprarte el atracion jamaica de feria gracias
Si l'aérotrain renaissait de nos jours aurait il un moteur linéaire ? Félicitations pour le sujet de l'aérotrain sur turbo Kermis. Vivement un article sur l'aérotrain et l'explication des moteurs linéaires sur ce blog 👍🏼
Pourrais tu faire un article sur le moteur électrique linéaire ? Merci à toi
Quand tu crée une image de la carte SD d'un Raspberry avec un logiciel comme Win32DiskImager, ça réalise une copie bit à bit de la carte SD ce qui fait que ton fichier image sera de la même taille que ta carte SD et ce quelque soit l'espace occupé. Si tu as 20 Go d'utilisés sur une carte de 128 Go ton fichier image fera 128 Go et sera essentiellement composé d'espace vide!
Bien sûr tu peux compresser le fichier en ZIP, tu vas gagner de la place mais c'est long, peu pratique et il te faudra de la place pour faire ça.
La méthode que je vais t'expliquer consiste à réduire la taille de la partition à l'intérieur du fichier image et ce sans avoir besoin d'espace disque supplémentaire. Ceci permet aussi de copier une carte sur une autre de plus petite taille, bien entendu la carte devra être plus grande que ce qu'occupent les fichiers. Par exemple tu pourras copier le dump d'une carte de 128 Go où il n'y a réellement que 20 Go d'occupés sur une carte de 32 Go.
Ceci te sera également utile pour cloner une carte SD sur une autre car bien que tu aie 2 cartes SD de même capacité, du même constructeur et du même modèle, leur capacité peut être différente de quelques octets. Si ta carte a des octets en plus par rapport à ton fichier image ça ne posera pas de problème, en revanche si ce sont des octets en moins tu risques d'avoir des problèmes.
Ton image de carte SD comporte 2 partitions, une au format FAT32 de petite taille servant au boot et que l'on ne va pas toucher, et une autre au format EXT4 que l'on va redimensionner.
Attention!
On modifie directement le fichier image, si tu as peur de faire une fausse manip fais une copie du fichier image.
On va monter le fichier image comme un disque virtuel.
Vérifie qu'un périphérique /dev/loopX est libre où X est un numéro, par exemple /dev/loop0.
losetup
Soit la commande ne renvoie rien, ce qui signifie qu'aucun périphérique n'est utilisé, soit elle renvoie la liste des périphériques utilisés. Dans ce cas prends un numéro non utilisé.
On monte l'image comme un disque virtuel.
Dans l'exemple on monte le fichier imageCarteSD.img sur le périphérique /dev/loop0.
losetup /dev/loop0 imageCarteSD.img
On dit au système de recharger la table des partitions du périphérique /dev/loop0
partprobe /dev/loop0
Liste les partitions du disque virtuel /dev/loop0
lsblk /dev/loop0
Tu obtiens un résultat de ce genre.
Les partitions ont pour nom le périphérique, loop0 dans cet exemple suivi de la lette p pour partition suivi du numéro de la partition, 1 ou 2 dans cet exemple. La partition qui nous intéresse est la plus grosse, loop0p2.
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 59,5G 0 loop
├─loop0p1 259:0 0 256M 0 part
└─loop0p2 259:1 0 59,2G 0 part
Vérifier la partition N°2, /dev/loop0p2 qui est celle que l'on va redimensionner
e2fsck -f /dev/loop0p2
Exemple de résultat
e2fsck 1.46.2 (28-Feb-2021)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
rootfs: 309168/3837504 files (0.4% non-contiguous), 5842781/15525376 blocks
On passe à l'étape du redimensionnent du système de fichiers, l'option -M indique de minimiser le filesystem le plus possible (uniquement l'espace occupé)
resize2fs -p /dev/loop0p2 -M
Maintenant, tu n'a plus qu'à patienter c'est l'étape la plus longue, la durée de cette étape dépend de la taille du fichier image et des performances de ton matériel. Des X s'affichent pour montrer la progression
resize2fs 1.46.2 (28-Feb-2021)
Resizing the filesystem on /dev/loop0p2 to 6032828 (4k) blocks.
Begin pass 2 (max = 4001911)
Relocating blocks XXXXXXXX--------------------------------
Voilà le résultat obtenu quand la commande s'est terminée
resize2fs 1.46.2 (28-Feb-2021)
Resizing the filesystem on /dev/loop0p2 to 6032828 (4k) blocks.
Begin pass 2 (max = 4001911)
Relocating blocks XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Begin pass 3 (max = 474)
Scanning inode table XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Begin pass 4 (max = 41009)
Updating inode references XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
The filesystem on /dev/loop0p2 is now 6032828 (4k) blocks long.
On récupère le nombre de blocs occupés par le filesystem et leur taille. La commande retournant pas mal d'infos, le grep permet de filtrer la sortie avec seulement ce qui nous intéresse.
dumpe2fs -h /dev/loop0p2 | grep "Block count\|Block size"
Résultat
dumpe2fs 1.46.2 (28-Feb-2021)
Block count: 6032828
Block size: 4096
On regarde la taille des blocs de notre fichier image
fdisk -l imageCarteSD.img | grep Units
Résultat
Units: sectors of 1 * 512 = 512 bytes
Les blocs de notre fichier image font 512 octets.
Il faut calculer où se termine la partition en nombre de blocs de 512 octets grâce à ce calcul:
(Block count × Block size) / Units + 1 = fin de la partition
Par sécurité on ajoute 1 bloc d'où le “+ 1” dans le calcul.
Dans notre exemple
(6032828 × 4096) / 512 + 1 = 48262625
Astuce pour faire directement le calcul dans la ligne de commande
echo $(((6032828 * 4096) / 512 + 1))
On redimensionne la partition avec fdisk
fdisk /dev/loop0
Tu arrives dans le shell interactif de fdisk. Rien n'est modifié tant que tu n'a pas écris les modifications avec w.
Affiche la table des partitions avec l'option p, et retiens la valeur du “Start” (532480) de la partition N°2 /dev/loop0p2
Command (m for help): p
Disk /dev/loop0: 59,48 GiB, 63864569856 bytes, 124735488 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: 0xfccf3316
Device Boot Start End Sectors Size Id Type
/dev/loop0p1 8192 532479 524288 256M c W95 FAT32 (LBA)
/dev/loop0p2 532480 124735487 124203008 59,2G 83 Linux
Command (m for help):
Supprime la partition N°2 avec d et 2. L'opération peut faire peur mais on ne supprime pas les données, seulement la partition.
Command (m for help): d
Partition number (1,2, default 2): 2
Partition 2 has been deleted.
Command (m for help):
Crée une nouvelle partition avec les commandes n, p, 2.
First sector: valeur “Start” de la seconde partition relevée précédemment ⇒ 532480.
Last sector: valeur calculée de la fin de la partition avec un “+” devant ⇒ +48262625
À la question “Do you want to remove the signature?” réponds non, choix n
Command (m for help): n
Partition type
p primary (1 primary, 0 extended, 3 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (2-4, default 2): 2
First sector (2048-124735487, default 2048): 532480
Last sector, +/-sectors or +/-size{K,M,G,T,P} (532480-124735487, default 124735487): +48262625
Created a new partition 2 of type 'Linux' and of size 23 GiB.
Partition #2 contains a ext4 signature.
Do you want to remove the signature? [Y]es/[N]o: n
Command (m for help):
Affiche le nouveau partitionnement avec p
Command (m for help): p
Disk /dev/loop0: 59,48 GiB, 63864569856 bytes, 124735488 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: 0xfccf3316
Device Boot Start End Sectors Size Id Type
/dev/loop0p1 8192 532479 524288 256M c W95 FAT32 (LBA)
/dev/loop0p2 532480 48795105 48262626 23G 83 Linux
Command (m for help):
Tu remarqueras que la seconde partition /dev/loop0p2 a réduite en taille.
Gardes en mémoire la valeur de “End ” (48795105) de la dernière partition, /dev/loop0p2 tu en auras besoin pour la suite.
Enregistre les modifications avec w.
Ignore le message d'erreur “Re-reading the partition table failed.: Argument invalide”
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Re-reading the partition table failed.: Argument invalide
The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or partx(8).
Détache le disque virtuel
losetup -d /dev/loop0
Redimensionne le fichier image.
Il faut calculer la nouvelle taille du fichier pour dire où le tronquer
(fin dernière partition + 1) × taille bloc = taille du fichier
On ajoute 1 bloc par sécurité d'où le “+ 1” dans le calcul
Pour rappel la taille des blocs de notre fichier image c'est 512 octets, donnés par la commande fdisk -l
(48795105 + 1) × 512 = 24983094272
Pour faire le calcul dans la ligne de commande
echo $(((48795105 + 1) * 512))
Tronque le fichier à la taille calculée précédemment
truncate -s 24983094272 imageCarteSD.img
C'est terminé!
Tu peux constater avec la commande ls que ton fichier a diminué de taille.
Pour vérifier tu peux monter l'image comme décrit dans ce post.