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

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

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

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

答案1

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

尽管在 USB 驱动器上安装日志文件系统会占用一些额外的空间,但对于大多数情况来说,它实际上是一个不错的选择。

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

答案2

当使用在 USB 驱动器上保存用户 ID 的文件系统时,您可能会遇到问题,因为用户 ID 是按照用户帐户的创建顺序分配的,而文件系统实际上存储的是文件所有者的数字 ID,而不是用户名。因此,如果计算机 A 有alicebob帐户,而计算机 B 有和帐户bruce,那么当 Alice 将她的文件复制到 ext(2/3/4) 格式的 USB 驱动器时,走到计算机 B 并尝试访问这些文件时,她很可能会发现这些文件都归所有,并且对 来说是只读的。zoealicebrucealice

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

按照@FSMaxB 的建议,传输打包在tar档案中的文件可能会解决这个问题,因为当您解压档案时,这些文件将由您的用户 ID 创建。

答案3

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

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

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

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

对于 Mac,OS X 10.5 及以上版本具有完全兼容性。以下是完整兼容性图表。 UDF 兼容性图表

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

sudo apt-get update
sudo apt-get install udftools

好的,现在您要删除目标驱动器中的当前分区。您可以使用 GUI 工具,例如磁盘工具,或者执行以下操作。

sudo blkid

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

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

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

就应该这样。

实际上,我的做法略有不同,但我认为这种方法更容易遵循。我参考了此方法地点

我希望这对某些人有帮助。

答案4

多年来,我一直在 USB 上使用 reiserfs,没有出现任何问题。不过,它们无法在 Windows 系统中读取,如果丢失了,可能也不是什么坏事。

如果你对一根内存条进行分区,以便使用 Windows 的各部分进行数据交换,请确保 windowspartition 是第一个 - 否则它将无法被识别(至少对于 XP 我是有经验的)。

您可以构建一个胖文件系统(对于当今的存储棒大小来说,它们不是非常有限吗?)并向其中添加一个大而空的文件,然后将该文件作为 Ubuntu 中的循环设备安装。然后,您将能够保留文件权限,并增加或减少保留空间,而无需分区或格式化。

正如前面提到的:Tars、Zips 等是另一种可能性。

相关内容