fs/erofs: Add support for the EROFS
The EROFS [1] is a lightweight read-only filesystem designed for performance which has already been shipped in most Linux distributions as well as widely used in several scenarios, such as Android system partitions, container images and rootfs for embedded devices. This patch brings in the EROFS uncompressed support. Now, it's possible to boot directly through GRUB with an EROFS rootfs. Support for the EROFS compressed files will be added later. [1] https://erofs.docs.kernel.org Signed-off-by: Yifan Zhao <zhaoyifan@sjtu.edu.cn> Tested-by: Daniel Axtens <dja@axtens.net> Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com> Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This commit is contained in:
parent
1ba39de62f
commit
9d603061aa
8
INSTALL
8
INSTALL
@ -77,15 +77,15 @@ Prerequisites for make-check:
|
||||
|
||||
* If running a Linux kernel the following modules must be loaded:
|
||||
- fuse, loop
|
||||
- btrfs, ext4, f2fs, fat, hfs, hfsplus, jfs, mac-roman, minix, nilfs2,
|
||||
- btrfs, erofs, ext4, f2fs, fat, hfs, hfsplus, jfs, mac-roman, minix, nilfs2,
|
||||
reiserfs, udf, xfs
|
||||
- On newer kernels, the exfat kernel modules may be used instead of the
|
||||
exfat FUSE filesystem
|
||||
* The following are Debian named packages required mostly for the full
|
||||
suite of filesystem testing (but some are needed by other tests as well):
|
||||
- btrfs-progs, dosfstools, e2fsprogs, exfat-utils, f2fs-tools, genromfs,
|
||||
hfsprogs, jfsutils, nilfs-tools, ntfs-3g, reiserfsprogs, squashfs-tools,
|
||||
reiserfsprogs, udftools, xfsprogs, zfs-fuse
|
||||
- btrfs-progs, dosfstools, e2fsprogs, erofs-utils, exfat-utils, f2fs-tools,
|
||||
genromfs, hfsprogs, jfsutils, nilfs-tools, ntfs-3g, reiserfsprogs,
|
||||
squashfs-tools, reiserfsprogs, udftools, xfsprogs, zfs-fuse
|
||||
- exfat-fuse, if not using the exfat kernel module
|
||||
- gzip, lzop, xz-utils
|
||||
- attr, cpio, g++, gawk, parted, recode, tar, util-linux
|
||||
|
||||
@ -98,6 +98,7 @@ library = {
|
||||
common = grub-core/fs/cpio_be.c;
|
||||
common = grub-core/fs/odc.c;
|
||||
common = grub-core/fs/newc.c;
|
||||
common = grub-core/fs/erofs.c;
|
||||
common = grub-core/fs/ext2.c;
|
||||
common = grub-core/fs/fat.c;
|
||||
common = grub-core/fs/exfat.c;
|
||||
|
||||
@ -353,6 +353,7 @@ blocklist notation. The currently supported filesystem types are @dfn{Amiga
|
||||
Fast FileSystem (AFFS)}, @dfn{AtheOS fs}, @dfn{BeFS},
|
||||
@dfn{BtrFS} (including raid0, raid1, raid10, gzip and lzo),
|
||||
@dfn{cpio} (little- and big-endian bin, odc and newc variants),
|
||||
@dfn{EROFS} (only uncompressed support for now),
|
||||
@dfn{Linux ext2/ext3/ext4}, @dfn{DOS FAT12/FAT16/FAT32},
|
||||
@dfn{exFAT}, @dfn{F2FS}, @dfn{HFS}, @dfn{HFS+},
|
||||
@dfn{ISO9660} (including Joliet, Rock-ridge and multi-chunk files),
|
||||
@ -6276,7 +6277,7 @@ assumed to be encoded in UTF-8.
|
||||
NTFS, JFS, UDF, HFS+, exFAT, long filenames in FAT, Joliet part of
|
||||
ISO9660 are treated as UTF-16 as per specification. AFS and BFS are read
|
||||
as UTF-8, again according to specification. BtrFS, cpio, tar, squash4, minix,
|
||||
minix2, minix3, ROMFS, ReiserFS, XFS, ext2, ext3, ext4, FAT (short names),
|
||||
minix2, minix3, ROMFS, ReiserFS, XFS, EROFS, ext2, ext3, ext4, FAT (short names),
|
||||
F2FS, RockRidge part of ISO9660, nilfs2, UFS1, UFS2 and ZFS are assumed
|
||||
to be UTF-8. This might be false on systems configured with legacy charset
|
||||
but as long as the charset used is superset of ASCII you should be able to
|
||||
|
||||
@ -1442,6 +1442,11 @@ module = {
|
||||
common = fs/odc.c;
|
||||
};
|
||||
|
||||
module = {
|
||||
name = erofs;
|
||||
common = fs/erofs.c;
|
||||
};
|
||||
|
||||
module = {
|
||||
name = ext2;
|
||||
common = fs/ext2.c;
|
||||
|
||||
1000
grub-core/fs/erofs.c
Normal file
1000
grub-core/fs/erofs.c
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user