Это нормально для mkfs без номера раздела?

10

У меня есть ручка и один раздел:

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

и я отформатировал с помощью команды:

   # mkfs.fat -n A /dev/sdb

и работает нормально.

Но после этого я просмотрел справочную страницу для 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.

Он говорит, что mkfsдолжен работать с номером раздела. И моя проблема в том, почему моя операция работает без сообщения об ошибке?

Alaneuler
источник
1
нет проблем с использованием всего устройства вместо одного раздела. это имеет больше смысла, если вы хотите 3.5 G жира и 4G ext3 / luckfs / что угодно, тогда вам придется разделять и форматировать каждую часть.
Archemar
1
Если вы поместите его в устройство, которое ожидает существование таблицы разделов, оно может попросить вас отформатировать ... обычно лучше иметь таблицу разделов, даже если это строго не требуется.
frostschutz
1
На странице руководства говорится, что устройство обычно представляет собой раздел жесткого диска . Весь жесткий диск также является подходящим блочным устройством.
Тоби Спейт

Ответы:

10

Создание файловой системы на целом диске, а не на разделе возможно, но необычно. Документация только явно упоминает раздел , потому что это самый обычный случай (это сказать , как правило ). Вы можете создать файловую систему на любом устройстве, которое действует в достаточной степени подобно файлу с фиксированным размером, то есть на что-то, где, если вы записываете данные в определенном месте и читаете из того же места, вы получаете те же данные. Это включает в себя целые диски, разделы диска и другие виды блочных устройств , а также обычные файлы (образы дисков).

После этого у mkfs.fat -n A /dev/sdbвас больше нет раздела на этом диске. Помните, что ядро ​​все еще думает, что диск имеет раздел, потому что он хранит таблицу разделов в кэше в памяти. Но вы не должны пытаться использовать /dev/sdb1больше, так как он больше не существует; запись в него повредит файловую систему, которую вы создали, /dev/sdbпоскольку /dev/sdb1она является частью /dev/sdb(всего, кроме нескольких сотен байтов в начале). Запустите команду partprobeот имени пользователя root, чтобы сказать ядру перечитать таблицу разделов.

Хотя создание файловой системы на всем диске возможно, я не рекомендую этого делать. Некоторые операционные системы могут иметь проблемы с этим (я думаю, что Windows справится, но некоторые устройства, такие как камеры, не могут), и вы потеряете возможность создания других разделов. Смотрите также Преимущества файловой системы без разделов

Жиль "ТАК - прекрати быть злым"
источник
8

Как правило, лучше всего поместить файловую систему на целое устройство, а не разбивать и форматировать разделы, если вы не собираетесь иметь более одной файловой системы на вашем устройстве. Вам просто нужно быть последовательным; так как вы включили файловую систему, sdaа не sda1вам, вам также придется смонтировать sda, так как sda1ее вообще не будет.

Устройство в вашем вопросе выглядит как съемный диск в формате FAT: если оно будет использоваться со встроенными устройствами, которые могут иметь более или менее подробное представление о том, как монтировать файловые системы, возможно, стоит проверить, что они делают в фактически поддерживает файловую систему всего устройства без таблицы разделов. (Например, камеры, как правило, создают один раздел и форматируют его; вполне возможно, что они объявят карту памяти без разделов непригодной.)

dhag
источник