¿Está bien mkfs sin número de partición?

10

Tengo un pen drive y una partición:

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

y he formateado con comando:

   # mkfs.fat -n A /dev/sdb

y funciona bien

Pero después de eso, hojeé la página de manual de 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.

Dice que mkfsdebería funcionar con el número de partición. ¿Y mi problema es por qué mi operación funciona sin mensaje de error?

Alaneuler
fuente
1
no hay problema al usar todo el dispositivo en lugar de una sola partición. esto tendría más sentido si desea 3.5 G de grasa y 4G ext3 / luckfs / lo que sea, entonces tendría que dividir y formatear cada parte.
Archemar
1
Si lo coloca en un dispositivo que espera que exista una tabla de particiones, podría pedirle que formatee ... por lo general, es mejor tener una tabla de particiones incluso si no es estrictamente necesario.
frostschutz
1
La página del manual dice que el dispositivo suele ser una partición del disco duro . Un disco duro completo también es un dispositivo de bloque adecuado.
Toby Speight

Respuestas:

10

Es posible crear un sistema de archivos en un disco completo en lugar de una partición, pero inusual. La documentación solo menciona explícitamente la partición porque ese es el caso más habitual (por lo general, dice ). Puede crear un sistema de archivos en cualquier cosa que actúe lo suficientemente como un archivo de tamaño fijo, es decir, algo en el que si escribe datos en una ubicación determinada y vuelve a leer desde la misma ubicación, obtiene los mismos datos. Esto incluye discos completos, particiones de disco y otros tipos de dispositivos de bloque , así como archivos normales (imágenes de disco).

Después de hacerlo mkfs.fat -n A /dev/sdb, ya no tiene una partición en ese disco. Tenga en cuenta que el núcleo todavía piensa que el disco tiene una partición, ya que mantiene la tabla de particiones almacenada en caché en la memoria. Pero no debe intentar usar /dev/sdb1más, ya que ya no existe; escribir en él corrompería el sistema de archivos que creó /dev/sdbya que /dev/sdb1es parte de /dev/sdb(todo excepto unos pocos cientos de bytes al principio). Ejecute el comando partprobecomo root para indicarle al núcleo que vuelva a leer la tabla de particiones.

Si bien es posible crear un sistema de archivos en un disco completo, no lo recomiendo. Algunos sistemas operativos pueden tener problemas con él (creo que Windows podría hacer frente, pero algunos dispositivos como las cámaras podrían no tenerlo), y usted pierde la posibilidad de crear otras particiones. Ver también Los méritos de un sistema de archivos sin particiones

Gilles 'SO- deja de ser malvado'
fuente
8

En general, está bien colocar un sistema de archivos en un dispositivo completo, en lugar de particionar y formatear las particiones, si no tiene la intención de tener más de un sistema de archivos en su dispositivo. Simplemente tendrá que ser consistente; ya que has puesto el sistema de archivos en sdalugar de sda1, tendrás que montar sdatambién, ya sda1que no existirá en absoluto.

El dispositivo en su pregunta parece ser una unidad extraíble con formato FAT: si se va a usar con dispositivos integrados que pueden tener una noción más o menos detallada de cómo se pueden montar los sistemas de archivos, puede valer la pena probar que lo hacen en hecho admite un sistema de archivos de dispositivo completo sin una tabla de particiones. (Por ejemplo, las cámaras tienden a crear una única partición y formatear eso; es muy posible que declaren que una tarjeta de memoria sin particiones no se puede usar).

dhag
fuente