Étape 2: Ajout d’espace.
La partition racine de la x86 officielle OpenWrt image n’est pas très grand, sur 50 MiB. Beaucoup trouvent trop petit après l’installation de quelques modules complémentaires. Ici, je vais aborder les étapes pour le développer. L’image résultante peut être utilisé dans un live USB (voir facile Live USB pour x86 OpenWRT) ou copié sur un disque dur.
Aperçu de la procédure
- Téléchargez une image de disque non compressé.
- Image de garniture à la taille désirée
- Joindre le fichier d’image à un dispositif de boucle
- Modifier la table de partition image pour agrandir la partition racine
- Redimensionner le système de fichiers dans la partition racine
- Se détacher de l’image de l’appareil de la boucle.
Ci-dessous toutes les commandes sont exécutées en Bash.
Décompresser le fichier Image
Utiliser quelle que soit la méthode que vous souhaitez télécharger un fichier d’image d’OpenWrt (http://downloads.openwrt.org) et décompressez-le en utilisant gzip. Par exemple, ces deux commandes téléchargement et décompresser l’image de disque 10.03.1-rc6.
Alternative, vous pouvez simplement copier un fichier image depuis une clé USB live. Cela vous permettra d’économiser la peine de restaurer des configurations personnalisées.
Image disque Pad
L’étape suivante consiste à utiliser le « dd » pour augmenter la taille de l’image disque.
Cette commande ajoute 50 MiB de zéros à la fin de l’image disque: « si = / dev/zero "dit dd pour copier des données depuis/dev/zero ; "bs = 1M » définit la taille du bloc à 1 MiB (1024 * 1024 octets) ; "count = 50" raconte le dd copier 50 blocs.
Fixer au périphérique Loop
Remarque : Toutes les commandes de ce point vers la fin ont besoin d’être exécuté par un utilisateur avec les privilèges de root.
Ces commandes trouvent une boucle inutilisée et fixez-le au fichier image.
La première commande utilise « losetup -f » pour trouver un volume inutilisé et stocke le résultat dans le loop_dev variable de shell. La commande « echo » indique le périphérique trouvé. Enfin « losetup » s’adapte sur l’appareil l’image disque.
Modifier la Table de Partition
Pour agrandir une partition de disque, il doit être supprimé tout d’abord. Une grande nouvelle partition est ensuite créée pour prendre sa place. Cette nouvelle partition doit démarrer à partir du même secteur que l’ancien pour éviter toute perte de données.
fdisk est utilisé pour manipuler la table de partition de disque.
L’option -u demande fdisk aux partitions de liste dans les secteurs. L’option-c indique fdisk pour fonctionner en mode de compatibilité MS-DOS. $loop_dev est le périphérique de boucle relié au fichier image.
Pour visualiser les partitions existantes, de type « p » à l’invite de commandes fdisk.
fdisk montre /dev/loop3 a 209839 secteurs. Il répertorie également les deux partitions. Le premier, / dev/loop3p1, est une partition de démarrage petit. Le second, / dev/loop3p2, est la partition racine. La partition racine commence à partir de secteur 9135. Prenez note de ce numéro.
Maintenant supprimer la partition racine et créer un nouveau qui couvre tout l’espace disponible.
Redimensionner le système de fichiers racine
Les commandes suivantes développera le système de fichiers racine à la taille de la partition racine.
La commande « kpartx - a » crée des nœuds de périphériques pour les partitions dans l’image disque. La sortie de « kpartx-a » ("mknod pour loop3p1 failed") semble être un bug dans mon système. Autant que je sache, la création et la suppression des loop3p1 se produisent normalement.
Une autre chose à noter : kpartx et fdisk utilisent diverses conventions de nommage. kpartx utilise « / dev/mapper/nom_périphérique », par exemple "/ dev/mapper/loop3p1″. fdisk utilise "/ dev/nom_périphérique", comme "/ dev/loop3p1″. C’est parce que kpartx fonctionne avec le mappeur de périphériques.
Maintenant, exécutez « fsck » pour vérifier le système de fichiers avant redimensionnement. En effet, certains systèmes de fichiers ne peuvent pas être redimensionnés jusqu'à ce qu’ils soient vérifiés.
Le "-f" option force une course même quand le système de fichiers semble propre.
Enfin, redimensionnez le système de fichiers racine.
Après le redimensionnement, « kpartx -d » annule les modifications apportées par « kpartx - a ».
Détacher du périphérique Loop
L’étape finale consiste à détacher le fichier image de l’appareil de la boucle.