RAID1 구성에 2개의 3TB WD Red NAS 드라이브가 있는 QNAP HS-251+ NAS가 있습니다. 저는 Linux 및 CLI 도구에 매우 익숙하지만 mdadm 또는 LVM을 사용한 적이 없습니다. 따라서 QNAP가 이를 사용한다는 것을 (지금은) 알고 있지만 QNAP가 RAID1 조합을 생성하는 방법에 대한 전문 지식이나 아이디어조차 없습니다. . 몇 주 전, 펌웨어 업데이트 중에 NAS가 부팅을 중단했습니다. 이 문제를 해결하기 위해 노력하고 있지만 디스크를 NAS에 다시 연결하기 전에 데이터를 복구하고 싶습니다(QNAP HelpDesk는 기본적으로 쓸모가 없습니다).
디스크 중 하나를 내 노트북(Kubuntu)에 연결하기만 하면 파티션을 쉽게 마운트할 수 있기를 바랐지만 상황이 그보다 더 복잡하다는 것을 알게 되었습니다.
제가 추출한 관련 정보는 다음과 같습니다.
xabi@XV-XPS15:~$ sudo dmesg
[...]
[17272.730964] usb 3-1: new high-speed USB device number 3 using xhci_hcd
[17272.884120] usb 3-1: New USB device found, idVendor=059b, idProduct=0475, bcdDevice= 0.00
[17272.884138] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=5
[17272.884144] usb 3-1: Product: USB to ATA/ATAPI Bridge
[17272.884149] usb 3-1: Manufacturer: JMicron
[17272.884153] usb 3-1: SerialNumber: DCC4108FFFFF
[17272.891498] usb-storage 3-1:1.0: USB Mass Storage device detected
[17272.892117] scsi host6: usb-storage 3-1:1.0
[17273.907765] scsi 6:0:0:0: Direct-Access WDC WD30 EFRX-68EUZN0 PQ: 0 ANSI: 2 CCS
[17273.908085] sd 6:0:0:0: Attached scsi generic sg2 type 0
[17273.908261] sd 6:0:0:0: [sdc] 1565565872 512-byte logical blocks: (802 GB/747 GiB)
[17273.909041] sd 6:0:0:0: [sdc] Write Protect is off
[17273.909046] sd 6:0:0:0: [sdc] Mode Sense: 34 00 00 00
[17273.909789] sd 6:0:0:0: [sdc] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[17273.976961] sd 6:0:0:0: [sdc] Attached SCSI disk
xabi@XV-XPS15:~$
xabi@XV-XPS15:~$ sudo fdisk -l /dev/sdc
Disk /dev/sdc: 746,52 GiB, 801569726464 bytes, 1565565872 sectors
Disk model: EFRX-68EUZN0
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000
Dispositivo Boot Start End Sectors Size Id Tipo
/dev/sdc1 1 4294967295 4294967295 2T ee GPT
xabi@XV-XPS15:~$ sudo mount /dev/sdc1 /mnt/
mount: /mnt: special device /dev/sdc1 does not exist.
xabi@XV-XPS15:~$
xabi@XV-XPS15:~$ sudo parted -l
[...]
Error: Invalid argument during seek for read on /dev/sdc
Retry/Ignore/Cancel? i
Error: The backup GPT table is corrupt, but the primary appears OK, so that will be used.
OK/Cancel? ok
Model: WDC WD30 EFRX-68EUZN0 (scsi)
Disk /dev/sdc: 802GB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:
xabi@XV-XPS15:~$
xabi@XV-XPS15:~$ sudo lsblk
[...]
sdc 8:32 0 746,5G 0 disk
xabi@XV-XPS15:~$
무료 버전의 상용 도구(UFS RAID 복구)를 사용하여 디스크 파티션에 대한 고급 정보를 얻었습니다.
lvm 백업 구성도 복원되었습니다.
# Generated by LVM2 version 2.02.138(2)-git (2015-12-14): Fri Feb 11 09:43:53 2022
contents = "Text Format Volume Group"
version = 1
description = "Created *after* executing '/sbin/vgchange vg288 --addtag cacheVersion:3'"
creation_host = "XV-NAS" # Linux XV-NAS 5.10.60-qnap #1 SMP Tue Dec 21 10:57:31 CST 2021 x86_64
creation_time = 1644569033 # Fri Feb 11 09:43:53 2022
vg288 {
id = "g0F3zh-N3aN-1vEQ-qYU4-6Jhv-xgLC-d4hU43"
seqno = 199
format = "lvm2" # informational
status = ["RESIZEABLE", "READ", "WRITE"]
flags = []
tags = ["PV:DRBD", "PoolType:Static", "StaticPoolRev:2", "cacheVersion:3"]
extent_size = 8192 # 4 Megabytes
max_lv = 0
max_pv = 0
metadata_copies = 0
physical_volumes {
pv0 {
id = "ZcFzMw-ZgzA-fOr0-FGgI-E3hc-uwKu-GzWSKn"
device = "/dev/drbd1" # Hint only
status = ["ALLOCATABLE"]
flags = []
dev_size = 5840621112 # 2.71975 Terabytes
pe_start = 2048
pe_count = 712966 # 2.71975 Terabytes
}
}
logical_volumes {
lv544 {
id = "NRzjb8-Dgw4-oHSj-rjtF-2e8H-KQZ2-YPRre3"
status = ["READ", "WRITE", "VISIBLE"]
flags = []
creation_host = "NAS0D80FB"
creation_time = 1494716166 # 2017-05-14 00:56:06 +0200
read_ahead = 8192
segment_count = 1
segment1 {
start_extent = 0
extent_count = 7129 # 27.8477 Gigabytes
type = "striped"
stripe_count = 1 # linear
stripes = [
"pv0", 0
]
}
}
lv1 {
id = "1ND0gN-Lcgx-ALcO-Ui17-hzzg-2soX-LGr1rl"
status = ["READ", "WRITE", "VISIBLE"]
flags = []
creation_host = "NAS0D80FB"
creation_time = 1494716174 # 2017-05-14 00:56:14 +0200
read_ahead = 8192
segment_count = 1
segment1 {
start_extent = 0
extent_count = 705837 # 2.69255 Terabytes
type = "striped"
stripe_count = 1 # linear
stripes = [
"pv0", 7129
]
}
}
}
}
그럼에도 불구하고 해당 볼륨(vg288-lv1)을 마운트할 수 없습니다. 내가 말했듯이, 나는 LVM을 처음 접했고 다른 게시물에서 본 것과 일부 불일치가 있습니다(sdc1 장치가 없고, parted가 파티션을 찾을 수 없고, 보고된 크기가 실제 크기와 일치하지 않습니다...). 어떻게 문제를 체계적으로 해결하기 시작하는지 모르겠습니다.
백업 구성을 템플릿으로 사용하여 lvm 볼륨을 복원하려고 시도했지만 실패했지만 앞서 말했듯이 내가 옳은 일을 하고 있는지 확신할 수 없어서 어디서부터 시작해야 할지에 대한 지침이 필요한 것 같습니다. 내 테스트 결과는 혼란만 가중시켰습니다. 감사해요.
고쳐 쓰다:
@user7138814가 제안한 것처럼 WD30EFRX는 4k(물리적) 섹터를 의미하는 "고급 포맷" 디스크로 보이며 일부 SATA-USB 어댑터는 이를 지원하지 않습니다. 내 것은 오래되어서 새 것을 샀고 이상한 불일치가 모두 사라졌습니다.
# dmesg
[...]
[74820.751587] usb 4-1: new SuperSpeed USB device number 4 using xhci_hcd
[74820.779219] usb 4-1: New USB device found, idVendor=174c, idProduct=1153, bcdDevice= 1.00
[74820.779235] usb 4-1: New USB device strings: Mfr=2, Product=3, SerialNumber=1
[74820.779241] usb 4-1: Product: Ugreen Storage Device
[74820.779245] usb 4-1: Manufacturer: Ugreen
[74820.779249] usb 4-1: SerialNumber: 26A1EE833D7E
[74820.787123] scsi host7: uas
[74820.788495] scsi 7:0:0:0: Direct-Access WDC WD30 EFRX-68EUZN0 0 PQ: 0 ANSI: 6
[74820.789417] sd 7:0:0:0: Attached scsi generic sg2 type 0
[74820.789908] sd 7:0:0:0: [sdd] 5860533168 512-byte logical blocks: (3.00 TB/2.73 TiB)
[74820.789918] sd 7:0:0:0: [sdd] 4096-byte physical blocks
[74820.790061] sd 7:0:0:0: [sdd] Write Protect is off
[74820.790067] sd 7:0:0:0: [sdd] Mode Sense: 43 00 00 00
[74820.790252] sd 7:0:0:0: [sdd] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[74820.790688] sd 7:0:0:0: [sdd] Optimal transfer size 33553920 bytes not a multiple of physical block size (4096 bytes)
[74820.849288] sdd: sdd1 sdd2 sdd3 sdd4 sdd5
[74820.891810] sd 7:0:0:0: [sdd] Attached SCSI disk
# fdisk -l /dev/sdd
Disk /dev/sdd: 2.73 TiB, 3000592982016 bytes, 5860533168 sectors
Disk model: EFRX-68EUZN0
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: EA97E765-8FD0-4C41-8AEA-8B7570F42D68
Device Start End Sectors Size Type
/dev/sdd1 40 1060289 1060250 517.7M Microsoft basic data
/dev/sdd2 1060296 2120579 1060284 517.7M Microsoft basic data
/dev/sdd3 2120584 5842744109 5840623526 2.7T Microsoft basic data
/dev/sdd4 5842744112 5843804399 1060288 517.7M Microsoft basic data
/dev/sdd5 5843804408 5860511999 16707592 8G Microsoft basic data
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
[...]
sdd 8:48 0 2.7T 0 disk
|-sdd1 8:49 0 517.7M 0 part
|-sdd2 8:50 0 517.7M 0 part
|-sdd3 8:51 0 2.7T 0 part
|-sdd4 8:52 0 517.7M 0 part
`-sdd5 8:53 0 8G 0 part
해결책
대략적으로 다음 지침을 따르세요.https://forum.qnap.com/viewtopic.php?t=156819, 파티션을 성공적으로 마운트하고 데이터를 복구했습니다. 내가 따라온 단계는 다음과 같습니다.
mdadm이 디스크를 확인하도록 강제하려면:
# mdadm --examine --scan
ARRAY /dev/md/9 metadata=1.0 UUID=2b29da4f:f725eb04:e2ac3e60:37023bbd name=9
ARRAY /dev/md/256 metadata=1.0 UUID=ed18a26a:4e9ca5f1:aca74d2f:99cb409b name=256
ARRAY /dev/md/1 metadata=1.0 UUID=111bee9e:d34c75c0:87822b63:fbcd271d name=1
ARRAY /dev/md/13 metadata=1.0 UUID=d410ebe5:a4158d63:08559db0:795abb11 name=13
ARRAY /dev/md/322 metadata=1.0 UUID=4bd0cd6d:fcc98341:329fab8c:a32f5495 name=322
RAID 어레이가 인식되는지 확인하십시오.
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
[...]
sdd 8:48 0 2.7T 0 disk
|-sdd1 8:49 0 517.7M 0 part
|-sdd2 8:50 0 517.7M 0 part
|-sdd3 8:51 0 2.7T 0 part
| `-md127 9:127 0 2.7T 0 raid1
|-sdd4 8:52 0 517.7M 0 part
`-sdd5 8:53 0 8G 0 part
# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md127 : active (auto-read-only) raid1 sdd3[1]
2920311616 blocks super 1.0 [2/1] [_U]
md123 : inactive sdc1[1]
530108 blocks super 1.0
md124 : inactive sdc5[1]
8353780 blocks super 1.0
md125 : inactive sdc2[1]
530124 blocks super 1.0
md126 : inactive sdc4[1]
530128 blocks super 1.0
unused devices: <none>
물리적 볼륨을 식별합니다. 경고를 무시하십시오.
# pvdisplay
WARNING: PV /dev/md127 in VG vg288 is using an old PV header, modify the VG to update.
--- Physical volume ---
PV Name /dev/md127
VG Name vg288
PV Size <2.72 TiB / not usable <1.78 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 712966
Free PE 0
Allocated PE 712966
PV UUID ZcFzMw-ZgzA-fOr0-FGgI-E3hc-uwKu-GzWSKn
볼륨 그룹을 식별합니다.
# vgdisplay vg288
WARNING: PV /dev/md127 in VG vg288 is using an old PV header, modify the VG to update.
--- Volume group ---
VG Name vg288
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 199
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size <2.72 TiB
PE Size 4.00 MiB
Total PE 712966
Alloc PE / Size 712966 / <2.72 TiB
Free PE / Size 0 / 0
VG UUID g0F3zh-N3aN-1vEQ-qYU4-6Jhv-xgLC-d4hU43
논리 볼륨을 식별합니다.
# lvdisplay
WARNING: PV /dev/md127 in VG vg288 is using an old PV header, modify the VG to update.
--- Logical volume ---
LV Path /dev/vg288/lv544
LV Name lv544
VG Name vg288
LV UUID NRzjb8-Dgw4-oHSj-rjtF-2e8H-KQZ2-YPRre3
LV Write Access read/write
LV Creation host, time NAS0D80FB, 2017-05-14 00:56:06 +0200
LV Status NOT available
LV Size <27.85 GiB
Current LE 7129
Segments 1
Allocation inherit
Read ahead sectors 8192
--- Logical volume ---
LV Path /dev/vg288/lv1
LV Name lv1
VG Name vg288
LV UUID 1ND0gN-Lcgx-ALcO-Ui17-hzzg-2soX-LGr1rl
LV Write Access read/write
LV Creation host, time NAS0D80FB, 2017-05-14 00:56:14 +0200
LV Status NOT available
LV Size 2.69 TiB
Current LE 705837
Segments 1
Allocation inherit
Read ahead sectors 8192
원하는 볼륨을 활성화합니다.
# lvchange -ay /dev/vg288/lv1
WARNING: PV /dev/md127 in VG vg288 is using an old PV header, modify the VG to update.
설치하고 액세스 가능한지 확인하십시오.
# mount -t ext4 -o ro /dev/vg288/lv1 /mnt
# ls /mnt
Container Multimedia Public Web core-hal_callhome_co core-hal_lvm_check hal_daemon_seg_fault.log lost+found
Download Musica Samples aquota.user core-hal_daemon core-hal_netlink homes qsync-homes
Imaxes Pelis Series aquota.user.new core-hal_enc_reset hal_daemon_fail.log htdocs