Ala*_*ler 15 linux filesystems mkfs
我有一个笔式驱动器和一个分区:
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
Run Code Online (Sandbox Code Playgroud)
我已经用命令格式化:
# mkfs.fat -n A /dev/sdb
Run Code Online (Sandbox Code Playgroud)
它工作正常。
但在那之后,我浏览了 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.
Run Code Online (Sandbox Code Playgroud)
它说mkfs应该使用分区号。我的问题是为什么我的操作没有错误提示?
Gil*_*il' 17
在整个磁盘而不是分区上创建文件系统是可能的,但不寻常。该文档仅明确提及分区,因为这是最常见的情况(它确实说通常)。您可以在任何足以充当固定大小文件的文件系统上创建文件系统,即如果您在某个位置写入数据并从同一位置读回,那么您将获得相同的数据。这包括整个磁盘、磁盘分区和其他类型的块设备,以及常规文件(磁盘映像)。
完成后mkfs.fat -n A /dev/sdb,该磁盘上不再有分区。请注意,内核仍然认为磁盘有分区,因为它会将分区表缓存在内存中。但是你不应该再尝试使用/dev/sdb1了,因为它已经不存在了;写入它会破坏您在其上创建的文件系统,/dev/sdb因为它/dev/sdb1是其中的一部分/dev/sdb(除了开头的几百字节之外的所有内容)。partprobe以 root 身份运行命令告诉内核重新读取分区表。
虽然可以在整个磁盘上创建文件系统,但我不建议这样做。某些操作系统可能会遇到问题(我认为 Windows 可以应对,但某些设备(如相机)可能不会),并且您失去了创建其他分区的可能性。另请参阅无分区文件系统的优点
dha*_*hag 10
如果您不打算在您的设备上拥有多个文件系统,通常可以将文件系统放在整个设备上,而不是对分区进行分区和格式化。你只需要保持一致;由于您将文件系统放在sda而不是 上
sda1,因此您也必须安装sda,因为sda1根本不存在。
您问题中的设备似乎是一个 FAT 格式的可移动驱动器:如果它将与嵌入式设备一起使用,这些设备可能对如何挂载文件系统有或多或少的详细概念,则可能值得测试它们在事实上支持没有分区表的整个设备文件系统。(例如,相机倾向于创建单个分区并对其进行格式化;他们完全有可能宣布无分区存储卡无法使用。)