USB3.0을 통해 새로 구입한 NTFS로 포맷된 4TB 외장 Seagate 확장 휴대용 하드 드라이브에 데이터(230GB, 160,000개 파일)를 백업하려고 합니다. 저는 Ubuntu 18.04.3 LTS를 실행하고 있습니다.
처음에는 터미널에서 간단한 cp 명령을 사용해 보았으나 복사가 몇 퍼센트만 진행된 후에도 복사가 끊기고 느려지기 시작했습니다. 잠시 후 디스크가 응답하지 않게 됩니다. 디스크를 다시 마운트해도 아무런 효과가 없습니다. 디스크를 다른 컴퓨터에 연결하려고 시도했지만 처음에는 마운트할 수 없었고 몇 번 시도한 후에는 마운트할 수 있었지만 읽기/쓰기가 매우 느렸습니다.
cp가 실패하기 시작하면 dmesg에서 다음 오류가 발생합니다(이 모든 메시지는 여러 번 반복되지만 숫자는 다릅니다).
[67598.098118] sd 4:0:0:0: [sdb] tag#18 uas_zap_pending 0 uas-tag 19 inflight: CMD
[67598.098122] sd 4:0:0:0: [sdb] tag#18 CDB: Write(16) 8a 00 00 00 00 01 1c 75 24 18 00 00 04 00 00 00
[67598.225621] usb 1-9: reset high-speed USB device number 5 using xhci_hcd
[67598.378202] scsi host4: uas_eh_device_reset_handler success
[67598.378466] sd 4:0:0:0: [sdb] tag#14 FAILED Result: hostbyte=DID_RESET driverbyte=DRIVER_OK
[67598.378468] sd 4:0:0:0: [sdb] tag#14 CDB: Write(16) 8a 00 00 00 00 01 1c 74 d0 18 00 00 04 00 00 00
[67598.378470] blk_update_request: I/O error, dev sdb, sector 4772384792 op 0x1:(WRITE) flags 0x104000 phys_seg 128 prio class 0
[67598.378473] buffer_io_error: 246 callbacks suppressed
[67598.378474] Buffer I/O error on dev sdb2, logical block 596515075, lost async page write
[67635.212662] scsi host4: uas_eh_device_reset_handler start
[67635.213657] sd 4:0:0:0: [sdb] tag#28 uas_zap_pending 0 uas-tag 10 inflight: CMD
[67635.213658] sd 4:0:0:0: [sdb] tag#28 CDB: Write(16) 8a 00 00 00 00 01 1c 75 e8 18 00 00 04 00 00 00
[67635.340988] usb 1-9: reset high-speed USB device number 5 using xhci_hcd
[67635.490335] scsi host4: uas_eh_device_reset_handler success
일주일 동안 디스크를 방치한 후 Seagate Bootable Tool을 사용하여 SMART 스캔을 실행했는데 아무런 문제도 나타나지 않았습니다.
그래서 다시 데이터를 복사해 보았습니다. 이제 디스크가 올바르게 마운트되었으며 문제 없이 읽고 쓸 수 있으므로 rsync 명령을 시작했습니다. 내가 먼저 그랬어
rsync -avh source dest
속도는 느리지만 데이터의 20% 정도만 전송되다가 버벅이기 시작해서 전송을 중단했습니다. 다음을 사용하여 전송을 다시 시작합니다.
rsync -avhW source dest --inplace
더 빠르게 만들어 보세요. 잘 실행되고 첫 번째 시도보다 훨씬 빠르지만 몇 분 후에 오류가 발생합니다.
rsync: recv_generator: failed to stat "..." : Input/output error (5)
rsync: write failed on "...": Input/output error (5)
rsync error: error in file IO (code 11) at receiver.c(393) [receiver=3.1.2]
dmesg에는 다음이 표시됩니다.
[ 6772.890553] buffer_io_error: 1092735 callbacks suppressed
[ 6772.890556] Buffer I/O error on dev sdb2, logical block 874428, async page read
이런 일이 발생하면 디스크가 응답하지 않게 됩니다. 몇 분 후에 다시 설치할 수 있었고 첫 번째 rsync 시도 중에 올바르게 복사된 파일을 포함하여 데이터를 복사한 폴더가 완전히 비어 있는지 확인할 수 있었습니다. 데이터가 아직 손상되지 않았는지 확인하기 위해 데이터 복구를 시도하지 않았습니다. 단지 파일 테이블이 손상된 것 같습니다.
실패 시 복사된 파일은 .mat.gz 유형이며 각각 크기는 약 1MB입니다.
그런데 최근 이 컴퓨터에 소량의 데이터를 복사하는 동안 오래된 Seagate 외장 하드 드라이브가 죽었는데(악명 높은 데스 클릭...) 그것이 나의 첫 번째 하드 드라이브가 죽었습니다.
데이터가 복사되는 방식에 문제가 있는 경우(데이터를 복사하면 디스크가 손상됩니까?), 하드웨어(컴퓨터, HDD, USB-SATA 변환기 등)에 문제가 있는 경우 또는 Ubuntu와 관련된 경우. .보통 만자로만 실행하고 있는데 그런 문제는 한번도 겪어보지 못했습니다.
답변1
도움을 주셔서 감사합니다.
이제 이 문제를 해결했습니다. 드라이브를 ext4로 다시 포맷한 후 다음 명령을 사용했습니다.
rsync -avhW source dest --inplace --exclude=".*/"
어디
-a is for archive, which preserves ownership, permissions etc.
-v is for verbose, to see what is happening
-h is for human-readable, so the transfer rate and file sizes are easier to read
-W is for copying whole files only, without delta-xfer algorithm which should reduce CPU load
--inplace tells rsync to not create a temporary copy of the file to be transferred, which is then copied to the destination. This should speed up the process.
--exclude=".*/" is for excluding all hidden folders
392GB의 평균 데이터 전송률은 81.3MB/s로, 이는 드라이브를 다시 포맷하기 전보다 훨씬 빠른 속도입니다.
이번에는 dmesg에 오류가 없습니다.
공장에서 제공된 특정 NTFS 파티션에 문제가 있는지 또는 NTFS 자체가 문제를 일으키는지 확인하기 위해 드라이브에 새 NTFS 파티션을 생성하려고 시도하지 않았습니다. 불행하게도 이는 문제가 무엇인지에 대한 완전한 답을 갖고 있지 않다는 것을 의미합니다. 또한 시간 초과 임계값을 늘리는 시도는 하지 않았지만 이번에는 더 빠른 데이터 속도를 고려할 때 시간 초과 임계값을 늘리는 것이 해결책이라기보다 기껏해야 해결 방법이라고 말하고 싶습니다.