你如何将*分区标记为ext4?

我有一个ext3分区,所以当我这样做:

mount /dev/blah /mnt/blah 

它会自动挂载为ext3。 我可以通过运行将它挂载为ext4

 mount -t ext4 /dev/blah /mnt/blah 

它的工作。 我认为分区标记为ext3。 是否有可能将其更改为ext4,以便:

 mount /dev/blah /mnt/blah 

将它挂载为ext4。 这是一个实验。 我想在不启用ext4中的新function的情况下这样做,所以我可以回到ext3。

如果在创build时文件系统没有使用ext4扩展(如uninit_bgflex_bg ),那么文件系统实际上是ext3(如果有日志)或ext2(如果没有ext3或ext4的function)。

您可以使用tune2fs -O启用ext4function。

ext4手册页:

如果-O选项用于显式添加或删除应在新创build的文件系统中设置的文件系统选项,则所请求的fstypes可能不支持生成的文件系统。 (例如,“mke2fs -t ext3 -O extents / dev / sdXX”将创build一个ext3实现不支持的文件系统,如Linux内核中的“mke2fs -t ext3 -O ^ has_journal / dev / hdXX”将创build一个没有日志的文件系统,因此Linux内核中的ext3文件系统代码将不会支持它。)

tune2fs手册页:

-O [^]特征[,…] – O [^]特征[,…]

启用某些文件系统function可能会阻止文件系统被不支持这些function的内核挂载。 特别是uninit_bg和flex_bgfunction只支持ext4文件系统。

man mount

如果没有给出-t选项,或者如果指定了自动types,mount将尝试猜测所需的types。 Mount使用blkid库来猜测文件系统types; 如果没有看起来很熟悉的东西,mount将尝试读取文件/etc/filesystems ,或者如果不存在, /proc/filesystems 。 列出的所有文件系统types将被尝试,除了那些被标记为“nodev”的文件系统types(例如,devpts,proc和nfs)。 如果/etc/filesystems ends只包含一个*的行/etc/filesystems ends ,mount将在之后读取/proc/filesystems

 # mount -V mount from util-linux-ng 2.17.2 (with libblkid and selinux support) 

除了blk_id

 # blkid -o value -s TYPE /dev/sdb1 ext4 

还有其他一些方法可以确定卸载分区的文件系统:

 # file -s /dev/sdb1 /dev/sdb1: Linux rev 1.0 ext4 filesystem data (extents) (large files) (huge files) # fsck -N /dev/sdb1 fsck from util-linux-ng 2.17.2 [/sbin/fsck.ext4 (1) -- /dev/sdb1] fsck.ext4 /dev/sdb1 # parted /dev/sdb1 print Model: Unknown (unknown) Disk /dev/sdb1: 107GB Sector size (logical/physical): 512B/512B Partition Table: loop Number Start End Size File system Flags 1 0.00B 107GB 107GB ext4 

mount /dev/blah /mnt/blah只能与fstab条目一起使用,不是吗? 因此,将fstab条目更改为ext4,就是这样。

你可能意思是什么?

 mount -t auto /dev/blah /mnt/blah 

我不知道ext3和ext4检查的顺序是在哪里定义的。 我相信FS本身没有标记:“更喜欢装上ext4”。 类似于标记的东西是在超级块中设置的非向后兼容的ext4特征。 这将阻止FS作为ext3挂载,但这不是你想要的。