방금 실수로 잘못된 디스크의 모든 파티션을 지웠습니다.
/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
(don't forget the
fsck -n -n mount` 의 내용을 저장합니다 ) to check the consistency of the filesystems on each partition (don't use
. 오프셋이 올바른 경우에만 작동합니다. 오프셋은 정확하지만 크기가 잘못된 경우 디스크가 손상될 수 있습니다(읽기 전용 모드에서도 로그에 기록되므로) )).
fsck가 파일 시스템을 찾을 수 없으면 파티션의 오프셋이 잘못된 것입니다. 오류가 보고되면 파티션 크기가 잘못되었을 가능성이 높습니다.디스크에 쓰지 않는 한 파티션 테이블을 복구할 수 있습니다.. 디스크에 마운트된 파티션이 없을 때 w
키를 누르면 fdisk
커널이 파티션 테이블을 다시 읽습니다. 올바르게 분할되면 일반 시스템으로 재부팅하여 정상적으로 계속할 수 있습니다.
답변2
부분이미 재부팅한 경우에도 도움이 될 것입니다.