User Tools

Site Tools


zh:docs:guide-user:storage:filesystems-and-partitions

文件系统

(本文译自本站英文版)

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

文件系统是“数据如何被写入存储设备的分区上”。
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

LEDE/Linux 文件系统

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

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

设置 ext4

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

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

设置 f2fs

这个命令会下载创建和修复 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

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

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

可用的 NLS 文件

对于一些文件系统,例如 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 文件系统

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

设置 NTFS

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

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

设置 exFAT

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

opkg install libblkid

Apple 文件系统

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

设置 HFS 和 HFS+

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

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

分区

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

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

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

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

zh/docs/guide-user/storage/filesystems-and-partitions.txt · Last modified: 2018/08/08 07:51 by tmomas