挂载未知文件系统类型 - Debian

挂载未知文件系统类型 - Debian

使用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

  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
    


  2. 检查该模块是否存在于您的 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)
    

    经确认,两个文件是相同的。


  3. 那么模块应该已经被加载了:

    $ 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
    

相关内容