OS 드라이브를 포맷하고 다시 설치하고 다시 가져오려고 시도한 후 다시 가져오고 싶지 않은 3개의 디스크 zpool이 있습니다. (Mint 19~20까지는 한 번 가져오고 OS를 재부팅한 후 재부팅하면 다시 마운트되지 않습니다.)
zpool은 /home에 있고 SSD에 새 /home이 있습니다. zpool zhome을 /zhome에 설치한 다음 /home으로 다시 rsync하고 새 드라이브로 새 풀을 만들려고 했는데 뭔가 비극적으로 잘못되었습니다.
$ sudo zpool import -R /zhome zhome
internal error: Value too large for defined data type
Aborted
확실히 말하자면, 새 OS를 처음 사용하기 시작했을 때 동일한 명령이 작동했고 zpool에 /zhome/user에서 /home/user로 실행되는 rsync가 있었습니다(큰 작업은 3일이 걸렸지만 잊어버렸습니다). 재부팅되었습니다. 다시 시작한 후 zpool을 다시 가져오려고 하면 이 오류가 발생합니다.
무엇을 시도해야 할지 아시나요?
답변1
복원할 수 있었습니다. 나는 testdisk에 운이 좋지 않으며 gparted는 미세 조정을 허용하지 않습니다.
방금 fdisk를 사용하고 디스크 끝에서 /dev/sdx9를 다른 두 디스크와 정확히 동일한 크기로 만들 수 있을 때까지 항목을 계속 처리했습니다. (다른 시작 섹터와 자동 종료 섹터 선택을 사용하여 크기가 정확히 맞습니다) 그런 다음 기본적으로 /sev/sdx1을 추가하고 다른 디스크와 일치하도록 유형을 전환한 다음 재부팅하면 다시 돌아왔습니다! 이것이 누군가에게 도움이 되기를 바랍니다. 올바른 기하학을 얻으려면 많은 작업이 필요하지만 그만한 가치가 있습니다!
답변2
고쳐 쓰다:
sudo zpool import -f
pool: zhome
id: 17312996257141753714
state: UNAVAIL
status: One or more devices contains corrupted data.
action: The pool cannot be imported due to damaged devices or data.
see: http://zfsonlinux.org/msg/ZFS-8000-5E
config:
zhome UNAVAIL insufficient replicas
sdd ONLINE
sde ONLINE
sdf UNAVAIL corrupted data
여기서 데이터를 구할 수 있는 방법이 있나요? 내 생각엔 sdf의 파티션 테이블이 약간 엉망인 것 같지만 아직 포맷되거나 아무것도 되지 않은 것 같습니다. 파티션 테이블을 복원하는 방법은 모르겠지만 위의 내용은 그대로 있어야겠죠? testdisk를 한번 시도해 보겠습니다.
찾을 수 없습니다. zpool의 다른 디스크를 살펴보면 /dev/sdx1 및 /dev/sdx9라는 2개의 파티션이 있는 것을 볼 수 있습니다. gparted 또는 fdisk에서 계산하고 복구하려고 합니다. sdx1은 항상 2048 섹터에서 시작하는 것으로 보이므로 이것이 시작입니다. 그리고 sdx9는 항상 16384 섹터인 것 같습니다(8M, 두 디스크의 섹터는 512바이트인 것 같습니다). 불행하게도 내 SDD에서는 끝 섹터가 마지막 사용 가능한 섹터에서 1섹터이고, 마지막 섹터를 보는 것은 끝에서 수천 섹터입니다(duh!).
따라서 무작위로 추측하면 sdx1이라고 말하면 시작 섹터를 추측할 수 있습니다. 하지만 끝부분을 추측하는 방법을 모르겠습니다. testdisk가 올바르게 보이는 것을 찾을 수 있기를 바라지만 지금까지는 운이 좋지 않습니다(지금 더 심층적인 스캔을 수행 중).