안녕하세요.
예전에 네이버 시놀로지포럼에 나스 하드 불량으로 인한 데이터
복구방법에 대해 자문자답으로 올린내용이 있었습니다.
현재까지도 상당수 분들께서 복구 방법에 대해 문의를 주시는데요
오래되어 기억이 가물가물 한지라 조금씩 짜집기 하여 이력남기기 및
공유하려 합니다.
◎ 난이도 : 중,하 정도인데 네이버 및 구글에 교차검색하시면 그나마 쉽게 따라 하실수 있습니다.
◎ 증상 : 볼륨 사라짐 증상으로 하드 탈실장(물리적) 또는 DSM 재설치 후에도 볼륨 복구 불가시 임시조치 방법
◎ 준비물 : 외장하드, 제어판 SSH 활성화
※다른 볼륨(하드)에 여유공간이 충분한 경우 불필요
볼륨이 사라지는 증상은 하드 노후 또는 불량으로 한두번 발생되기 시작하다 향후에는 아예 복구가 안되는 지경까지 왔습니다.
우분투 설치하여 해보았지만 재경우에는 파티션을 읽어 오는데 실패하였씁니다.
저는 메인 하드 불량으로 새로운 정상하드에 DSM을 설치하여 작업을 진행하였고 서브 하드 불량이면 재설치 없이 바로 진행하셔도 됩니다.
(sde 2TB 디스크가 불량이라고 가정하였음)
① SSH 접속(putty 사용함)
※ 로그인 및 관리자 권한 획득
login as: ****
****@***.***.***.***'s password: ********
~~~~~~~~~~~~~~
****@YS-MEDIA-NAS:/$ sudo -i
Password: ********
root@YS-MEDIA-NAS:~#
② fdisk -l , cat /proc/mdstat , ls /dev/sd* 영역 확인
※ 불량 하드 영역 확인(여기서 확인이 안되면 복구 불가/완전 사망)
나스에서는 볼륨 확인이 불가능하나 fdisk 명령어로 디바이스가 조회될시에는 복구 가능하는 말입니다.
root@YS-MEDIA-NAS:~# fdisk -l
Disk /dev/ram0: 640 MiB, 671088640 bytes, 1310720 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram1: 640 MiB, 671088640 bytes, 1310720 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram2: 640 MiB, 671088640 bytes, 1310720 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram3: 640 MiB, 671088640 bytes, 1310720 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram4: 640 MiB, 671088640 bytes, 1310720 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram5: 640 MiB, 671088640 bytes, 1310720 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram6: 640 MiB, 671088640 bytes, 1310720 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram7: 640 MiB, 671088640 bytes, 1310720 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram8: 640 MiB, 671088640 bytes, 1310720 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram9: 640 MiB, 671088640 bytes, 1310720 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram10: 640 MiB, 671088640 bytes, 1310720 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram11: 640 MiB, 671088640 bytes, 1310720 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram12: 640 MiB, 671088640 bytes, 1310720 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram13: 640 MiB, 671088640 bytes, 1310720 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram14: 640 MiB, 671088640 bytes, 1310720 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram15: 640 MiB, 671088640 bytes, 1310720 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
※ dev/ram 영역은 확인 불필요하여 제외 하시면 됩니다.
Disk /dev/sda: 7.3 TiB, 8001563222016 bytes, 15628053168 sectors
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: 547557CB-DF9C-49E4-B3C9-48C2360CC621
Device Start End Sectors Size Type
/dev/sda1 2048 4982527 4980480 2.4G Linux RAID
/dev/sda2 4982528 9176831 4194304 2G Linux RAID
/dev/sda3 9437184 15627848351 15618411168 7.3T Linux RAID
Disk /dev/sdb: 7.3 TiB, 8001563222016 bytes, 15628053168 sectors
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: 550F3085-59CC-47DB-94D3-C7E7238D9021
Device Start End Sectors Size Type
/dev/sdb1 2048 4982527 4980480 2.4G Linux RAID
/dev/sdb2 4982528 9176831 4194304 2G Linux RAID
/dev/sdb3 9437184 15627848351 15618411168 7.3T Linux RAID
Disk /dev/sdd: 7.3 TiB, 8001563222016 bytes, 15628053168 sectors
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: C474FD70-DAE0-4121-9E5B-B12BC00E4C9F
Device Start End Sectors Size Type
/dev/sdd1 2048 4982527 4980480 2.4G Linux RAID
/dev/sdd2 4982528 9176831 4194304 2G Linux RAID
/dev/sdd3 9437184 15627848351 15618411168 7.3T Linux RAID
Disk /dev/sde: 1.8 TiB, 326***09***41 bytes, 3907029168 sectors
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: dos
Disk identifier: 0xc095048f
Device Boot Start End Sectors Size Id Type
/dev/sde1 2048 4982527 4980480 2.4G fd Linux raid autodetect
/dev/sde2 4982528 9176831 4194304 2G fd Linux raid autodetect
/dev/sde3 9437184 3906824351 3897387168 1.8T fd Linux raid autodetect
Disk /dev/md0: 2.4 GiB, 2549940224 bytes, 4980352 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/md1: 2 GiB, 2147418112 bytes, 4194176 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/zram0: 1.2 GiB, 1248854016 bytes, 304896 sectors
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/zram1: 1.2 GiB, 1248854016 bytes, 304896 sectors
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/zram2: 1.2 GiB, 1248854016 bytes, 304896 sectors
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/zram3: 1.2 GiB, 1248854016 bytes, 304896 sectors
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
※ dev/zram 영역은 확인 불필요하여 제외 하시면 됩니다.
Disk /dev/md3: 7.3 TiB, 7996625453056 bytes, 15618409088 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/md5: 7.3 TiB, 7996625453056 bytes, 15618409088 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/md2: 7.3 TiB, 7996625453056 bytes, 15618409088 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/md4: 1.8 TiB, 1995461165056 bytes, 3897385088 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
root@YS-MEDIA-NAS:~#
root@YS-MEDIA-NAS:~# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
md4 : active raid1 sde3[0] <--- 하드가 불량일시에는 md4에 sde3이 액트브 되어있지 않겠죠!!
1948692544 blocks super 1.2 [1/1] [U]
md2 : active raid1 sdb3[0]
7809204544 blocks super 1.2 [1/1] [U]
md5 : active raid1 sdd3[0]
7809204544 blocks super 1.2 [1/1] [U]
md3 : active raid1 sda3[0]
7809204544 blocks super 1.2 [1/1] [U]
md1 : active raid1 sda2[0] sdb2[1] sdd2[4] sde2[3]
2097088 blocks [12/4] [UU_UU_______]
md0 : active raid1 sda1[2] sdb1[0] sdd1[4] sde1[3]
2490176 blocks [12/4] [U_UUU_______]
※ md0,md1 영역은 운영체제 공간임으로 확인할 필요가 없음
unused devices:
root@YS-MEDIA-NAS:~# ls /dev/sd*
/dev/sda /dev/sda3 /dev/sdb2 /dev/sdd1 /dev/sde /dev/sde3
/dev/sda1 /dev/sdb /dev/sdb3 /dev/sdd2 /dev/sde1
/dev/sda2 /dev/sdb1 /dev/sdd /dev/sdd3 /dev/sde2
※ ls /dev/sd* 명령어는 모든 하드 영역을 표기함
sda1,sda2,sda3 디바이스들이 sda 디스크 라고 표기되며
sdb1,sdb2,sdb3 디바이스들이 sdb 디스크 라고 표기됨
따라서 sda,sdb,sdd,sde 총 4개의 디스크가 있다는 뜻임
1,2 디바이스는 시놀로지 운영체제 및 swap사용 디바이스이며
3번이 주로 데이터 영역입니다. usb 외장하드인경우 주로 5번 이상 입니다.
예제로 sde 2TB 하드가 불량으로 가정함.(fdisk에서 용량 확인가능)
→ fdsik 및 /proc/mdstat 명령어로 하드 용량 추정하여 해당 디스크를 찾은 후
불량난 하드 또는 불량난하드를 외장하드에 연결하였을시 해당 디바이스를 찾습니다.
※ 추가 설명하자면 fdisk -l 명령어로 바로 찾으실수 있으나 조금 편리하게
찾기 위해 cat /proc/mdstat 명령어로 먼저 추정가능합니다.
가급적 작업하실때 같은 용량의 하드가 여러장 꽂혀 있다면 불필요 하드는
전원선을 빼서 제거 하시고 복구할 하드 불량하드 2개만 꽂아서 하시면
수월한 작업이 가능합니다.
③ 루트 폴더에서 새로운 폴더 생성 및 불량 하드(외장하드)마운트
root@YS-MEDIA-NAS:~# ls /
bin etc.defaults lib64 run usr volume3
boot exfat lost+found sbin var volume4
config initrd mnt sys var.defaults volumeUSB1
dev lib proc tmp volume1 volumeUSB2
etc lib32 root tmpRoot volume2
root@YS-MEDIA-NAS:~# mkdir /volume6
→ 우선 volume6 이라는 폴더를 생성하고 여기에 불량난 하드를 마운트 합니다.
※ 마운트할 하드를 정확이 찾았다면 해당 디스크를 바로 마운트 하시고 좀더 확인이 필요할시에는
mdadm --examine /dev/sde3 명령어로 세부 정보를 확인함
root@YS-MEDIA-NAS:~# mount /dev/md4 /volume6
→ /dev/md4 는 fdisk 또는 /proc/mdstat 에서 확인된 데이터 영역/dev/sde3 입니다.(가정)
→ 마운트 패일시 아래 계속 진행
root@YS-MEDIA-NAS:~# mdadm --examine /dev/sde3
/dev/sde3:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : 688072e4:bfd39f1c:30e4b2e8:d157cd51
Name : YS-MEDIA-NAS:4 (local to host YS-MEDIA-NAS)
Creation Time : Tue Sep 11 09:31:12 2018
Raid Level : raid1
Raid Devices : 1
Avail Dev Size : 3897385120 (1858.42 GiB 1995.46 GB)
Array Size : 1948692544 (1858.42 GiB 1995.46 GB)
Used Dev Size : 3897385088 (1858.42 GiB 1995.46 GB)
Data Offset : 2048 sectors
Super Offset : 8 sectors
Unused Space : before=1968 sectors, after=32 sectors
State : clean
Device UUID : 0e430c1e:0972e93f:0422ba01:90c06c04
Update Time : Thu May 2 10:31:17 2019
Checksum : b34dafa5 - correct
Events : 41
Device Role : Active device 0
Array State : A ('A' == active, '.' == missing, 'R' == replacing)
root@YS-MEDIA-NAS:~# mdadm --assemble --force /dev/md4 /dev/sde3
→ 확인된 불량 하드의 데이터영역sde3를 md4에 연결(fdisk 확인)
④ 볼륨확인 및 마운트(위에서 마운트 패일발생시 계속 진행)
root@YS-MEDIA-NAS:~# pvs /dev/md4
PV VG Fmt Attr PSize PFree
/dev/md4 vg1000 lvm2 a-- 1.8t 0
→ md4 볼륨명은 vg1000 임.. 대부분 해당 볼륨명으로 명기됨
root@YS-MEDIA-NAS:~# vgchange vg1000 -ay
1 logical volume(s) in volume group "vg1000" now active
→ sde3 > md4 > vg1000 확인된 볼륨을 활성화 시킴
root@YS-MEDIA-NAS:~# mount /dev/vg1000/lv /volume6
→ 루트 폴더에 생성한 volume6 폴더에 마운트 시킴
⑤ 마지막... 데이터 카피(복구)
root@YS-MEDIA-NAS:~# scp -rv /volume6 /volume1
→ 마운트 된 불량하드(volume6) 데이터를 복사할 하드(volume1)에 전체 카피함
대충 여기까지 입니다.
다른 분들이 보내주신 자료등으로 짜집기 하였으며 해당 컴퓨터 사양 및 레이드 유형에따라 디바이스 및 볼륨 정보등이 다를수 있으니 참고 하시면 되겠습니다.
현재 모든 하드디스크가 신품으로 교체되어 불량 환경에서는 테스트 할수 없었습니다.
제 방법으로 무조건 복구 된다는 것은 아닙니다. 하드디스크가 물리적으로 사망시에는 불가능합니다.
º¹±¸Ãµ»ç ½ºÄµµ¹¸®´Ï Æú´õ´Â º¸¿©¼¿ä..