파티션을 마운트할 수 없습니다. 문제를 해결하려면 어떻게 해야 합니까?

파티션을 마운트할 수 없습니다. 문제를 해결하려면 어떻게 해야 합니까?

라즈베리파이용 SD카드가 있습니다. 이 SD 카드를 Linux PC에 마운트하여 파일을 가져오고 싶지만 그럴 수 없습니다.

SD 카드를 카드 리더기에 넣으면 dmesg에 다음 메시지가 표시됩니다.

  [  114.117896] usb 4-1: new full-speed USB device number 2 using ohci-pci
  [  114.292885] usb 4-1: New USB device found, idVendor=214b, idProduct=1101
  [  114.292897] usb 4-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
  [  114.292904] usb 4-1: Product: USB2.0 Device   
  [  114.292910] usb 4-1: Manufacturer: Generic 
  [  114.292914] usb 4-1: SerialNumber: 0201202010201000
  [  114.383603] usb-storage 4-1:1.0: USB Mass Storage device detected
  [  114.383803] scsi6 : usb-storage 4-1:1.0
  [  114.383956] usbcore: registered new interface driver usb-storage
  [  115.386965] scsi 6:0:0:0: Direct-Access     USB2.0   CARD-READER      1.01 PQ: 0 ANSI: 2
  [  115.388961] sd 6:0:0:0: Attached scsi generic sg2 type 0
  [  115.409892] sd 6:0:0:0: [sdc] Attached SCSI removable disk
  [  115.471798] sd 6:0:0:0: [sdc] 30679040 512-byte logical blocks: (15.7 GB/14.6 GiB)
  [  115.505782] sdc: detected capacity change from 0 to 15707668480
  [  115.534776]  sdc: sdc1 sdc2 < sdc5 sdc6 > sdc3

카드의 파티션 테이블은 다음과 같습니다.

  # parted /dev/sdc
  GNU Parted 3.2
  Using /dev/sdc
  Welcome to GNU Parted! Type 'help' to view a list of commands.
  (parted) print                                                            
  Model: USB2.0 CARD-READER (scsi)
  Disk /dev/sdc: 15,7GB
  Sector size (logical/physical): 512B/512B
  Partition Table: msdos
  Disk Flags: 

  Number  Start   End     Size    Type      File system  Flags
   1      1049kB  1275MB  1274MB  primary   fat32        lba
   2      1278MB  15,7GB  14,4GB  extended
   5      1279MB  1342MB  62,9MB  logical   fat16        lba
   6      1343MB  15,7GB  14,3GB  logical
   3      15,7GB  15,7GB  33,6MB  primary

fdisk를 사용하여 장치를 확인하면 다음과 같이 표시됩니다.

  # fdisk /dev/sdc -l

  Disk /dev/sdc: 14.6 GiB, 15707668480 bytes, 30679040 sectors
  Units: sectors of 1 * 512 = 512 bytes
  Sector size (logical/physical): 512 bytes / 512 bytes
  I/O size (minimum/optimal): 512 bytes / 512 bytes
  Disklabel type: dos
  Disk identifier: 0x000daf86

  Device     Boot    Start      End  Sectors  Size Id Type
  /dev/sdc1           2048  2490234  2488187  1.2G  e W95 FAT16 (LBA)
  /dev/sdc2        2496512 30609407 28112896 13.4G 85 Linux extended
  /dev/sdc3       30613504 30679039    65536   32M 83 Linux
  /dev/sdc5        2498560  2621439   122880   60M  c W95 FAT32 (LBA)
  /dev/sdc6        2623488 30607359 27983872 13.4G 83 Linux
  Partition table entries are not in disk order.

/dev/sdc6이 가장 큰 파티션인 것 같아서 마운트하고 싶습니다. 설치하려고 하면 다음과 같은 결과가 나타납니다.

  # mount -v /dev/sdc6 test
  mount: wrong fs type, bad option, bad superblock on /dev/sdc6,
         missing codepage or helper program, or other error

         In some cases useful info is found in syslog - try
         dmesg | tail or so.

/dev/sdc6을 마운트하려고 하면 Dmesg가 아무 말도 하지 않습니다.

이 파티션을 확인하면문서명령은 다음과 같습니다.

    # file -s /dev/sdc6
    /dev/sdc6: data

fsck를 사용하여 파일 시스템을 검사하면 다음과 같은 결과가 나타납니다.

  # LC_ALL=C fsck.ext3 -n /dev/sdc6
  e2fsck 1.43.4 (31-Jan-2017)
  ext2fs_open2: Bad magic number in super-block
  fsck.ext3: Superblock invalid, trying backup blocks...
  root was not cleanly unmounted, check forced.
  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
  Free blocks count wrong for group #0 (4245, counted=11608).
  Fix? no

  Free blocks count wrong for group #1 (1373, counted=707).
  Fix? no

  Free blocks count wrong for group #2 (1699, counted=1880).
  Fix? no

  (...)

  Inode bitmap differences:  -(57345--131072) -172034 -172037 -(172042--172043) -172045 -172047 -172049 -172053 -172057 -172059 -172062 -172065 (...)
  Fix? no

  root: ********** WARNING: Filesystem still has errors **********

  root: 91692/876544 files (0.8% non-contiguous), 1413337/3497984 blocks

