btrfs 파일 시스템을 사용하여 외부 SSD를 포맷했으며 루트 사용자이든 유일한 다른 사용자이든 상관없이 읽고 쓸 수 있습니다. Pop OS는 SSD를 제거하는 방식을 좋아하지 않고 종료할 때 화면에 빨간색 오류가 표시되는 것 같습니다. 이후 SSD 드라이브(sda1)는 읽기 전용이 됩니다. Pop!_OS 버그에서 LVM이 언급된 것 같습니다. Pop 종료 오류 로그가 어디에 있는지 모르므로 해당 내용을 정확하게 알려드릴 수 있습니다. 시작 로그처럼 보이는 것을 찾았지만 로그를 끄는 것도 도움이 됩니다.
이것은 Journal.log에서 가져온 것입니다:
Feb 04 23:21:07 pop-os kernel: sd 1:0:0:0: [sda] Attached SCSI disk
Feb 04 23:21:07 pop-os kernel: system76_acpi: loading **out-of-tree** module **taints** kernel.
Feb 04 23:21:33 pop-os kernel: BTRFS info (device sda1): bdev /dev/sda1 errs: wr 1, rd 2, flush 0, **corrupt** 3, gen 0
Feb 04 23:21:38 pop-os kernel: sd 1:0:0:0: [sda] tag#0 **FAILED** Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
Feb 04 23:21:38 pop-os kernel: sd 1:0:0:0: [sda] tag#0 Sense Key : Hardware Error [current]
Feb 04 23:21:38 pop-os kernel: sd 1:0:0:0: [sda] tag#0 Add. Sense: Internal target failure
Feb 04 23:21:38 pop-os kernel: sd 1:0:0:0: [sda] tag#0 CDB: Read(10) 28 00 00 e1 2b 88 00 00 80 00
Feb 04 23:21:38 pop-os kernel: **critical** target error, dev sda, sector **14756744** op 0x0:(READ) flags 0x80700 phys_seg 16 prio class 0
Feb 04 23:21:39 pop-os kernel: **critical** target error, dev sda, sector **60338288** op 0x0:(READ) flags 0x80700 phys_seg 16 prio class 0
Feb 04 23:21:41 pop-os kernel: **critical** target error, dev sda, sector **73452720** op 0x0:(READ) flags 0x80700 phys_seg 16 prio class 0
Feb 04 23:22:04 pop-os kernel: **critical** target error, dev sda, sector **154215456** op 0x0:(READ) flags 0x80700 phys_seg 64 prio class 0
Feb 04 23:22:04 pop-os kernel: **BTRFS error** (device sda1): **error reading free space cache**
Feb 04 23:22:04 pop-os kernel: BTRFS warning (device sda1): failed to load free space cache for block group 40832598016, rebuilding it now
Feb 04 23:22:05 pop-os kernel: **BTRFS warning (device sda1): chunk 13631488 missing 1 devices, max tolerance is 0 for writable mount**
Feb 04 23:22:05 pop-os kernel: **BTRFS: error (device sda1) in write_all_supers:4433: errno=-5 IO failure (errors while submitting device barriers.)**
Feb 04 23:22:05 pop-os kernel: BTRFS info (device sda1: state E): **forced readonly**
Feb 04 23:22:05 pop-os kernel: BTRFS warning (device sda1: state E): Skipping commit of aborted transaction.
Feb 04 23:22:05 pop-os kernel: BTRFS: error (device sda1: state **EA**) in cleanup_transaction:1982: **errno=-5 IO failure**
오류 메시지 조합이 도움이 될 수 있는 경우를 대비하여 여러 다른 응용 프로그램을 사용하여 드라이브에 액세스해 보았습니다. "Libparted Warning"이라고 표시된 Gparted 대화 상자 창에는 "fsyncing/opening /dev/sda1 오류: 원격 I/O 오류"라는 오류 메시지가 표시됩니다. LibreWriter는 "문서 저장 오류..드라이브 경로가 존재하지 않습니다." 및 "문서 파일 이름 저장 오류: 쓰기 오류입니다. 파일에 쓸 수 없습니다."라는 두 가지 오류를 발생시켰습니다.
Dolphin 파일 관리자에서 작동하는 방식은 다음과 같습니다. 일부 파일을 노트북의 내부 SSD에 복사할 수 있지만 일부 파일은 중단되고 복사되지 않습니다. 그러면 Dolphin 오류 메시지가 나타납니다: "(Errno :5)". 나는 또한 돌고래로부터 또 다른 오류 메시지를 보았습니다: "이 장치에 있는 하나 이상의 파일이 "dolphinqhVENO.57.slave-socket" 응용 프로그램에서 열려 있습니다.(이게 무슨 뜻인가요?) 일부 디렉토리에 들어갔는데 그 안에 있는 파일을 볼 수 없습니다. (보통 (지금은) 이 파일을 볼 수 있지만 복사할 수는 없습니다.) 그런 다음 GPT 파티션 테이블이 있을 때까지 계속 실행했고 testdisk
, 더 이상 작동할 수 없는 파일 시스템인 btrfs라는 것을 발견했습니다. 그런 다음 돌핀으로 돌아가서 디렉토리의 파일을 볼 수 있습니다. 이미지 파일에서 돌고래는 작은 썸네일을 표시하고 알고 있는 전체 이미지를 볼 수 있지만 김프에서 꺼내려면 검은색 이미지이거나 이미지의 처음 5개 이미지를 보여주는 다른 이미지입니다. 그리고 그 아래의 모든 것은 해킹당했습니다. 더 흥미로운 점은 복사한 파일을 노트북에서 더 안전한 다른 외장 SSD로 옮겼다는 것입니다. 파일 중 일부는 예상대로 이동했지만 일부는 이동하지 않았으며 Dolphin은 동일한 오류 5로 돌아왔습니다. 트리 구조를 다시 정렬하고 안정화해야 한다고 가정할 때 내 데이터가 여전히 존재합니까? 그러면 디렉토리는 그 안에 어떤 파일이 있는지 "알고" 파일은 그 안에 어떤 데이터가 있는지 "알게" 될까요? SSD는 상당히 새 제품이며 위에서 굵게 표시한 섹터가 정말 불량하여 더 이상 사용할 수 없는지, 아니면 해당 지점의 일부 "정렬"만으로 오류가 발생하고 전체 구조를 수정하면 오류가 발생하는지 궁금합니다. 제자리에. 언급된 Gparted와 같은 것을 동기화/닫아야 합니까? 문제가 해당 드라이브 주변의 파일에 있지 않다면?
$ sudo btrfs check /dev/sda1
Opening filesystem to check...
Checking filesystem on /dev/sda1
UUID: (the number)
[1/7] checking root items
[2/7] checking extents
[3/7] checking free space cache
Error reading 80022618112, -1
failed to load free space cache for block group 40832598016
[4/7] checking fs roots
[5/7] checking only csums items (without verifying data)
[6/7] checking root refs
[7/7] checking quota groups skipped (not enabled on this FS)
found 109238472704 bytes used, no error found
total csum bytes: 106517876
total tree bytes: 137166848
total fs tree bytes: 3325952
total extent tree bytes: 2850816
btree space waste bytes: 23485371
file data blocks allocated: 109145407488
referenced 109100597248
$ dmesg | tail
[ 3370.531377] sd 1:0:0:0: Attached scsi generic sg0 type 0
[ 3370.531640] sd 1:0:0:0: [sda] 976773168 512-byte logical blocks: (500 GB/466 GiB)
[ 3370.531644] sd 1:0:0:0: [sda] 4096-byte physical blocks
[ 3370.531814] sd 1:0:0:0: [sda] Write Protect is off
[ 3370.531817] sd 1:0:0:0: [sda] Mode Sense: 5f 00 00 08
[ 3370.532132] sd 1:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 3370.532250] sd 1:0:0:0: [sda] Preferred minimum I/O size 4096 bytes
[ 3370.532253] sd 1:0:0:0: [sda] Optimal transfer size 33553920 bytes not a multiple of preferred minimum block size (4096 bytes)
[ 3370.537416] sda: sda1
[ 3370.537565] sd 1:0:0:0: [sda] Attached SCSI disk