使用 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
无论发生什么,内核日志(输出)中都应该有一些有关该问题的信息。