This translation is older than the original page and might be outdated. See what has changed.

文件系统

(本文译自本站英文版)

本文包括有关文件系统和分区的高级内容。

文件系统是“数据如何被写入存储设备的分区上”。
Windows, macOS/OSX 和 LEDE (Linux) 使用不同的默认文件系统,而且并不是所有文件系统都能被同样完好的读取(如果有的话)。
LEDE 是一个 Linux-based 系统,所以它可以读写被写入 Windows 和 macOS 文件系统中的数据,相较于从 Linux 原生的文件系统中读写数据,它可能更慢,有更多的限制,以及更加不可靠。所以如果你想足够好的传输数据,并且存储设备永远在你的 LEDE 设备上使用的话,推荐使用原生的 Linux 文件系统。
如果你想了解的话,出现这种性能和可靠性方面问题的原因是:专利、商业机密以及其他一些问题阻碍了第三方使用 Windows 或 Apple 文件系统。

要查看当前安装的固件可以读取哪些文件系统的话,请输入 cat /proc/filesystems.
这是一个来自于 LEDE x86 虚拟机的示例输出,它可以阅读许多文件系统,因为对于这个目标来说,空间不是问题。 对于大多数设备来说,你必须选择你需要访问的文件系统,并且为它安装相应的文件系统驱动软件包。

nodev   sysfs
nodev   rootfs
nodev   ramfs
nodev   bdev
nodev   proc
nodev   tmpfs
nodev   binfmt_misc
nodev   debugfs
nodev   sockfs
nodev   bpf
nodev   pipefs
nodev   devpts
        ext3
        ext2
        ext4
        squashfs
nodev   overlay
        btrfs
        f2fs
        xfs
        vfat

这里有两个你会感兴趣的主要的文件系统,ext4f2fs.
简单来说:

  • ext4 最适合机械硬盘
  • f2fs 最适合闪存设备(SSD 和 U盘)

这个命令会下载创建和修复 ext4(及老版本)需要的工具:
opkg install e2fsprogs

如果在设备支持的文件系统列表中没有看到 ext4, 你必须安装驱动本身
opkg install kmod-fs-ext4

这个命令会下载创建和修复 f2fs 需要的工具:
opkg install f2fs-tools

如果在设备支持的文件系统列表中没有看到 f2fs, 你必须安装驱动本身
opkg install kmod-fs-f2fs

可以通过下面的命令获取 LEDE 支持的所有文件系统列表
opkg update && opkg list | grep kmod-fs

你选择的文件系统所需的工具可以通过下面的命令找到
opkg list | grep FILESYSTEM_NAME

截至本文的写作时间 (2017) LEDE 有适用于 ext2/3/4, f2fs, xfs 和 btrfs 的驱动和文件系统工具,以及适用于大部分被 Linux 支持的其他文件系统的驱动。

唯一推荐的可以用于跨平台的文件系统是 FAT32. 它可以被 Windows, macOS/OSX, Linux, 以及其他你可能拥有的设备(智能电视,平板电脑,有 USB 接口的汽车声音系统...)所读取。 它的主要缺点(对于一个数据盘来说)是它不能存储大于 3.9 GiB 的文件,即使它本身大于 3.9 GiB. 当正在写入数据时,设备断开的话,它也比较容易出错,如果没有允许文件系统检查就再次写入数据的话,这可能导致数据丢失。

这个命令会下载创建和修复 FAT32(及老版本)需要的工具:
opkg install dosfstools (dosfstools 软件包包括 mkfs.fatfsck.fat 工具,它们分别可以创建和检查之前提到的 MS-DOS FAT 文件系统。)

如果在设备支持的文件系统列表中没有看到 vfat, 你必须安装驱动本身
opkg install kmod-fs-vfat

对于一些文件系统,例如 FAT32, 你需要额外安装语言包 (codepages / charsets) 来处理文件名。如果你挂载失败了,并且在 dmesg 中看到这样的消息
FAT: codepage cp437 not found
意味着你需要 NLS codepage 437, 如果像是这样的消息
FAT: IO charset iso8859-1 not found
意味着你需要 NLS ISO 8859-1.

可用的 NLS 文件和它们对应的软件包可以通过输入 opkg update; opkg list “kmod-nls*” 列出。

Name Description
kmod-nls-cp1250 Kernel module for NLS Codepage 1250 (Eastern Europe)
kmod-nls-cp1251 Kernel module for NLS Codepage 1251 (Russian)
kmod-nls-cp437 Kernel module for NLS Codepage 437 (United States, Canada)
kmod-nls-cp775 Kernel module for NLS Codepage 775 (Baltic Rim)
kmod-nls-cp850 Kernel module for NLS Codepage 850 (Europe)
kmod-nls-cp852 Kernel module for NLS Codepage 852 (Europe)
kmod-nls-cp866 Kernel module for NLS Codepage 866 (Cyrillic)
kmod-nls-iso8859-1 Kernel module for NLS ISO 8859-1 (Latin 1)
kmod-nls-iso8859-13 Kernel module for NLS ISO 8859-13 (Latin 7; Baltic)
kmod-nls-iso8859-15 Kernel module for NLS ISO 8859-15 (Latin 9)
kmod-nls-iso8859-2 Kernel module for NLS ISO 8859-2 (Latin 2)
kmod-nls-koi8r Kernel module for NLS KOI8-R (Russian)
kmod-nls-utf8 Kernel module for NLS UTF-8

Windows PC 上使用的唯一文件系统是 NTFS, 在 LEDE (Linux) 上,它是可用的,但是性能很差,如果可以的话,避免使用它。
另一个使用在较新且大于 32 GiB 的 SD 卡上的文件系统是 exFAT, 在 LEDE 上,它也是可用的,并且比 NTFS 有更好的性能和可靠性。如果文件大小限制对你来说不是问题的话,还是建议简单的把 SD 卡格式化为 FAT32.

这个命令会下载创建和修复 NTFS 需要的工具:
opkg install ntfsprogs_ntfs-3g

如果在设备支持的文件系统列表中没有看到 ntfs, 你必须安装驱动本身
opkg install ntfs-3g

这个命令将下载用于读取 exfat 文件系统的驱动,LEDE 中还没有工具可以用来格式化和检查 exfat (截至2017)
opkg install kmod-fs-exfat

opkg install libblkid

在 Apple 的地盘上有三种文件系统: HFS, HFS+APFS. 和 Windows 文件系统类似,有驱动可以用于 HFS 和 HFS+, 但是性能比较差,并且不支持全部特性。
APFS 太新了(截至 2017),所以在 LEDE 上完全不支持(其他 Linux 也一样)

这个命令会下载创建和修复 HFS 和 HFS+ 需要的工具:
opkg install hfsfsck

如果在设备支持的文件系统列表中没有看到 hfshfsplus, 你必须安装驱动
opkg install kmod-fs-hfs kmod-fs-hfsplus

分区是把存储空间分成不同部分的一种方式,每一个分区都可以使用自己独立的文件系统。

对于分开不同的数据类型,这是一个非常有用的办法。比如,将扩展的固件系统和真正需要存储和分享的数据分开,或者是断开外置设备后仍然需要直接从 Windows 或者 macOS 轻松访问的数据。

讨论高级的分区超出了本文的范围,因为 LEDE 使用和其他 Linux 系统相同的命令行工具。

fdisk 工具用于在使用 MBR 分区表的设备上创建和修改分区
gdisk 工具用于在使用 GPT 分区表的设备上创建和修改分区

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
  • Last modified: 2018/08/08 07:51
  • by tmomas