web-dev-qa-db-fra.com

Est-ce que ça va à MKFS sans numéro de partition?

J'ai une clé USB et une partition:

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 931.5G  0 disk 
└─sda1   8:1    0 931.5G  0 part /
sdb      8:16   1   7.5G  0 disk 
└─sdb1   8:17   1   7.5G  0 part

et j'ai formaté avec la commande:

   # mkfs.fat -n A /dev/sdb

et ça marche bien.

Mais après, j'ai écrémé la page de l'homme pour MKFS:

   mkfs is used to build a Linux filesystem on a device,  usually  a  hard
   disk  partition.   The  device argument is either the device name (e.g.
   /dev/hda1, /dev/sdb2),  or  a  regular  file  that  shall  contain  the
   filesystem.   The  size argument is the number of blocks to be used for
   the filesystem.

Il dit mkfs devrait fonctionner avec un numéro de partition. Et mon problème est pourquoi mon fonctionnement fonctionne sans invite d'erreur?

10
Alaneuler

La création d'un système de fichiers sur un disque entier plutôt qu'une partition est possible, mais inhabituelle. La documentation ne mentionne que explicitement la partition car c'est l'affaire la plus habituelle (elle dit habituellement ). Vous pouvez créer un système de fichiers sur tout ce qui agit suffisamment comme un fichier de taille fixe, c'est-à-dire quelque chose où si vous écrivez des données à un endroit donné et relevez du même emplacement, vous récupérez les mêmes données. Cela inclut des disques entiers, des partitions de disque et d'autres types de caractères Périphériques de bloc , ainsi que des fichiers réguliers (images de disque).

Après avoir fait mkfs.fat -n A /dev/sdb, vous n'avez plus de partition sur ce disque. Méfiez-vous que le noyau pense toujours que le disque a une partition, car elle maintient la table de partition mis en cache en mémoire. Mais vous ne devriez pas essayer d'utiliser /dev/sdb1 plus, car cela n'existe plus; écrit à cela corrompre le système de fichiers que vous avez créé sur /dev/sdb puisque /dev/sdb1 fait partie de /dev/sdb (tout sauf quelques centaines d'octets au début). Exécutez la commande partprobe comme la racine de dire au noyau de relire la table de partition.

Tout en créant un système de fichiers sur un disque entier est possible, je ne le recommande pas. Certains systèmes d'exploitation peuvent avoir des problèmes avec ceux-ci (je pense que Windows va faire face, mais certains appareils tels que des caméras pourraient ne pas), et vous perdez la possibilité de créer d'autres partitions. Voir aussi le mérite d'un système de fichiers sans partition

Il convient généralement de mettre un système de fichiers sur un périphérique entier, plutôt que de partitionnement et de formatage des partitions, si vous n'avez pas l'intention d'avoir plus d'un système de fichiers sur votre appareil. Vous devrez simplement être cohérent; depuis votre mise au point du système de fichiers sur sda plutôt que sda1, vous devrez montez sda aussi, puisque sda1 n'existera pas du tout.

Le périphérique de votre question semble être un lecteur amovible formaté de graisse: s'il doit être utilisé avec des dispositifs incorporés pouvant avoir une notion plus ou moins détaillée de la manière dont les systèmes de fichiers peuvent être montés, il peut être utile de tester qu'ils font dans Fait supporter un système de fichiers de périphérique entier sans une table de partition. (Par exemple, les caméras ont tendance à créer une seule partition et au format qui; il est tout à fait possible qu'ils déclarent une carte mémoire sans partition inutilisable.)

8
dhag