이전 7z 아카이브를 이전 ext4 파티션에서 현재 파티션으로 이동하려고 하는데 프로세스 중에 무작위로 취소되는 것 같습니다. 새 위치에는 불완전한 아카이브(읽을 수 없음)가 있을 뿐만 아니라 이전 위치에도 파일이 있습니다 7z.part
. 어떻게든 이동 과정을 계속할 수 있나요? 단순히 파일탐색기의 UI만으로는 알 수 없는 것 같은데, 터미널 명령어가 있을지 궁금합니다.
이전 디렉토리에서 사용하면 ls
이전 7z 파일이 표시되지만 이름이 빨간색으로 표시되고 ls에서는 파일을 읽을 수 없다고 주장합니다(I/O 오류). 새 디렉터리에서 사용하면 빨간색으로 표시되지만 동일한 오류는 발생하지 않습니다.
이전 디렉터리는 ~/Documents/Archive/backup입니다(이전 Linux 설치에서 가져온 것이므로 다른 파티션에 있음).
[frontear@frontear-net backup]$ ls
ls: cannot access 'OneDrive.7z': Input/output error
OneDrive.7z OneDrive.7z.part
ls
OneDrive.7z가 여기에 있다는 주장 에도 불구하고 숨겨진 파일이 활성화된 경우에도 파일 탐색기를 통해 실제로 표시되지 않습니다.
현재 디렉터리는 ~/Desktop/Archive/backup (현재 Linux 설치)입니다.
[frontear@frontear-net backup]$ ls
OneDrive.7z
두 명령 모두에서 OneDrive.7z는 빨간색입니다. 뭔가 의미가 있는 것 같습니다. 아마도 손상되었기 때문일 것입니다.
fsck
Manjaro Live ISO에서 실행하면 눈에 띄는 손상 징후가 나타나지 않습니다. /dev/sda2
현재 파티션 /dev/sda3
이지만 이전 파티션입니다.
[manjaro manjaro]$ sudo fsck /dev/sda2
fsck from util-linux 2.34
e2fsck 1.45.4 (23-Sep-2019)
/dev/sda2: clean, 738853/39223296 files, 76011466/156883968 blocks
[manjaro manjaro]# fsck /dev/sda3
fsck from util-linux 2.34
e2fsck 1.45.4 (23-Sep-2019)
Superblock last write time is in the future.
(by less than a day, probably due to the hardware clock being incorrectly set)
/dev/sda3: clean, 4362438/9715712 files, 18432430/38835968 blocks
편집자: fsck
Timothy Baldwin의 요청에 따라 업데이트됨:
[manjaro manjaro]# fsck -f /dev/sda2
fsck from util-linux 2.34
e2fsck 1.45.4 (23-Sep-2019)
Pass 1: Checking inodes, blocks, and sizes
Inode 19400943 extent tree (at level 2) could be narrower. Optimize<y>? yes
Pass 1E: Optimizing extent trees
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sda2: ***** FILE SYSTEM WAS MODIFIED *****
/dev/sda2: 757397/39223296 files (0.5% non-contiguous), 80084462/156883968 blocks
[manjaro manjaro]# fsck -f /dev/sda3
fsck from util-linux 2.34
e2fsck 1.45.4 (23-Sep-2019)
Superblock last mount time is in the future.
(by less than a day, probably due to the hardware clock being incorrectly set)
Superblock last write time is in the future.
(by less than a day, probably due to the hardware clock being incorrectly set)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sda3: 4362438/9715712 files (0.1% non-contiguous), 18432430/38835968 blocks
편집 2: 업데이트 ls
됨 ls -l
:
[frontear@frontear-net ~]$ cd ~/Documents/Archive/backup/
[frontear@frontear-net backup]$ ls -l
ls: cannot access 'OneDrive.7z': Input/output error
total 2168832
-????????? ? ? ? ? ? OneDrive.7z
-rw------- 1 frontear frontear 2220883968 Apr 30 06:46 OneDrive.7z.part
[frontear@frontear-net backup]$ cd ~/Desktop/Archive/backup/
[frontear@frontear-net backup]$ ls -l
total 2446952
-rw------- 1 frontear frontear 2220883968 Apr 29 23:13 OneDrive.7z
편집 3: smartctl
확인을 추가했습니다.
[manjaro@manjaro ~]$ sudo smartctl -a /dev/sda | sed -n '/Threshold/,/^$/p'
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x000b 100 100 016 Pre-fail Always - 0
2 Throughput_Performance 0x0004 142 142 000 Old_age Offline - 70
3 Spin_Up_Time 0x0007 128 128 024 Pre-fail Always - 177 (Average 180)
4 Start_Stop_Count 0x0012 100 100 000 Old_age Always - 2450
5 Reallocated_Sector_Ct 0x0033 100 100 005 Pre-fail Always - 0
7 Seek_Error_Rate 0x000a 100 100 000 Old_age Always - 0
8 Seek_Time_Performance 0x0004 118 118 000 Old_age Offline - 33
9 Power_On_Hours 0x0012 097 097 000 Old_age Always - 23216
10 Spin_Retry_Count 0x0012 100 100 000 Old_age Always - 0
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 2388
192 Power-Off_Retract_Count 0x0032 098 098 000 Old_age Always - 2461
193 Load_Cycle_Count 0x0012 098 098 000 Old_age Always - 2461
194 Temperature_Celsius 0x0002 119 119 000 Old_age Always - 46 (Min/Max 20/53)
196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always - 0
197 Current_Pending_Sector 0x0022 100 100 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0008 100 100 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x000a 200 200 000 Old_age Always - 0
240 Head_Flying_Hours 0x0012 097 097 000 Old_age Always - 23203
241 Total_LBAs_Written 0x0012 100 100 000 Old_age Always - 171426971200
242 Total_LBAs_Read 0x0012 100 100 000 Old_age Always - 228792438899
편집 4: badblocks
확인
[manjaro@manjaro ~]$ sudo badblocks -sv /dev/sda
Checking blocks 0 to 976762583
Checking for bad blocks (read-only test): done
Pass completed, 0 bad blocks found. (0/0/0 errors)
답변1
나는 (귀하의 dmesg에 근거하여) 무슨 일이 일어나고 있는지 예감이 있다고 생각합니다.
이동 중에 일어나는 일은 이동 중에 돌고래가 충돌한다는 것입니다.
Apr 29 23:14:28 frontear-net kernel: dolphin D 0 567940 1 0x00004084 Apr 29 23:14:28 frontear-net kernel: Call Trace: ...
이미 필수 파일 시스템 중 일부를 사용하고 있습니다.퓨즈NTFS 등과 같습니다. 이로 인해 교착 상태가 발생할 수 있습니다(버퍼 오버플로 또는 이와 유사한 것으로 추측됨).
원본이 손상된 경우 사용 중인 Dolphin, FUSE 또는 NTFS-3g 드라이버에 심각한 버그가 있는 것입니다.
이제 원래 질문에 답해 보겠습니다.
호기심에 다음을 실행할 수 있습니다:
sudo chmod -R g+x ~/Documents/Archive/backup
? 나는 무슨 일이 일어날지 알고 싶습니다.
나열하려는 파일이 손상된 것 같습니다. 이로 인해 다음 오류가 발생합니다 ls: cannot access 'OneDrive.7z': Input/output error
. (당신이 취한 조치로 볼 때, 당신의 하드웨어는 괜찮은 것 같습니다). 파일 시스템(저널?)이 손상된 것 같습니다. 고치려고 하기 전에 나는추천예를 들어 ddrescue를 통해 디스크 이미지를 생성합니다.
(노트:이 작업을 수행할 때 fsck
파일 시스템을 (ed)해야 한다는 점을 잊지 마세요 umount
! )
귀하의 질문에 대답하자면, 복사 과정을 계속할 수 있습니까?
아니요, 작업에 잘못된 도구를 사용하고 있기 때문입니다.
당신은 사용해야합니다동기화또는 이와 유사한 도구를 사용하여 원본 파일의 올바른 복사본을 확보할 수 있습니다.
불량 7z 파일을 복구하는 방법은 무엇입니까?
가장 좋은 방법은 다음 지침을 따르는 것입니다.손상된 7z 아카이브를 복구하는 방법7-zip.org에서.
다음엔 뭘 더 잘하면 좋을까요?
1) 사용동기화복사, 이동 및 기타 중요한 파일에 사용됩니다.
2) 큰 파일을 작은 파일로 분할
3) 압축 시 복구 정보 사용 - 7zip에서는 복구 정보 추가를 지원하지 않지만, par1.0/par2.0 형식으로 추가할 수 있습니다. (리눅스용par2cmdline또는 그래픽 사용자 인터페이스KDE용 단순 Par2, Windows의 경우 다음을 사용할 수 있습니다.많은 파티또는Github의 MultiPar;빠른 파).
4) 저장의 경우 zfs(ECC RAM 포함)와 같은 고급 파일 시스템을 사용하여 데이터 무결성을 향상시킵니다.