J'ai besoin de créer un système de fichiers avec une seule partition à partir de rien ( /dev/zero
). J'ai essayé cette séquence de commandes:
dd if=/dev/zero of=mountedImage.img bs=512 count=131072
fdisk mountedImage.img
n
p
2048
131072
Fondamentalement, je dois créer un fichier image de 64 Mo rempli de zéros. Ensuite, j'utilise fdisk
pour ajouter une nouvelle partition pour le nouveau système de fichiers (qui devrait finalement être FAT32), en commençant par le secteur 2048
et en utilisant tous les secteurs restants.
losetup /dev/loop1 mountedImage.img
mkfs -t vfat /dev/loop1
Mais ici, je rencontre des problèmes. Si je configure un loop
périphérique et le formate en utilisant mkfs -t vfat
, la table de partition est écrasée et le système de fichiers (FAT32) est placé sur le disque. Je n'ai pas besoin d'un disque entier formaté en FAT32, j'ai juste besoin que ma partition principale le soit.
Est-ce que quelqu'un sait comment formater une seule partition de l'image disque brute, pas l'image entière?
la source
mkfs
appel en entier . J'ai dû lire votre message 3 fois pour comprendre votre problème. Bien que je ne puisse pas vous aider, je suis intéressé par la raison pour laquelle vous créez un fichier image (!) Mais vous voulez toujours laisser les n premiers "secteurs" inutilisés.loop
un module ou intégré au noyau), donc je pense qu'il est utile que chaque site ait sa version de la question et j'ai voté pour la réouverture.Réponses:
Si sous Linux, lors du chargement du
loop
module, assurez-vous de passer unemax_part
option au module afin que les périphériques de boucle soient partitionnables.Vérifiez la valeur actuelle:
Si c'est 0:
Pour rendre ce paramètre persistant, ajoutez la ligne suivante à
/etc/modprobe.conf
ou dans un fichier/etc/modprobe.d
si ce répertoire existe sur votre système:Si
modprobe -r loop
échoue parce que «la boucle de module est intégrée», vous devrez ajouterloop.max_part=31
à votre ligne de commande du noyau et redémarrer. Si votre chargeur de démarrage est Grub2, ajoutez-le à la valeur deGRUB_CMDLINE_LINUX
inetc/default/grub
.Maintenant, vous pouvez créer un périphérique de boucle partitionnable:
(notez que vous avez besoin d'une version relativement récente de Linux).
la source
loop.max_part=31
à la ligne de commande du noyauloop.maxpart=31
ouloop.max_part=31
sur la ligne de commande du noyau?losetup /dev/loop0 file -o 1048576 --sizelimit limit
Le décalage spécifié doit être en octets (1048576 = 2048 secteurs * 512 octets par secteur).
mount -o loop,offset=1048576,sizelimit=limit
Pour plus d'informations, voir losetup et mount .
la source
Les procédures suivantes vous permettent de monter les partitions de l'image pour les modifier.
option losetup 2.21 -P
Crée un
/dev/loopXpY
par partition.Avantage: exécutable pré-installé dans de nombreuses distributions (paquet util-linux).
Inconvénient: option assez récente, non présente dans Ubuntu 14.04.
losetup -P
automatisationUsage:
La source:
kpartx
Production:
où
loop0p1
est la première partition, nous pouvons donc faire:Avantage de cette méthode: fonctionne sur Ubuntu 14.04 sans redémarrage.
la source