실수로 잘못된 디스크의 모든 파티션을 삭제했습니다.
/dev/sda
은 부팅 디스크이고 /dev/sdb
RAID 미러로 설정하려는 새 디스크입니다.
나는 실수로 그것을 두들겨 패서 /dev/sda
가 아닌 의 파티션 테이블을 삭제하게 되었습니다 /dev/sdb
.
시스템은 여전히 실행 중이므로 캐시된 파티션 테이블을 어딘가에서 실행하고 있습니다.
파티션 테이블을 복구하거나 적어도 볼 수 있어 파티션이 있던 위치에 정확히 다시 만들 수 있습니까?
fdisk /dev/sda -l
파티션이 생성되지 않습니다.
응, 영리한 것 같아
답변1
커널은 파티션 테이블을 캐시에 영구적으로 보관합니다(다시 로드하도록 명시적으로 지시하지 않는 한, 일부 파티션이 사용 중인 경우에는 다시 로드할 수 없습니다). 따라서 재부팅할 때까지 안전합니다(또는 커널에 실제 디스크 내용을 반영하지 않는 데이터를 작동하도록 지시합니다. 예를 들어 이미 mdraid를 활성화한 경우 해당 메타데이터가 이미 디스크에 기록되었을 수 있습니다).
당신이 가지고 있다면최신 정보부트 섹터(처음 512바이트)를 백업하면 복원할 수 있습니다( cat boot-sector-backup >/dev/sda
— 복원하려는 파일의 크기가 정확히 512바이트인지 확인하세요). 부트로더 설치로 인해 부트 섹터 백업이 생성되었을 수 있지만 업그레이드되었거나 그 이후로 다시 파티션을 나눈 경우에는 최신 상태가 아닙니다. 더 이상 사용되지 않을 수 있는 백업을 복원하지 마십시오.
파티션에 대한 커널 정보는 를 통해 액세스할 수 있습니다 /sys/class/block/sda/sda*
. 각 파티션( sda1
, sda2
등) 의 디렉터리에서 :
start
512바이트 섹터 단위로 파티션 시작 부분의 오프셋을 포함합니다.size
512바이트 섹터 단위의 파티션 크기를 포함합니다(확장 파티션 제외).
번호가 5 이상인 파티션이 있으면 논리 파티션입니다(참조:"확장" 파티션과 "논리" 파티션의 차이점은 무엇입니까), 확장 파티션 내부에 포함되어 있습니다. 단일 확장 파티션이 있거나 없거나 파티션 1~4 중 하나입니다. 파일에는 size
확장 파티션의 크기가 포함되어 있지 않으므로 먼저 이를 확인해야 합니다. 모든 논리 파티션이 들어갈 만큼 충분히 커야 하며 기본 파티션(1~4번의 다른 파티션)을 포함해서는 안 됩니다.
달리다 fdisk /dev/sda
. u
단위를 섹터로 전환하는 데 사용됩니다 . 확장 파티션부터 시작하여 n
올바른 오프셋과 크기(프롬프트에 표시된 대로 +
크기에 관해서는 섹터 수 앞에 입력) 로 파티션( )을 만듭니다 .
p
파티션 테이블이 올바른지 확인하는 데 사용됩니다 . 이러한 파티션 중 일부가 Linux 데이터 파티션이 아닌 경우 을 사용하여 t
유형을 설정합니다( 82
Linux 스왑의 경우, c
Windows FAT32 파티션의 경우, 7
Windows 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
fsck -n (don't forget the
-n mount` 의 내용을 저장합니다 . ) to check the consistency of the filesystems on each partition (don't use
).
fsck에서 파일 시스템을 찾지 못하면 파티션 오프셋이 잘못된 것입니다. 오류가 보고되면 파티션 크기가 잘못되었을 가능성이 있습니다.디스크에 쓰지 않는 한 파티션 테이블을 수정할 수 있습니다.. 마운트된 디스크에 파티션이 없을 때 w
키를 누르면 fdisk
커널이 파티션 테이블을 다시 읽게 됩니다. 파티션을 올바르게 설정하면 일반 시스템으로 재부팅하여 평소처럼 계속할 수 있습니다.
답변2
gpart다시 시작했더라도 도움이 될 것입니다.