I have my Linux root on an F2FS USB flash drive. The kernel is on another device accessible by the bootloader. I'm trying to start it with the parameters root=/dev/sda1 rootwait rootfstype=f2fs, but I always end up with a kernel panic:VFS: Cannot open root device sda1 or unknown-block(8,1): error -19Please append a correct root= boot option; here are the available partitions:0100      8192 ram0 (driver?)0101      8192 ram1 (driver?)0800   3913728 sda  driver: sd  0801 3913728 sda1 973c7215-01Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(8,1)---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(8,1)sda1 is the correct device, and I'm able to mount it with no problems to another computer running Arch Linux. I partitioned it using fdisk and formatted it using mkfs.f2fs from f2fs-tools.Why does the kernel panic? Am I missing the F2FS module? If so, how can I load it at boot time?
Linux root on F2FS
filesystems;kernel modules;kernel panic;root filesystem;kernel parameters
As @derobert pointed out, you have to build the kernel with the F2FS module. In my case it wasn't even included as a loadable module.To build the kernel yourself, grab it from kernel.org. Get the default kernel config for your platform. (I got mine from here for the TI-Nspire calculator series.) Modify it to include F2FS by setting CONFIG_F2FS_FS to y. Save it as .config on the root of the downloaded kernel source, and simply build it using make. You'll then find your fresh kernel stuff in arch/arm/boot.