rm 해당 파일이나 디렉터리가 없습니다

rm 해당 파일이나 디렉터리가 없습니다

나는 여기서 무슨 일이 일어나고 있는지 이해하지 못합니다.

# ls -la
ls: cannot access '1181781909'$'\016''2844_1.fresh:2,': No such file or directory
total 124
drwx------ 2 s2 s2 122880 Jan 31 20:57  .
drwx------ 3 s2 s2   4096 Jan 31 20:57  ..
-????????? ? ?  ?       ?            ? '1181781909'$'\016''2844_1.fresh:2,'
# rm 1181781909^N2844_1.fresh\:2\, 
rm: cannot remove '1181781909'$'\016''2844_1.fresh:2,': No such file or directory
# 

파일이 있지만 권한도 없고 크기도 없으며 rm이 이를 계산할 수 없습니다. 이 문제의 원인은 무엇이며 이 파일을 삭제하는 방법은 무엇입니까?

편집: 파일 시스템을 마운트 해제하고 fscking을 시도했지만 여전히 동일한 결과가 나타납니다.

# fsck /dev/sdb1 
fsck from util-linux 2.31.1
e2fsck 1.44.1 (24-Mar-2018)
/dev/sdb1: clean, 50903473/61054976 files, 167306276/244190390 blocks
# mount ...
# cd ....
# ls -la
ls: cannot access '1181781909'$'\016''2844_1.fresh:2,': No such file or directory
total 124
drwx------ 2 s2 s2 122880 Jan 31 20:57  .
drwx------ 3 s2 s2   4096 Jan 31 20:57  ..
-????????? ? ?  ?       ?            ? '1181781909'$'\016''2844_1.fresh:2,'
#

편집 2: 이것은 USB 드라이브이며 분명히 잘못된 점은 없습니다 dmesg. 시도한 umount다음 플러그를 뽑았다가 다시 연결했습니다. 모든 것이 괜찮아 보이지만 파일은 아직 거기에 있지만 그럴 수 없습니다 rm.

[1228890.560683] usb 2-2: new SuperSpeed USB device number 3 using xhci_hcd
[1228890.581493] usb 2-2: New USB device found, idVendor=0480, idProduct=a200
[1228890.581498] usb 2-2: New USB device strings: Mfr=2, Product=3, SerialNumber=1
[1228890.581502] usb 2-2: Product: External USB 3.0
[1228890.581506] usb 2-2: Manufacturer: TOSHIBA
[1228890.581509] usb 2-2: SerialNumber: 20170219005804F
[1228890.582340] usb-storage 2-2:1.0: USB Mass Storage device detected
[1228890.582679] scsi host6: usb-storage 2-2:1.0
[1228891.602341] scsi 6:0:0:0: Direct-Access     TOSHIBA  External USB 3.0 0    PQ: 0 ANSI: 6
[1228891.603059] sd 6:0:0:0: Attached scsi generic sg1 type 0
[1228894.192062] sd 6:0:0:0: [sdb] 1953525168 512-byte logical blocks: (1.00 TB/932 GiB)
[1228894.192283] sd 6:0:0:0: [sdb] Write Protect is off
[1228894.192288] sd 6:0:0:0: [sdb] Mode Sense: 43 00 00 00
[1228894.192501] sd 6:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[1228894.202195]  sdb: sdb1
[1228894.203659] sd 6:0:0:0: [sdb] Attached SCSI disk
[1228895.097777] EXT4-fs (sdb1): mounted filesystem with ordered data mode. Opts: (null)

편집 3: 내가 수행한 fsck에서 플래그가 누락되었습니다 -f. fsck -f문제를 해결했습니다.

# fsck -f /dev/sdb1
fsck from util-linux 2.31.1
e2fsck 1.44.1 (24-Mar-2018)
Pass 1: Checking inodes, blocks, and sizes
Inode 1594688 extent tree (at level 2) could be narrower.  Fix<y>? yes
Inode 10620301 extent tree (at level 2) could be narrower.  Fix<y>? yes
Inode 37521525 extent tree (at level 2) could be narrower.  Fix<y>? yes
Inode 38541378 extent tree (at level 2) could be narrower.  Fix<y>? yes
Inode 38541380 extent tree (at level 2) could be narrower.  Fix<y>? yes
Inode 53190555 extent tree (at level 2) could be narrower.  Fix<y>? yes
Pass 1E: Optimizing extent trees
Pass 2: Checking directory structure
Problem in HTREE directory inode 43408878: block #10 has bad max hash
Invalid HTREE directory inode 43408878 (x).  Clear HTree index<y>? yes
Pass 3: Checking directory connectivity
Pass 3A: Optimizing directories
Pass 4: Checking reference counts
Pass 5: Checking group summary information

/dev/sdb1: ***** FILE SYSTEM WAS MODIFIED *****
/dev/sdb1: 50903473/61054976 files (0.4% non-contiguous), 167306211/244190390 blocks
#

답변1

파일 시스템에 결함이 있는 것 같습니다. 이유는 다음과 같습니다.

  • RAM 오류(가능성이 낮음, ECC RAM인 경우 가능성이 매우 낮음)
  • 캐시가 플러시되기 전에 정전이나 USB 연결이 끊어져 디스크 버퍼가 플러시되지 않았습니다(아마도).
  • 디스크 오류(대부분)
  • 파일 시스템 코드의 버그(잘 테스트된 파일 시스템인 경우 가능성이 낮음)

umount파일 시스템을 확인하고 실행해야 합니다 fsck -f(시스템이 깨끗해 보이더라도 fsck 강제 실행) badblocks,, memtest86.

관련 정보