GNU/Linux >> Tutoriels Linux >  >> Linux

Montage de plusieurs fichiers img en tant que périphérique à boucle unique

Je ne pense pas que vous puissiez le faire sur place, mais si vous avez suffisamment d'espace, cela devrait fonctionner :

# Create the files that will hold your data
dd if=/dev/zero of=part-00 bs=1M count=4k
dd if=/dev/zero of=part-01 bs=1M count=4k

# Create the loop devices
losetup /dev/loop0 part-00
losetup /dev/loop1 part-01

# Create a RAID array
mdadm --create /dev/md0 --level=linear --raid-devices=2 /dev/loop0 /dev/loop1

# Copy the original filesystem
dd if=original-file-00 of=/dev/md0 bs=512
# Look at the records written value
dd if=original-file-01 of=/dev/md0 bs=512 seek=<sum of records written values so far>

# Mount the new filesystem
mount /dev/md0 /mnt

Vous ne pouvez pas simplement créer une matrice RAID à partir des fichiers d'origine car les disques RAID ont un en-tête spécifique dans lequel le nombre de disques, le niveau RAID, etc. sont stockés. Si vous le faites, cette partie de vos fichiers originaux sera écrasée.

Vous pouvez utiliser le mdadm --build pour créer un tableau sans métadonnées, mais vous devriez d'abord faire une sauvegarde. Ou si le montage en lecture seule suffit :

losetup -r /dev/loop0 original-00
losetup -r /dev/loop1 original-11
mdadm --build /dev/md0 --level=linear --raid-devices=2 /dev/loop0 /dev/loop1
mount /dev/md0 /mnt

Pourquoi veux-tu faire cela? Si votre système de fichiers ne peut pas gérer des fichiers de plus de 4 Go, vous devez simplement passer à un système sain.


Pour monter une image de disque fractionnée (ou une image de partition), vous devez utiliser affuse des afftools qui sont actuellement maintenus ici :https://github.com/sshock/AFFLIBv3

Donc, si vous avez un fichier, découpez-le en plusieurs sous-fichiers test_img.000, test_img.001, test_img.002, test_img.003, test_img.004, test_img.005, test_img.006, test_img.007, test_img.008, test_img.009

alors vous pouvez les rejoindre virtuellement avec affuse

# affuse test_img.000 /mnt/combine
# ls -lh /mnt/combine
total 0
-r--r--r-- 1 root root 2.0G 1969-12-31 16:00 test_img.000.raw

(cela combine tous les fichiers ensemble en commençant par le fichier 000, puis 001, 002, …)

Et puis montez l'image

mount -o ro,loop,offset=329043456 /mnt/combine/test_img.000.raw /mnt/test

L'utilisation est décrite ici et quelques exemples ici. Une page de manuel est également disponible après la compilation et l'installation, ou ici.

PS :Pour moi affuse ne fonctionnait que si les fichiers fractionnés avaient une taille qui était un multiple de 512 octets.


Linux
  1. Comment compresser plusieurs fichiers sous Linux

  2. Comment renommer plusieurs fichiers en une seule commande ou un script sous Unix ? ?

  3. Comment renommer plusieurs fichiers à l'aide de Find ?

  4. Utiliser un appareil via SSH ?

  5. Décomposer une image dd en plusieurs fichiers

Renommer la commande sous Linux (renommer plusieurs fichiers)

Comment créer un périphérique de bloc virtuel (périphérique de boucle/système de fichiers) sous Linux

Plusieurs bibliothèques glibc sur un seul hôte

Dispositif à boucle permanente ?

Qu'est-ce qu'un dispositif de boucle lors du montage ?

Tail plusieurs fichiers distants