실수로 시동 디스크의 파티션을 삭제했습니다. 시스템은 여전히 ​​실행 중입니다. 어떻게 회복할 수 있나요?

실수로 시동 디스크의 파티션을 삭제했습니다. 시스템은 여전히 ​​실행 중입니다. 어떻게 회복할 수 있나요?

방금 실수로 잘못된 디스크의 모든 파티션을 지웠습니다.

/dev/sda/dev/sdbRAID 미러로 설정하려는 새 디스크 인 부팅 디스크입니다 .

실수로 실수 를 /dev/sda해서 /dev/sdb.

시스템은 여전히 ​​작동 중이므로 어딘가에서 캐시된 파티션 테이블을 실행하고 있습니다.

파티션 테이블을 복원하거나 최소한 파티션을 정확하게 다시 생성할 수 있도록 볼 수 있습니까?

fdisk /dev/sda -l파티션이 생성되지 않습니다.

응, 똑똑한 것 같아

답변1

커널은 파티션 테이블을 캐시에 영구적으로 보관합니다(다시 로드하도록 명시적으로 지시하지 않는 한, 일부 파티션이 사용 중이면 다시 로드할 수 없습니다). 따라서 재부팅할 때까지 안전합니다(또는 커널에 실제 디스크 내용을 반영하지 않는 데이터를 작동하도록 지시합니다. 예를 들어 mdraid를 활성화한 경우 해당 메타데이터를 디스크에 기록했을 수 있습니다).

당신이 가지고 있다면최신 정보부트 섹터(처음 512바이트)를 백업하고 복원할 수 있습니다( cat boot-sector-backup >/dev/sda-- 복원하려는 파일의 크기가 정확히 512바이트인지 확인하세요). 부트로더 설치로 인해 부트 섹터 백업이 생성되었을 수 있지만 업그레이드되었거나 그 이후로 다시 파티션을 나눈 경우에는 최신 상태가 아닙니다. 오래된 것일 수 있는 백업을 복원하지 마십시오.

파티션에 대한 커널 정보는 를 통해 액세스할 수 있습니다 /sys/class/block/sda/sda*. 각 파티션의 디렉터리( sda1sda2)에서:

  • start512바이트 섹터의 파티션 시작 부분에 대한 오프셋을 포함합니다.
  • size512바이트 섹터의 파티션 크기를 포함합니다(확장 파티션 제외).

파티션 번호가 5 이상인 경우 논리 파티션입니다(참조:"확장" 파티션과 "논리" 파티션의 차이점은 무엇입니까?), 확장 파티션에 포함됩니다. 확장 파티션이 있거나 없습니다. 이는 파티션 1-4 중 하나입니다. 파일에는 size확장 파티션의 크기가 포함되어 있지 않으므로 먼저 모든 논리 파티션을 수용할 수 있을 만큼 커야 하며 기본 파티션(1-4번의 다른 파티션)을 포함해서는 안 됩니다.

달리기 fdisk /dev/sda. u단위를 섹터로 전환하는 데 사용됩니다 . 확장 파티션부터 시작하여 올바른 오프셋과 크기로 파티션( )을 생성합니다 n(프롬프트에 표시된 대로 +크기에 관해서는 섹터 수 앞에 놓으십시오).

p파티션 테이블이 올바른지 확인하는 데 사용됩니다 . 파티션 중 일부가 Linux 데이터 파티션이 아닌 경우 를 사용하여 t유형을 설정합니다( 82Linux 스왑 파티션의 경우, cWindows FAT32 파티션의 경우, 7Windows NTFS 파티션의 경우). 부팅 가능한 DOS/Windows 파티션이 있는 경우 부팅 가능 플래그( a)를 설정합니다.

출력이 정상인지 다시 확인하고 w새 테이블을 디스크에 커밋을 누릅니다.

/sys/class/block/sda/ in a tar archive on a USB stick. Then reboot from a removable media. **After rebooting, if the partition table you created is not correct, you risk massive data corruption**. So from the removable media, run(don't forget thefsck -n -n mount` 의 내용을 저장합니다 ) to check the consistency of the filesystems on each partition (don't use. 오프셋이 올바른 경우에만 작동합니다. 오프셋은 정확하지만 크기가 잘못된 경우 디스크가 손상될 수 있습니다(읽기 전용 모드에서도 로그에 기록되므로) )).

fsck가 파일 시스템을 찾을 수 없으면 파티션의 오프셋이 잘못된 것입니다. 오류가 보고되면 파티션 크기가 잘못되었을 가능성이 높습니다.디스크에 쓰지 않는 한 파티션 테이블을 복구할 수 있습니다.. 디스크에 마운트된 파티션이 없을 때 w키를 누르면 fdisk커널이 파티션 테이블을 다시 읽습니다. 올바르게 분할되면 일반 시스템으로 재부팅하여 정상적으로 계속할 수 있습니다.

답변2

부분이미 재부팅한 경우에도 도움이 될 것입니다.

관련 정보