文件系统挂载问题

文件系统挂载问题

使用 LSI SCSI HBA 将 DAS 盒连接到我的 Linux 盒。Linux 盒上正确检测到卷,并使用以下方式创建文件系统

mkfs.ext3 /dev/sdc     #No partition table

我无法使用以下方式挂载卷

mount/dev/sdc  /mnt/temp -t ext3

但我可以使用它来安装它

mount /dev/sdc  /mnt/temp -t ext3 -o loop

有人能告诉我“-o loop”选项的内部功能吗?有人遇到过这个选项吗?

更新 1:这是 stat 和文件的输出:

# stat /dev/sdc
File: /dev/sdc
Size: 0               Blocks: 0          IO Block: 4096   block special file
Device: dh/13d  Inode: 158         Links: 1     Device type: 8,20
Access: (0640/brw-r-----)  Uid: (    0/    root)   Gid: (    6/    disk)
Access: 2010-04-02 12:04:27.288467752 +0530
Modify: 2010-04-02 17:33:55.840630712 +0530
Change: 2010-04-02 12:03:59.609892979 +0530

# file /dev/sdc
/dev/sdc: block special (8/32)

以下是创建 ext3 文件系统后挂载时的错误

# mount /dev/sdc /mnt/temp -t ext3
mount: wrong fs type, bad option, bad superblock on /dev/sdc,
   missing codepage or other error
   In some cases useful info is found in syslog - try
   dmesg | tail  or so

# dmesg
VFS: Can't find ext3 filesystem on dev sdc.

提前致谢,prashant

答案1

/dev/sdc 真的是设备而不是文件吗?这可以解释为什么 '-o loop' 有效。

另一件事是:您创建了一个 ext2 文件系统(不带“-j”选项的 mke2fs 和 mkfs.ext2 将创建 ext2,而不是 ext3 文件系统)并尝试将其挂载为 ext3。不过,奇怪的是循环挂载成功了。

“-o loop”挂载选项将文件(作为 mount 命令的“device”参数提供)附加到循环设备(如果可用,则默认为 /dev/loop0),然后挂载该循环设备。循环设备是一个“虚拟”块设备,代表其他文件系统上的常规文件。

mount -o loop some_file /mnt

相当于:

losetup /dev/loop0 some_file
mount /dev/loop0 /mnt

在我看来,'-o loop' 应该不会对从常规块设备识别和安装文件系统产生任何影响。如果它能与常规块设备配合使用的话。

dmesg无论发生什么,内核日志(输出)中都应该有一些有关该问题的信息。

相关内容