![파티션 테이블 수리](https://rvso.com/image/515024/%ED%8C%8C%ED%8B%B0%EC%85%98%20%ED%85%8C%EC%9D%B4%EB%B8%94%20%EC%88%98%EB%A6%AC.png)
방금 내 시스템 하드 디스크의 파티션 테이블을 덮어썼습니다. 나는 cfdisk
잘못된 장치에서 ( /dev/sda
대신 ) 을 만들고 /dev/sdd
, 모든 파티션을 삭제하고, 전체 장치에 걸쳐 하나의 새로운 기본을 만들고, 유형을 07
(NTFS)로 설정하고 write
.
그래서 여기 내 시스템이 실행되고 있습니다. 재부팅할 때까지 아무것도 바뀌지 않기를 바랍니다/추측합니다. 즉, 내 모든 데이터에 액세스할 수 있습니다(현재 dd
전체 장치를 백업하고 있으며 .tar.gz
나중에 가장 중요한 데이터를 백업할 계획입니다). 나는 또한 /proc/partitions
, /proc/diskstats
(비록 이것이 처리량과 이와 같은 것에 관한 것 같지만 ...) 및 /sys/block/sda/sda?/{start,size}
.
내가 아는 추가 사항:
- 4개의 기본 파티션
- 첫 번째 파티션: ~100Mb, ext3, /boot
- 두 번째 파티션: ~100Mb, "Win7 부팅 파티션", ntfs(?)
- 세 번째 파티션: ~20...30GB, Win7, ntfs
- 네 번째 파티션: ~20~30GB, Luks 암호화 장치
- 루크스-드암호화된 장치는 LVM-PV입니다.
/
,/home
& -파티션 은swap
위에 언급된 PV의 (VG)에 있는 모든 LV입니다.
내 질문은 다음과 같습니다.
- 커널 파티션 테이블을 디스크에 쓰는 가장 간단한 방법은 무엇입니까?
- 위에서 언급한(아마도 내가 모르는 다른 데이터도 포함) 데이터를 가져와서 파티션 테이블을 생성하는 가장 간단한 방법은 무엇입니까?
- luks 및/또는 lvm과 관련하여 처리해야 할 문제가 있습니까?
- 재부팅하기 전에 백업해야 할 데이터가 있습니까(커널 [ /sys/..., /proc/...] 등의 항목을 의미하며 파티션 테이블을 재생성하는 데 도움이 될 수 있음)?
답변1
너무 까다롭지 않습니다. 바라건대.
우선, /dev/sda에 있는 모든 파티션의 크기와 순서를 기록해 두십시오.
challenger:/home/michael # grep . /sys/block/sda/sda*/{start,size}
/sys/block/sda/sda1/start:63
/sys/block/sda/sda2/start:228690000
/sys/block/sda/sda3/start:257040
/sys/block/sda/sda1/size:256977
/sys/block/sda/sda2/size:83885760
/sys/block/sda/sda3/size:228432960
/dev/sda에서 fdisk를 실행하고 단위를 섹터로 변경합니다.
Command (m for help): u
Changing display/entry units to sectors
그런 다음 파티션 만들기를 시작하십시오. 각 파티션에 대해 적절한 숫자 start
와 를 사용하십시오.size
off-by-one 오류를 방지하십시오. size
fdisk에 입력하기 전에 하나를 빼십시오.
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First sector (63-312581807, default 63):
Using default value 63
Last sector, +sectors or +size{K,M,G} (63-312581807, default 312581807): +256976
Command (m for help): p
Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders, total 312581808 sectors
Units = sectors of 1 * 512 = 512 bytes
Disk identifier: 0x02b002af
Device Boot Start End Blocks Id System
/dev/sda1 63 257039 128488+ 83 Linux
파티션 ID를 설정하고 올바른 파티션에서 부팅 플래그를 전환하는 것을 잊지 마세요.
이제 MBR을 다시 설치하면 준비가 완료됩니다.
당연히 이 모든 작업은 즐겨 사용하는 파티션 편집기를 사용하여 수행할 수 있습니다. parted도 잘 작동합니다.
파티션의 시작/끝에 관한 정보를 잃어버린 경우, parted에는 디스크에서 잃어버린 파티션을 검색할 수 있는 'rescue' 옵션이 있습니다. 하지만 그런 것들은 필요하지 않습니다.
답변2
파티션 테이블이 손상된 경우 RIP(구조는 Linux에서 가능) 부팅 디스크를 사용하여 testdisk를 실행하는 것이 좋습니다. 도대체 실행 중인 시스템에서 testdisk를 실행하여 파티션을 검색하고 복구할 수는 있지만 파일이 열려 있는 실행 중인 시스템에 어떤 영향을 미칠지 모르기 때문에 시도하지 않을 것입니다.
필수 데이터의 백업을 시도하고 싶다면(아직 가지고 있지 않습니까?) 지금이 그렇게 하기 좋은 시기입니다...