Czy to jest w porządku dla mkfs bez numeru partycji?

10

Mam pendrive i jedną partycję:

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

i sformatowałem za pomocą polecenia:

   # mkfs.fat -n A /dev/sdb

i działa dobrze.

Ale potem przejrzałem stronę man dla 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.

Mówi, że mkfspowinien działać z numerem partycji. A moim problemem jest to, dlaczego moja operacja działa bez monitu o błąd?

Alaneuler
źródło
1
nie ma problemu z użyciem całego urządzenia zamiast jednej partycji. byłoby to bardziej sensowne, jeśli chcesz 3,5 G tłuszczu i 4G ext3 / luckfs / cokolwiek, wtedy musisz rozdzielić i sformatować każdą część.
Archemar
1
Jeśli umieścisz go w urządzeniu, które spodziewa się, że tablica partycji istnieje, może poprosić cię o sformatowanie ... zwykle lepiej jest mieć tablicę partycji, nawet jeśli nie jest to bezwzględnie wymagane.
frostschutz
1
Strona podręcznika mówi, że urządzenie jest zwykle partycją dysku twardego . Cały dysk twardy jest również odpowiednim urządzeniem blokowym.
Toby Speight

Odpowiedzi:

10

Tworzenie systemu plików na całym dysku zamiast partycji jest możliwe, ale niezwykłe. Dokumentacja tylko wyraźnie wspomina o partycji, ponieważ jest to najczęstszy przypadek ( zwykle tak jest ). Możesz stworzyć system plików na czymkolwiek, co działa wystarczająco podobnie do pliku o stałym rozmiarze, tzn. Na czym, jeśli zapisujesz dane w określonej lokalizacji i odczytujesz z tej samej lokalizacji, to odzyskujesz te same dane. Obejmuje to całe dyski, partycje dysków i inne rodzaje urządzeń blokowych , a także zwykłe pliki (obrazy dysków).

Po wykonaniu mkfs.fat -n A /dev/sdbtej czynności nie masz już partycji na tym dysku. Uważaj, że jądro nadal uważa, że ​​dysk ma partycję, ponieważ utrzymuje pamięć podręczną tablicy partycji. Ale nie powinieneś już próbować używać /dev/sdb1, ponieważ już nie istnieje; zapisanie do niego spowodowałoby uszkodzenie systemu plików, który utworzyłeś, /dev/sdbponieważ /dev/sdb1jest on częścią /dev/sdb(wszystko oprócz kilkuset bajtów na początku). Uruchom komendę partprobejako root, aby poinformować jądro o ponownym odczytaniu tablicy partycji.

Chociaż tworzenie systemu plików na całym dysku jest możliwe, nie polecam go. Niektóre systemy operacyjne mogą mieć z tym problemy (myślę, że Windows poradziłby sobie z tym, ale niektóre urządzenia, takie jak aparaty, mogą tego nie robić) i tracisz możliwość tworzenia innych partycji. Zobacz także Zalety systemu plików bez partycji

Gilles „SO- przestań być zły”
źródło
8

Zasadniczo dobrze jest umieścić system plików na całym urządzeniu, zamiast partycjonowania i formatowania partycji, jeśli nie masz więcej niż jednego systemu plików na swoim urządzeniu. Po prostu będziesz musiał być konsekwentny; ponieważ sdazamiast tego sda1włączysz system plików , będziesz musiał również zamontować sda, ponieważ w sda1ogóle nie będzie istniał.

Urządzenie, o które pytasz, wydaje się być dyskiem wymiennym w formacie FAT: jeśli będzie używane z urządzeniami osadzonymi, które mogą mieć mniej lub bardziej szczegółowe pojęcie o sposobie montowania systemów plików, warto przetestować, czy robią to w fakt obsługuje system plików całego urządzenia bez tablicy partycji. (Na przykład kamery mają tendencję do tworzenia jednej partycji i formatowania tego; jest całkiem możliwe, że zadeklarują, że karta pamięci bez partycji będzie bezużyteczna).

dhag
źródło