使用Debian 9.9在一个实时USB,并尝试从 de hdd 挂载分区
mount -t ext4 /dev/sda1 /mnt
我明白了
mount: unknown filesystem type 'ext4'
嗯,外部4,外部3,外部2类型不在/proc/filesystem
我已经e2fslibs
安装e2fsprogs
了。
答案1
看一下你的内核配置。如果
ext4
构建为模块,那么它应该输出CONFIG_EXT4_FS=m
更多几行:$ grep 'CONFIG_EXT4_FS' /boot/config-$(uname -r) CONFIG_EXT4_FS=m CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y CONFIG_EXT4_FS_ENCRYPTION=y
检查该模块是否存在于您的 initrd 映像中:
$ zcat /boot/initrd.img-$(uname -r) | cpio -t | grep ext4 lib/modules/4.9.0-4-amd64/kernel/fs/ext4 lib/modules/4.9.0-4-amd64/kernel/fs/ext4/ext4.ko 141243 blocks
在我的 Debian Live 9.1(使用 syslinux 和持久性从 USB 启动)上,加载的 initrd 的路径有点不同。上面的文件是 squashfs 映像中存在的文件。只是为了确保这确实是同一个文件:
$ dmesg | grep initrd [ 0.000000] Command line: BOOT_IMAGE=/live/vmlinuz_4_9.0_4_amd64 initrd=/live/initrd_img_4_9.0_4_amd64 boot=live persistence components [ 0.000000] Kernel command line: BOOT_IMAGE=/live/vmlinuz_4_9.0_4_amd64 initrd=/live/initrd_img_4_9.0_4_amd64 boot=live persistence components [ 0.870136] Freeing initrd memory: 22792K
initrd 的路径是
/live/initrd_img_4_9.0_4_amd64
,我的引导文件安装在/lib/live/mount/persistence/sdb1
.你的道路可能会有所不同。将两条路径合并在一起:
$ zcat /lib/live/mount/persistence/sdb1/live/initrd_img_4_9.0_4_amd64 | cpio -t | grep ext4 lib/modules/4.9.0-4-amd64/kernel/fs/ext4 lib/modules/4.9.0-4-amd64/kernel/fs/ext4/ext4.ko 141243 blocks $ diff /lib/live/mount/persistence/sdb1/live/initrd_img_4_9.0_4_amd64 /boot/initrd.img-$(uname -r)
经确认,两个文件是相同的。
那么模块应该已经被加载了:
$ lsmod|grep ext4 ext4 585728 1 crc16 16384 1 ext4 jbd2 106496 1 ext4 fscrypto 28672 1 ext4 mbcache 16384 2 ext4 $ cat /proc/filesystems | grep ext4 ext4