为什么 mount 强迫我为一个分区指定 -t ext4,而不为另一个分区指定?

为什么 mount 强迫我为一个分区指定 -t ext4,而不为另一个分区指定?

我有两个非常相似的分区,/dev/sdb1(标记为“bigb”)和/dev/sdc1(标记为“bigc”)。我以前能够使用mount -n -L bigX /mnt/donottouch/localX(带有Xbeingbc)挂载它们。但是,mount 最近开始要求我指定-t ext4 但仅限于 bigc

bigb 安装得很好:

# mount -n -L bigb  /mnt/donottouch/localb -vvv
mount: fstab path: "/etc/fstab"
mount: mtab path:  "/etc/mtab"
mount: lock path:  "/etc/mtab~"
mount: temp path:  "/etc/mtab.tmp"
mount: UID:        0
mount: eUID:       0
mount: spec:  "/dev/sdb1"
mount: node:  "/mnt/donottouch/localb"
mount: types: "(null)"
mount: opts:  "(null)"
final mount options: '(null)'
mount: you didn't specify a filesystem type for /dev/sdb1
       I will try type ext4
mount: mount(2) syscall: source: "/dev/sdb1", target: "/mnt/donottouch/localb", filesystemtype: "ext4", mountflags: -1058209792, data: (null)
/dev/sdb1 on /mnt/donottouch/localb type ext4 (rw)

但随后 bigc 出现错误:

# mount -n -L bigc  /mnt/donottouch/localc -vvv
mount: fstab path: "/etc/fstab"
mount: mtab path:  "/etc/mtab"
mount: lock path:  "/etc/mtab~"
mount: temp path:  "/etc/mtab.tmp"
mount: UID:        0
mount: eUID:       0
mount: spec:  "/dev/sdc1"
mount: node:  "/mnt/donottouch/localc"
mount: types: "(null)"
mount: opts:  "(null)"
final mount options: '(null)'
mount: you didn't specify a filesystem type for /dev/sdc1
       I will try all types mentioned in /etc/filesystems or /proc/filesystems
mount: you must specify the filesystem type

...除非我特别说明-t ext4

# mount -n -L bigc  /mnt/donottouch/localc -vvv -t ext4
mount: fstab path: "/etc/fstab"
mount: mtab path:  "/etc/mtab"
mount: lock path:  "/etc/mtab~"
mount: temp path:  "/etc/mtab.tmp"
mount: UID:        0
mount: eUID:       0
mount: spec:  "/dev/sdc1"
mount: node:  "/mnt/donottouch/localc"
mount: types: "ext4"
mount: opts:  "(null)"
final mount options: '(null)'
mount: mount(2) syscall: source: "/dev/sdc1", target: "/mnt/donottouch/localc", filesystemtype: "ext4", mountflags: -1058209792, data: (null)
/dev/sdc1 on /mnt/donottouch/localc type ext4 (rw)

Mount 声称它将尝试“/etc/filesystems 或 /proc/filesystems 中提到的所有类型”,但它显然不会这样做,因为这两个文件包含 ext4:

# cat /etc/filesystems 
ext4
ext3
ext2
nodev proc
nodev devpts
iso9660
vfat
hfs
hfsplus

# cat /proc/filesystems 
nodev   sysfs
nodev   rootfs
nodev   bdev
nodev   proc
nodev   cgroup
nodev   cpuset
nodev   tmpfs
nodev   devtmpfs
nodev   binfmt_misc
nodev   debugfs
nodev   securityfs
nodev   sockfs
nodev   usbfs
nodev   pipefs
nodev   anon_inodefs
nodev   inotifyfs
nodev   devpts
nodev   ramfs
nodev   hugetlbfs
        iso9660
nodev   pstore
nodev   mqueue
nodev   rpc_pipefs
nodev   nfs
nodev   nfs4
        ext4
nodev   fuse
        fuseblk
nodev   fusectl
nodev   autofs
nodev   nfsd
        ext3

此外,为什么它会决定为 bigb 尝试 ext4,而为 bigc 尝试所有文件系统类型?

