Ctrl-D는 파일 시스템을 미리 축소하지 않으면 블록 장치를 축소한 후 파일 시스템을 시작할 수 없다는 메시지를 표시합니다.

Ctrl-D는 파일 시스템을 미리 축소하지 않으면 블록 장치를 축소한 후 파일 시스템을 시작할 수 없다는 메시지를 표시합니다.

파일 시스템을 축소하고 싶은데, 안타깝게도 다음 단계를 놓쳤습니다.

파일 시스템의 크기를 조정하는 대신 논리 볼륨을 줄였습니다.

그 결과 시스템이 더 이상 부팅되지 않고 파일 시스템이 손상되었다는 메시지가 표시됩니다.

[root@node2 ~]# mount -a
   mount: wrong fs type, bad option, bad superblock on /dev/mapper/vgprod-prod,
   missing codepage or helper program, or other error

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

[root@node2 ~]# e2fsck -f /dev/mapper/vgprod-prod
   e2fsck 1.42.9 (28-Dec-2013)
   Error reading block 65536 (Invalid argument).  Ignore error<y>? yes
   Force rewrite<y>? yes
   Superblock has an invalid journal (inode 8).
   Clear<y>? yes
   *** ext3 journal has been deleted - filesystem is now ext2 only ***

   Superblock has_journal flag is clear, but a journal inode is present.
   Clear<y>? yes
   The filesystem size (according to the superblock) is 115712 blocks
   The physical size of the device is 64512 blocks
   Either the superblock or the partition table is likely to be corrupt!
   Abort<y>? yes
   Error writing block 65536 (Invalid argument).  Ignore error<y>? yes

   /dev/mapper/vgprod-prod: ***** FILE SYSTEM WAS MODIFIED *****

이러한 문제를 해결하는 방법을 알려주십시오.

답변1

광범위한 손상을 일으킬 수 있는 변경을 하기 전에 현재 상태의 물리 볼륨(예::)을 섹터별로 복사하여 dd if=/dev/sdXY of=/path/to/safe/place.img변경되지 않은 곳에 저장하십시오. pvdisplay복사할 파티션을 아는 데 사용됩니다 . 최악의 경우(파일 시스템이 너무 손상되어 내용을 이해할 수 없는 경우)에도 여전히 사용할 수 있습니다.테스트 디스크(파일 시스템이 LVM 파티션의 연속 블록에 있는 경우):

  1. 달리기testdisk /path/to/image.img
  2. "파티션되지 않은 미디어" 선택: testdiskLVM에 쓰는 방법을 모르지만 발견된 파티션에서 계속 읽습니다.
  3. 분석을 사용하여 파티션을 검색하십시오. 파일 시스템을 찾을 수 없으면 심층 검색을 사용하십시오.
  4. P를 사용하여 파일을 나열한 다음 :/ a선택하고 c/ C파일을 복사합니다.

실패한 LVM 파티션이 rootfs를 호스팅하지 않는다고 가정하고 /etc/lvm디렉터리도 백업하십시오. 이 파티션이 rootfs를 호스팅한다면 이전 백업에 이 디렉터리가 포함되었을 수도 있습니다. 우리는 그것이 필요합니다. 다른 모든 방법이 실패하더라도 /etc/lvm/16진수 편집기와 문자열 검색을 사용하여 파일의 내용을 찾는 것이 여전히 가능 description =하지만(조각화되지 않은 것으로 가정) 매우 긴 프로세스입니다.

여전히 initramfs 셸에 있고 이미지를 저장할 여유 HDD 공간이 충분하지 않은 경우 운이 좋으면(USB 저장소 및 기타 모듈이 initramfs에 있음) USB-HDD를 설치할 수 있습니다.

  1. 드라이브를 연결하고 회전할 때까지 몇 초간 기다립니다.
  2. 커널 메시지가 표시될 수 있습니다. 그렇지 않으면 다음을 실행하세요.dmesg | tail
  3. 다음과 같은 줄을 찾으세요 (크기를 비교하여 USB-HDD인지 [ 8391.759613] sd 6:0:0:0: [sdX] 15826944 512-byte logical blocks: (8.10 GB/7.55 GiB)확인하세요 ). (여기서 sdX1 ... sdXn은 파티션 목록입니다.)sdX[ 8391.770279] sdX: sdX1
  4. 달리기:

    mkdir -p /mnt/usb-hdd # ensure existing mountpoint
    mount /dev/sdXN /mnt/usb-hdd # substitute X for the drive letter and N for the partition number from (3)
    
  5. 백업 이미지 쓰기 및/또는 /etc/lvm복구된 백업 복사/mnt/usb-hdd

  6. 완료되면 썸 드라이브를 마운트 해제하는 것을 잊지 마세요.umount /mnt/usb-hdd

완료되면 현재 콘텐츠 /etc/lvm/backup/etc/lvm/archiverootfs 또는 백업에서 얻은 내용을 검토하세요. 실행하기 전에 백업 메타데이터가 생성되어 lvresize손상될 수 있습니다. 설명을 나열 description =하려면 이 디렉터리 내의 파일을 살펴보세요 grep description .../etc/lvm/*/*. 아직 initramfs 셸에 있는 경우 , 또는(실패한 경우) 및 + / +를 사용 less하여 more텍스트 cat파일 ShiftPgUp확인 Shift하세요 PgDn. 파일이 있나요 Created *before* executing 'lvresize -l <something> /dev/vgprod/prod'? 실행하여 vgcfgrestore -f /etc/lvm/archive/<suitable archive file> vgprod메타데이터를 이전 값으로 복원한 다음 마운트를 시도합니다 /dev/vgprod/prod.

fsck이 경우 파일을 성공적으로 복사하고 해당 파일이 안전한지 확인하거나 복구할 수 있다고 확신하는 파티션의 이미지를 만들 때까지 어떤 유형의 작업도 수행하지 않아야 합니다. fsck잘린 파일 시스템에서는 상황이 더 악화될 수 있습니다.

관련 정보