我有一个备份驱动器,最近运行 rsnapshot 时间歇性失败(但几乎总是成功)。
ls
和e2label
产出并不令人鼓舞:
$ ls -al /mnt/backup/
ls: cannot access /mnt/backup/daily.3: Input/output error
ls: cannot access /mnt/backup/daily.5: Input/output error
ls: cannot access /mnt/backup/weekly.3: Input/output error
ls: cannot access /mnt/backup/monthly.1: Input/output error
ls: cannot access /mnt/backup/weekly.1: Input/output error
ls: cannot access /mnt/backup/daily.1: Input/output error
ls: cannot access /mnt/backup/daily.0: Input/output error
ls: cannot access /mnt/backup/weekly.2: Input/output error
ls: cannot access /mnt/backup/daily.4: Input/output error
total 52
drwxr-xr-x 19 root root 4096 Aug 12 20:01 .
drwxr-xr-x 7 root root 4096 Jun 18 19:08 ..
d????????? ? ? ? ? ? daily.0
d????????? ? ? ? ? ? daily.1
d????????? ? ? ? ? ? daily.3
d????????? ? ? ? ? ? daily.4
d????????? ? ? ? ? ? daily.5
dr-xr-xr-x 19 root root 4096 Aug 13 06:00 daily.6
drwx------ 2 root root 16384 Mar 26 13:13 lost+found
dr-xr-xr-x 23 root root 4096 Aug 12 20:01 minutes.0
dr-xr-xr-x 23 root root 4096 Aug 10 19:54 minutes.2
dr-xr-xr-x 23 root root 4096 Aug 8 22:24 minutes.3
dr-xr-xr-x 23 root root 4096 Aug 8 17:26 minutes.4
dr-xr-xr-x 23 root root 4096 May 18 19:39 monthly.0
d????????? ? ? ? ? ? monthly.1
dr-xr-xr-x 23 root root 4096 Jul 13 20:04 weekly.0
d????????? ? ? ? ? ? weekly.1
d????????? ? ? ? ? ? weekly.2
d????????? ? ? ? ? ? weekly.3
$ e2label /mnt/backup
e2label: Attempt to read block from filesystem resulted in short read while trying to open /mnt/backup
Couldn't find valid filesystem superblock.
但奇怪的是dmesg
报告驱动器离线:
$ dmesg | tail
sd 2:0:0:0: rejecting I/O to offline device
sd 2:0:0:0: rejecting I/O to offline device
sd 2:0:0:0: rejecting I/O to offline device
EXT4-fs error (device sdc1): __ext4_get_inode_loc: unable to read inode block - inode=50729874, block=202899801
sd 2:0:0:0: rejecting I/O to offline device
sd 2:0:0:0: rejecting I/O to offline device
EXT4-fs error (device sdc1): __ext4_get_inode_loc: unable to read inode block - inode=50331649, block=201326624
sd 2:0:0:0: rejecting I/O to offline device
sd 2:0:0:0: rejecting I/O to offline device
EXT4-fs error (device sdc1): __ext4_get_inode_loc: unable to read inode block - inode=47185921, block=188743712
有时我们还会得到:
EXT4-fs error (device sdc1): ext4_put_super: Couldn't clean up the journal
最近,在将设备作为 HyperV 直通方式断开并重新连接到虚拟机时,我们得到了许多 dmesg 信息:
scsi scan: INQUIRY result too short (5), using 36
...现在根本无法安装它。
现在,如果它处于离线状态,我怎样才能看到任何输出呢ls
?
这更有可能表明执行备份的主机虚拟机损坏,或者 USB 硬盘驱动器有硬件问题,或者两者兼而有之?
更新:我也无法格式化它:
$ sudo mkfs.ext4 -L 2015backup2new /dev/sdc1
mke2fs 1.41.12 (17-May-2010)
mkfs.ext4: No such device or address while trying to determine filesystem size
我无法查看或修改其分区:
$ sudo fdisk -l /dev/sdc
$ sudo fdisk /dev/sdc
Unable to open /dev/sdc
但它确实存在:
$ sudo ls -al /dev/sdc*
brw-rw---- 1 root disk 8, 32 Aug 10 15:26 /dev/sdc
brw-rw---- 1 root disk 8, 33 Aug 10 15:26 /dev/sdc1
我也不能忽略分区:
$ sudo mkfs.ext4 -L 2015backup2new /dev/sdc
mke2fs 1.41.12 (17-May-2010)
/dev/sdc is entire device, not just one partition!
Proceed anyway? (y,n) y
mkfs.ext4: No such device or address while trying to determine filesystem size
更新:有趣的是,另外两个 USB 驱动器现在也出现了这个问题。但如果我将它们中的任何一个附加到 CentOS7 映像(而不是我们正在使用的主 6.5 映像),它就会格式化并安装正常。 (CentOS 7 的 dmesg 输出也显示了scsi 3:0:0:1: scsi scan: INQUIRY result too short (5), using 36
几次,但它仍然有效。)但是,将格式化的驱动器分离然后连接回 CentOS 6.5 映像仍然会出现上述所有错误(除了 ls 中最初显示的部分错误)。
答案1
我无法解决您实际的硬件问题,但我可以消除您对诊断的困惑。
有关可用分区的实际官方来源是/proc/partitions
。仅仅因为 /dev 中有一个设备节点并没有任何意义。事实上,在真正古老的 Linux 发行版上,他们会用每个可能的设备名称填充 /dev,而不管系统上有哪些可用设备名称。按需创建设备节点的新方法是为了您的方便。
至于目录,您的结果是由文件系统缓存引起的。目录仅包含文件名和“inode”(文件 ID 号)的列表。有关文件的其余详细信息(例如所有权、权限和时间戳)来自文件本身。当您列出目录时,它首先查询文件列表,然后对每个文件运行“stat”以加载其余数据。如果目录已缓存,并且某些文件已缓存,但无法统计任何尚未缓存的文件,那么您会看到类似于上面粘贴的输出。
dmesg 正确地解释了“我们根本无法再访问该设备”。