GNU/Linux >> Tutoriels Linux >  >> Linux

créer un img vide avec dd pour que ses secteurs soient de 4096 octets au lieu de 512

Il n'est pas possible de le faire comme vous le décrivez. La taille du secteur est une propriété de périphérique de bloc que les fichiers n'ont pas de manière inhérente. Un fichier n'est qu'une séquence d'un certain nombre d'octets, la façon dont ceux-ci sont stockés est un détail d'implémentation...

Donc, si vous voulez une taille de secteur spécifique, vous avez besoin d'un périphérique de bloc. Et Linux propose des périphériques de boucle uniquement à cette fin, utilisez donc losetup pour créer un périphérique de bloc virtuel sauvegardé sur fichier avec une certaine taille de secteur.

Fichier test :

# dd if=/dev/zero of=empty4k.img bs=4096 count=8192

Dispositif à boucle régulière :

# losetup --find --show empty4k.img 
/dev/loop0
# fdisk -l /dev/loop0
Disk /dev/loop0: 32 MiB, 33554432 bytes, 65536 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

Périphérique de boucle de secteurs de 4096 octets :

# losetup --find --show --sector-size=4096 empty4k.img 
/dev/loop1
# fdisk -l /dev/loop1
Disk /dev/loop1: 32 MiB, 33554432 bytes, 8192 sectors
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

Dans les deux cas, le fichier est complètement identique, la propriété de taille de secteur est fournie par la couche de périphérique de boucle de bloc.


Le bs donné à dd indique simplement la taille du tampon lors de la création du fichier. Au final, le fichier ne contient rien d'autre que zéro octet, il n'y a aucune information sur l'alignement.

Vous devez utiliser le paramètre spécifique à fdisk , qui est -b , selon le man -page de fdisk(8) :

  -b, --sector-size sectorsize
          Specify  the  sector  size  of  the  disk.   Valid values are 512,    1024, 2048, and 4096.  (Recent kernels know the sector size.  Use this option only on old kernels or to override the kernel's
          ideas.)  Since util-linux-2.17, fdisk differentiates between logical and physical sector size.  This option changes both sector sizes to sectorsize.

Linux
  1. Trouver la taille du secteur d'une partition ?

  2. Comment rechercher tous les fichiers avec une taille de fichier de zéro (0) octet dans un répertoire de manière récursive

  3. Comment créer un fichier zip de taille minimale (vide), qui a 22B ?

  4. du qui compte le nombre de fichiers/répertoires plutôt que leur taille

  5. Conteneur avec compression intégrée, qui ajuste automatiquement sa taille

Comment répertorier, créer et supprimer des partitions sur des disques MBR et GPT – RHCSA Objective Preparation

Comment puis-je créer un fichier avec une taille spécifique à partir d'une ligne de commande ?

Ubuntu - monter le fichier image avec l'autorisation r/w

créer des fichiers vides avec la même structure de répertoires que le répertoire de référence

Impossible d'exécuter des requêtes DNS lorsque la réponse est supérieure à 512 octets et tronquée

Pourquoi mon nom d'hôte apparaît-il avec l'adresse 127.0.1.1 plutôt que 127.0.0.1 dans /etc/hosts ?