有人递给我一个驱动器,它曾经是 RAID 1(镜像)阵列的一部分。该驱动器显然有 LVM(1?)和 EXT3(我相信)。我可以采取哪些步骤来重新获得对此驱动器的访问权限?
附加信息:
- 该驱动器是来自大约 Fedora 6 系统的 RAID 阵列,因此我假设它处于仍在使用 LVM1 和 EXT3 的时代。
- 我的RAID只有1/2。
驱动器基于 USB。我当前的 Fedodra 14 系统能够很好地识别驱动器 (/dev/sdb1),并且我可以运行以下命令:
$ mdadm -A --force /dev/md2 /dev/sde1 $ mdadm --detail /dev/md2
第一个似乎已将阵列设备添加到我的系统中,因为我可以成功运行第二个命令,该命令显示阵列是干净的,但处于降级状态(如预期)。
$ mdadm --detail /dev/md2 /dev/md2: Version : 0.90 Creation Time : Mon Jan 15 15:20:44 2007 Raid Level : raid1 Array Size : 156288256 (149.05 GiB 160.04 GB) Used Dev Size : 156288256 (149.05 GiB 160.04 GB) Raid Devices : 2 Total Devices : 1 Preferred Minor : 2 Persistence : Superblock is persistent Update Time : Fri Sep 27 16:50:13 2013 State : clean, degraded Active Devices : 1 Working Devices : 1 Failed Devices : 0 Spare Devices : 0 UUID : 0266bb35:6fcac8b4:12f56e39:0f78dafb Events : 0.19624 Number Major Minor RaidDevice State 0 8 65 0 active sync /dev/sde1 1 0 0 1 removed
当我尝试恢复 LVM 部分时,我遇到了困难。
编辑#1:后续问题
该命令会
file -s /dev/{sde1,md2}
产生什么结果?$ file -s /dev/{sde1,md2} /dev/sde1: LVM2 (Linux Logical Volume Manager) , UUID: ZK8IfBzUHPH5befvm5CZ81oIXHm11TG /dev/md2: LVM2 (Linux Logical Volume Manager) , UUID: ZK8IfBzUHPH5befvm5CZ81oIXHm11TG
该命令会
vgscan
产生什么结果?$ vgscan Reading all physical volumes. This may take a while... Found volume group "kodak_vg" using metadata type lvm2
是否有物理 LVM 卷
/dev/md2
?是的,RAID 阵列 /dev/md2 上有一个物理 LVM 卷。
产生什么
pvs
结果?$ pvs PV VG Fmt Attr PSize PFree /dev/md2 kodak_vg lvm2 a-- 149.00G 0
是否存在加密分区或 DOS 分区表?
不,绝对也没有。这是一个基本的软件 RAID (md raid1) -> LVM -> EXT3。
编辑#2
此时,RAID 似乎完好无损,但不存在 LVM 设备映射器,逻辑卷 (LV) 似乎也处于非活动状态。
$ lvscan
inactive '/dev/kodak_vg/lvm0' [149.00 GB] inherit
所以我运行这个命令来激活它:
$ vgchange -ay
1 logical volume(s) in volume group "kodak_vg" now active
重新运行lvscan
显示 LV 现在处于活动状态:
$ lvscan
ACTIVE '/dev/kodak_vg/lvm0' [149.00 GB] inherit
安装
所以此时我认为安装 LVM 映射器就可以了/dev/kodak_vg/lvm0
。
$ mount -t ext3 /dev/kodak_vg/lvm0 /mnt
mount: wrong fs type, bad option, bad superblock on /dev/kodak_vg/lvm0,
missing codepage or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
这是以下的输出dmesg | tail
:
$ demsg | tail
Buffer I/O error on device md2, logical block 48
usb 1-4: reset high speed USB device using ehci_hcd and address 5
usb 1-4: reset high speed USB device using ehci_hcd and address 5
usb 1-4: reset high speed USB device using ehci_hcd and address 5
usb 1-4: reset high speed USB device using ehci_hcd and address 5
usb 1-4: reset high speed USB device using ehci_hcd and address 5
sd 22:0:0:0: scsi: Device offlined - not ready after error recovery
sd 22:0:0:0: SCSI error: return code = 0x07050000
end_request: I/O error, dev sde, sector 387
EXT3-fs: unable to read superblock
这是否意味着驱动器介质可能出现故障或已经发生故障?
编辑#3:后续问题
之前的安装尝试使设备处于无法访问的状态。我最初重新启动 USB 设备,然后重新检测为/dev/sdf1
.然后我重启了系统,但现在设备显示dmesg
为/dev/sdj1
.不知道如何将其移回原处,这真的很重要吗?
重复上述步骤,暂时替换/dev/sdj1
为/dev/sde1
继续。
此时,设备被报告lvscan
为“活动”,但我尚未尝试挂载 LVM 映射器。
该命令会
smartctl -x /dev/sdj
产生什么结果?该命令似乎无法正常工作:
$ smartctl -x /dev/sdj smartctl 5.42 2011-10-20 r3458 [i686-linux-2.6.18-238.19.1.el5.centos.plus] (local build) Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net /dev/sdj: Unknown USB bridge [0x0bc2:0x0503 (0x300)] Smartctl: please specify device type with the -d option. Use smartctl -h to get a usage summary
然而,该命令确实产生了一些附加信息:
$ smartctl -x /dev/sdj1 smartctl 5.42 2011-10-20 r3458 [i686-linux-2.6.18-238.19.1.el5.centos.plus] (local build) Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net Vendor: Seagate Product: External Drive User Capacity: 160,041,885,696 bytes [160 GB] Logical block size: 512 bytes Serial number: Device type: disk Local Time is: Sat Sep 28 07:58:50 2013 EDT Device does not support SMART Error Counter logging not supported Device does not support Self Test logging Device does not support Background scan results logging scsiPrintSasPhy Log Sense Failed [unsupported scsi opcode]
该命令会
file -s /dev/kodak_vg/lvm0
产生什么结果?$ file -s /dev/kodak_vg/lvm0 /dev/kodak_vg/lvm0: symbolic link to `/dev/mapper/kodak_vg-lvm0'
file -s
尝试针对映射器设备运行命令:$ file -s /dev/mapper/kodak_vg-lvm0 /dev/mapper/kodak_vg-lvm0: ERROR: cannot read `/dev/mapper/kodak_vg-lvm0' (Input/output error)
接下来是什么?
我将采纳 @Gilles 的建议并将
dd_rescue
驱动器转移到另一个设备上,看看我们是否无法将设备问题与 RAID/LVM 问题区分开来。在继续之前还有其他建议吗?