您为 USB 闪存盘推荐哪种文件系统?

Gre*_*reg 18 filesystem permissions usb-drive

这是我在使用 Ubuntu 时遇到的一个问题:我有两台安装了 Ubuntu 的计算机(comp1 和 comp2)。我在 comp1 上使用 Ubuntu 创建了一个文档,然后将该文件复制到 FAT 格式的 USB 闪存驱动器上。通过闪存驱动器,我将文档粘贴到 comp2 上。问题是文件权限在传输过程中永远不会保留。我假设是因为 FAT 不支持权限。

这个问题有方法解决吗?我是否应该继续将 FAT 文件系统用于 USB 闪存驱动器(因为 FAT 最适合闪存驱动器)并忍受这个权限问题?或者是否建议使用更“Ubuntu 友好”的文件系统重新格式化我的闪存驱动器以保留权限?

fab*_*or4 11

ext4 是一个日志文件系统,这意味着如果设备过早拔出,它更有可能恢复损坏的文件系统。写入的日志部分包含有关将要完成的操作的信息,并在操作完成后将其清除。如果在挂载设备时发现设备上有未完成的日志,文件系统可以恢复到以前的状态,从而保持其完整性。

虽然在 U 盘上安装日志文件系统会占用一些额外的空间,但它实际上是大多数情况下的不错选择。

显然,如果您需要一个可以随时插入任何计算机的设备,那么 FAT 将是您的最佳选择。如果您想要一个设备只需要偶尔插入一台 Windows 计算机,那么可以在 Windows 中安装 ext2 设备驱动程序,以允许它读取任何和所有 ext(x) 驱动器。当然,由于 Windows 不知道 Linux 权限和所有权,因此也不会处理这些。


Dig*_*nin 8

您可以尝试将驱动器格式化为 UDF(通用磁盘格式)。它是用于 CD 和 DVD 的格式。大多数现代操作系统都能够读取和写入它。

现在,查看我在 UDF 格式驱动器上的数据,Linux 文件权限似乎被保留了。到目前为止,它对我有用。

UDF 格式驱动器的另一个好处是它可以存储一个最大 16 Exabyte 的大文件(如果我错了,请纠正我。),而 Fat32 只能存储大小为 4GB 或更少的文件,FAT32 的最大分区大小只有 2TB。

它在 Win7 和 8 上运行良好。对于 XP 和 2000 等较旧的 Windows 操作系统,您可以从驱动器读取,但必须安装某种驱动程序才能写入。

对于 Mac,OS X 10.5 及更高版本具有完全兼容性。这是一个完整的兼容性图表。 UDF 兼容性图表

在 Ubuntu 上,按照以下步骤将驱动器格式化为 UDF。

sudo apt-get update
sudo apt-get install udftools
Run Code Online (Sandbox Code Playgroud)

好的,现在您要删除目标驱动器中的当前分区。您可以使用Disk Utility 之类的 GUI 工具,也可以执行以下操作。

sudo blkid
Run Code Online (Sandbox Code Playgroud)

在输出中找到您的驱动器。(它们看起来像/dev/sdb/dev/sdc)现在执行以下操作,但将/dev/sdx 中的“ x ”替换为指向要清除其分区的驱动器。对两行代码执行此操作。

sudo dd if=/dev/zero of=/dev/sdx bs=1M count=1
sudo mkudffs -b 512 --media-type=hd --utf8 --lvid=DriveLabel --vid=DriveLabel --fsid=DriveLabel  /dev/sdx
Run Code Online (Sandbox Code Playgroud)

您可以根据自己的喜好更改显示“DriveLabel”的位置。

应该是这样。

实际上,我的做法略有不同,但我认为这种方法更容易遵循。我从这个站点引用了这个方法。

我希望这可以帮助那里的人。


Ser*_*gey 7

当使用将用户 ID 保存在 USB 驱动器上的文件系统时,您可能会遇到以下问题,因为用户 ID 是按照创建用户帐户的顺序分配的,而文件系统实际上存储的是文件所有者的数字 ID,而不是用户名。所以,如果说,主机Aalicebob账户,B机有brucezoe并且alice很有可能当爱丽丝副本她文件到EXT(2/3/4)格式的USB驱动器,走到机器B和试图访问那么它占这些文件,她会发现,这些文件都是由拥有bruce和只读的alice

当然,如果您在两台机器上只有一个用户,那么这将不是问题。

tar正如@FSMaxB 所建议的那样,传输打包在存档中的文件可能会解决这个问题,因为当您解压存档时,这些文件将被创建为您的用户 ID 所拥有。


FSM*_*axB 0

如果您仅在 Linux 系统上使用闪存驱动器,则可以使用其中一种 ext 文件系统,例如 ext4,但在与其他系统一起使用时,FAT 是唯一兼容的文件系统。

使用 FAT 和保留权限(而非所有权)的一种方法是使用 tar 存档!