Có thể mkfs không có số phân vùng?


10

Tôi có một ổ đĩa bút và một phân vùng:

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

và tôi đã định dạng bằng lệnh:

   # mkfs.fat -n A /dev/sdb

và nó hoạt động tốt.

Nhưng sau đó, tôi lướt qua trang người đàn ông cho 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.

Nó nói mkfsnên làm việc với số phân vùng. Và vấn đề của tôi là tại sao hoạt động của tôi hoạt động mà không có dấu nhắc lỗi?


1
không có vấn đề gì khi sử dụng toàn bộ thiết bị thay vì một phân vùng duy nhất. điều này sẽ hợp lý hơn nếu bạn muốn 3,5 G fat và 4G ext3 / luckfs / bất cứ điều gì, sau đó bạn sẽ phải chia phần và định dạng từng phần.
Archemar

1
Nếu bạn đặt nó vào một thiết bị mong muốn có một bảng phân vùng tồn tại, nó có thể yêu cầu bạn định dạng ... tốt hơn là nên có một bảng phân vùng ngay cả khi nó không được yêu cầu nghiêm ngặt.
frostschutz

1
Trang man cho biết thiết bị này thường là phân vùng đĩa cứng . Toàn bộ đĩa cứng cũng là một thiết bị khối phù hợp.
Toby Speight

Câu trả lời:


10

Tạo một hệ thống tập tin trên toàn bộ đĩa thay vì phân vùng là có thể, nhưng không bình thường. Tài liệu chỉ đề cập rõ ràng đến phân vùng vì đó là trường hợp thông thường nhất (nó thường nói ). Bạn có thể tạo một hệ thống tệp trên bất kỳ thứ gì hoạt động đủ như tệp có kích thước cố định, nghĩa là nếu bạn ghi dữ liệu tại một vị trí nhất định và đọc lại từ cùng một vị trí thì bạn sẽ lấy lại cùng một dữ liệu. Điều này bao gồm toàn bộ đĩa, phân vùng đĩa và các loại thiết bị khối khác , cũng như các tệp thông thường (hình ảnh đĩa).

Sau khi làm mkfs.fat -n A /dev/sdb, bạn không còn có một phân vùng trên đĩa đó. Coi chừng rằng kernel vẫn nghĩ rằng đĩa có phân vùng, vì nó giữ bảng phân vùng được lưu trong bộ nhớ cache. Nhưng bạn không nên cố gắng sử dụng /dev/sdb1nữa, vì nó không còn tồn tại; ghi vào nó sẽ làm hỏng hệ thống tập tin mà bạn đã tạo /dev/sdbtừ đó /dev/sdb1là một phần của /dev/sdb(mọi thứ trừ vài trăm byte lúc đầu). Chạy lệnh partprobedưới dạng root để báo cho kernel đọc lại bảng phân vùng.

Mặc dù việc tạo một hệ thống tập tin trên toàn bộ đĩa là có thể, tôi không khuyên bạn nên dùng nó. Một số hệ điều hành có thể có vấn đề với nó (tôi nghĩ Windows sẽ đối phó nhưng một số thiết bị như máy ảnh có thể không) và bạn mất khả năng tạo các phân vùng khác. Xem thêm Ưu điểm của hệ thống tập tin không phân vùng


8

Nói chung là ổn khi đặt một hệ thống tệp trên toàn bộ thiết bị, thay vì phân vùng và định dạng phân vùng, nếu bạn không có ý định có nhiều hơn một hệ thống tệp trên thiết bị của mình. Bạn đơn giản sẽ phải nhất quán; vì bạn đặt hệ thống tập tin sdathay vì sda1, bạn cũng sẽ phải gắn kết sda, vì sda1sẽ không tồn tại.

Thiết bị trong câu hỏi của bạn dường như là một ổ đĩa di động có định dạng FAT: nếu nó sẽ được sử dụng với các thiết bị nhúng có thể có một khái niệm chi tiết hơn hoặc ít hơn về cách hệ thống tập tin có thể được gắn, thì có thể đáng để thử nghiệm thực tế hỗ trợ một hệ thống tập tin toàn thiết bị mà không cần bảng phân vùng. (Ví dụ: máy ảnh có xu hướng tạo một phân vùng và định dạng duy nhất; hoàn toàn có khả năng chúng sẽ khai báo thẻ nhớ không phân vùng không sử dụng được.)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.