更奇怪的是,blkid 能够将 bigc 检测为 ext4:

# blkid -o value -s TYPE /dev/sdb1
ext4
# blkid -o value -s TYPE /dev/sdc1
ext4
# mount -V
mount from util-linux-ng 2.17.2 (with libblkid and selinux support)

tune2fs -l显示除 inode 大小外,两个分区本质上是相同的:

# tune2fs -l /dev/sdb1
tune2fs 1.41.12 (17-May-2010)
Filesystem volume name:   bigb
Last mounted on:          /mnt/donottouch/localb
Filesystem UUID:          2ceadc5b-c302-43d1-b289-047069a15537
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent sparse_super large_file uninit_bg
Filesystem flags:         signed_directory_hash 
Default mount options:    (none)
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              122101760
Block count:              488378000
Reserved block count:     24418900
Free blocks:              101141916
Free inodes:              118086875
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      907
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8192
Inode blocks per group:   1024
Filesystem created:       Fri May 13 18:08:33 2011
Last mount time:          Fri Jul 19 11:59:32 2013
Last write time:          Fri Jul 19 11:59:32 2013
Mount count:              4
Maximum mount count:      39
Last checked:             Thu Mar 14 15:11:01 2013
Check interval:           15552000 (6 months)
Next check after:         Tue Sep 10 15:11:01 2013
Lifetime writes:          439 GB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:               512
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      ad841c26-0111-4f32-bab5-e8ebc9616f18
Journal backup:           inode blocks

# tune2fs -l /dev/sdc1
tune2fs 1.41.12 (17-May-2010)
Filesystem volume name:   bigc
Last mounted on:          /mnt/donottouch/localc
Filesystem UUID:          74d41e82-d431-4b3d-ae1a-01dcb363a047
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent sparse_super large_file uninit_bg
Filesystem flags:         signed_directory_hash 
Default mount options:    (none)
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              122101760
Block count:              488378000
Reserved block count:     24418900
Free blocks:              103460007
Free inodes:              118032588
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      907
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8192
Inode blocks per group:   512
Filesystem created:       Wed Apr 27 14:55:53 2011
Last mount time:          Fri Jul 19 12:01:47 2013
Last write time:          Fri Jul 19 12:01:47 2013
Mount count:              6
Maximum mount count:      35
Last checked:             Sat Mar  2 14:09:26 2013
Check interval:           15552000 (6 months)
Next check after:         Thu Aug 29 15:09:26 2013
Lifetime writes:          381 GB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:               256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      f36ed43e-46b4-473c-8af0-07dc2a8d90c8
Journal backup:           inode blocks

一些额外的系统信息:

# cat /etc/system-release
Scientific Linux release 6.4 (Carbon)
# uname -ar
Linux ml44 2.6.32-358.14.1.el6.x86_64 #1 SMP Tue Jul 16 14:24:33 CDT 2013 x86_64 x86_64 x86_64 GNU/Linux

lsblk --fsbigc 似乎出现了问题:

# lsblk --fs /dev/sdb1
NAME FSTYPE LABEL UUID                                 MOUNTPOINT
sdb1 ext4   bigb  2ceadc5b-c302-43d1-b289-047069a15537 /mnt/donottouch/localb
# lsblk --fs /dev/sdc1
NAME FSTYPE LABEL UUID MOUNTPOINT
sdc1                   /mnt/donottouch/localc
# e2label /dev/sdc1
bigc

它们都不在 /etc/fstab 或 /etc/mtab 中。根据 e2fsck,它们都是干净的。有什么想法吗?我能想到的唯一重大的近期变化是从 Scientific Linux 6.1 更新到 6.4。

答案1

我认为 sdb1 的分区类型设置为 83,这表示 Linux fs 类似于 Ext4。而根据您的输出,sdc1 似乎设置为其他类型lsblk

fdisk您可以通过或之类的实用程序修改分区类型cfdisk。如果我没记错的话,fdisk您可以使用t命令然后输入 83 来更改它。

相关内容