NTFS 파티션을 갑자기 사용할 수 없습니다. "오류: /dev/sdX를 읽는 중 파일 끝입니다."

NTFS 파티션을 갑자기 사용할 수 없습니다. "오류: /dev/sdX를 읽는 중 파일 끝입니다."

SSD에 Ubuntu 상자가 있고 /dev/sdb일부 NTFS 파티션이 있는 보조 HDD( )가 있습니다.

일부 상황: 어제 기기가 응답하지 않아서 강제로 종료해야 했습니다(전원 차단). 재부팅 시 우분투는 비상 모드로 전환됩니다. HDD의 UUID가 사라져(에 표시되지 않음 blkid), 따라서 /etc/fstab손상된 . 디스크 라인을 주석 처리 fstab하고 Ubuntu를 부팅했습니다.

이제 HDD를 다시 마운트하려고 합니다. 먼저 Gparted를 사용해 보았습니다. 이것은 libparted(gparted에서 사용)의 출력입니다.

======================
libparted : 3.2
======================
end of file while reading /dev/sdb
The primary GPT table is corrupt, but the backup appears OK, so that will be used.

흥미롭게도 UUID 대신 PTUUID가 있는 것으로 sudo blkid표시됩니다 ./dev/sdb

$ sudo blkid
/dev/loop0: TYPE="squashfs"
/dev/loop1: TYPE="squashfs"
/dev/loop2: TYPE="squashfs"
/dev/sda1: UUID="e407bc1c-4c2d-4dae-80ce-e6bd96346698" TYPE="ext4" PARTUUID="659e6a1e-01"
/dev/sda5: UUID="f9500440-cddf-41f6-8512-5a30e66fbf3d" TYPE="swap" PARTUUID="659e6a1e-05"
/dev/sda6: UUID="18abc384-a610-4f65-8430-0109548a89ef" TYPE="ext4" PARTUUID="659e6a1e-06"
/dev/sdb: PTUUID="a6e9090d-b5ab-412a-8568-2eee08fa3fa8" PTTYPE="gpt"

파티션이 아직 거기에 있다고 확신하지만 마운트할 수 없습니다. parted올바르게 나열합니다.

$ sudo parted
GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) select /dev/sdb                                                  
Using /dev/sdb
(parted) p                                                                
Error: end of file while reading /dev/sdb
Retry/Ignore/Cancel? i                                                    
Error: The primary GPT table is corrupt, but the backup appears OK, so that will be used.
OK/Cancel? OK                                                             
Model: ATA ST1000LM024 HN-M (scsi)
Disk /dev/sdb: 1000GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name                          Flags
 1      1049kB  316MB   315MB                EFI system partition          boot, esp
 2      316MB   945MB   629MB   ntfs         Basic data partition          hidden, diag
 3      945MB   1079MB  134MB                Microsoft reserved partition  msftres
 4      1079MB  979GB   978GB   ntfs         Basic data partition          msftdata
 5      979GB   1000GB  21,5GB  ntfs         Basic data partition          hidden, diag

(parted) q

따라서 파티션을 마운트할 수 없게 만드는 2개의 오류( Error: end of file while reading /dev/sdb, ) 가 있습니다 . Error: The primary GPT table is corrupt, but the backup appears OK, so that will be used.문제를 해결하는 방법에 대한 아이디어가 있습니까?

편집하다이것은 다음의 출력입니다 ntfsfix.

$ sudo ntfsfix /dev/sdb
Mounting volume... NTFS signature is missing.
FAILED
Attempting to correct errors... NTFS signature is missing.
FAILED
Failed to startup volume: Invalid argument
NTFS signature is missing.
Trying the alternate boot sector
Unrecoverable error
Volume is corrupt. You should run chkdsk.

편집하다gdisk의 출력

GPT fdisk (gdisk) version 1.0.1

Caution: invalid main GPT header, but valid backup; regenerating main header
from backup!

Caution! After loading partitions, the CRC doesn't check out!
Warning! Main partition table CRC mismatch! Loaded backup partition table
instead of main partition table!

Warning! One or more CRCs don't match. You should repair the disk!

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: damaged

****************************************************************************
Caution: Found protective or hybrid MBR and corrupt GPT. Using GPT, but disk
verification and recovery are STRONGLY recommended.
****************************************************************************

편집하다이것은 내가 잘못 실행하여 문제를 일으킨 명령입니다.sudo dd if=/dev/zero of=/dev/sdb bs=512 seek=1

답변1

gdiskTLDR: ( 명령) 을 사용하여 디스크(데이터 포함)를 복원할 수 있었습니다 w.

dd질문 및 의견 섹션에서 논의한 대로 시나리오는 다음과 같습니다. with 0s on 을 실행하여 실수로 디스크의 GPT 헤더를 파괴했습니다 /dev/sdb.

나는 달렸다gdisk(8)디스크에 GPT 헤더가 손상되었음을 알렸지만 백업은 괜찮았고 백업을 로드했습니다. CLI 에서 파티션 테이블 정보를 디스크에 쓰는 명령을 gdisk실행 하고 종료했습니다. w그 후 /dev/sdbUbuntu에서 즉시 인식되어 마운트되었으며 다른 변경은 필요하지 않았습니다.

관련 정보