내가 이해한 바에 따르면 Linux는 알 수 없는 이유로 이 파일 시스템을 마운트할 수 없습니다. 이유를 알고 싶습니다. 파일 시스템이 손상되었나요, 아니면 다른 이유가 있나요? 이 파일 시스템을 마운트하거나 어떻게든 해당 파일을 복원하고 싶습니다.

이 문제를 해결하려면 지금 무엇을 해야 합니까?

편집: 도움을 주신 모든 분들께 감사드립니다! 마침내 fsck를 사용하여 파티션에 Linux 확장 파일 시스템이 포함되어 있지만 해당 파일 시스템이 손상되어 마운트할 수 없다는 사실을 발견했습니다. 카드를 백업한 다음("cat /dev/sdc | gzip > mybackup" 사용) 장치에 불량 블록이 포함되어 있는지 확인했습니다. 불량 블록이 포함되어 있지 않았기 때문에 (SD 카드의 파일 시스템이 손상된 SD 카드 리더를 사용하여 손상되었을 수 있습니까?) fsck로 파일 시스템을 복구하고 카드를 Raspberry Pi에 넣은 후 부팅하지 않고 부팅했습니다. 문제 .

답변1

공개된 출력에 따르면 fsck일부 데이터가 복구될 것으로 예상됩니다.

나는 다음을 추천합니다:

  1. 파일 시스템을 dd디스크 파일에 복사합니다(예 fdsump.orig: ). 실패하면 시도해 보십시오 ddrescue. 시작하기 전에 여유 공간이 충분한지 확인하세요.
  2. 이 파일을 직접 작업하지 말고 cp fsdump.orig fsdump언제든지 이 단계로 돌아가서 다시 시작할 수 있도록 새 복사본(예: )을 만드십시오.
  3. 데이터 파일에서 mount -o loop장치 생성 fsdump(예 /dev/loop1: )
  4. 오류가 발생하지 않을 때까지 시도해 보세요 fsck.ext3 /dev/loop1. 횟수가 많을수록 더 많은 피해를 입게 됩니다.
  5. /dev/loop1디렉토리에 마운트하십시오 . 모든 파일을 안전한 위치에 복사하세요. ( cp -a또는 rsync파일 속성을 보존하려면 사용하세요). 이들 중 하나라도 손상되거나 잘릴 수 있습니다.
  6. 이제 순환 파일 시스템을 마운트 해제할 수 있습니다.

자세한 내용은 위 유틸리티의 매뉴얼 페이지를 참조하십시오.

답변2

당신은 사용할 수 있습니다파일 1)file -s /dev/sdc6이는 블록 장치에서 일부 바이트를 읽고 거기에 무엇이 있는지 추측하기 때문입니다 .

아무것도 인식되지 않으면 문제가 발생하고 데이터를 복구하기 위한 조치를 취해야 하므로 데이터가 손실될 수 있습니다.선험적으로어떤 파일 시스템이 있습니까?

일부 파일 시스템이 인식되면 다음을 사용해 볼 수 있습니다.설치(8)명확하게-t type

파티션 테이블 항목이 디스크 순서가 아닙니다.

냄새가 별로 좋지 않아요. 전체 디스크를 다시 파티션해야 할 수도 있습니다(하지만 그 전에 데이터를 백업해야 함). 두 개의 겹치는 파티션이 있는 것 같습니다 ( sdc2sdc6

다른 Linux PC에서 실행 중이므로 다음을 사용하여 SD 카드의 데이터를 PC(일부 파일)로 복사할 수 있습니다.일(1)

dd if=/dev/sdc6 of=$HOME/diskdata bs=4k

그런데, 이 명령 후에 dmesg복사가 원활하게 진행되는지 확인하시기 바랍니다.

dd전체 SD 카드를 복사할 수도 있습니다 .

$HOME/diskdata그러면 Linux PC에서 해당 파일의 뒤죽박죽된 내용을 해독하는 데 몇 시간(또는 몇 달)이 걸릴 수 있습니다 . 당신이 사용할 수있는디버깅(8)이를 위해 원본 파일 시스템을 ext3 또는 ext4로 간주하면

SD 카드는 빨리 마모되는 깨지기 쉬운 장치입니다. 몸이 망가진 것 같아요. 확실한 데이터 손실에 대비하세요.

관련 정보