dd 명령으로 인해 분할 오류가 발생하여 이제 셸에 멈췄습니다.

dd 명령으로 인해 분할 오류가 발생하여 이제 셸에 멈췄습니다.

저는 Linux를 처음 접했고 몇 가지 문제에 봉착했습니다.

목표: Debian 9 Stretch를 실행하는 두 대의 컴퓨터가 있고 그 중 하나를 다른 컴퓨터에 복제하고 싶습니다.

내가 한 첫 번째 일은 외장 하드 드라이브를 첫 번째 컴퓨터에 연결하고 다음 명령을 사용하여 모든 내용을 여기에 복사하는 것이었습니다.

sudo dd if=/dev/sda1 of=/dev/sdb1 bs=10M && sync

이것이 복사하는 올바른 방법인지, 아니면 출력을 .img와 동일하게 만드는지 여전히 확실하지 않습니다.

어쨌든 외장 하드 드라이브를 두 번째 컴퓨터에 연결하고 다음 dd 명령을 실행했습니다.

sudo dd if=/dev/sdb1 of=/dev/sba1 bs=10M conv=noerror,sync

I/O에 대한 오류가 계속 발생했지만 결국 완료되고 거의 끝나갈 무렵 메모리 부족이라는 메시지가 표시되었습니다. 새 파티션이 생성되고 내부 드라이브가 가득 찼습니다.

/etc/rc.local 파일을 확인해 보니 손상된 것 같습니다. 재부팅한 후 시작 시 rc.local이 포함된 여러 줄이 나타났습니다.

나는 복구 모드로 부팅하기로 결정했고 어떤 이유에서든 동일한 디렉터리와 모든 항목을 사용하여 첫 번째 컴퓨터처럼 부팅되었습니다.

내 dd 명령을 되돌아보면 다음을 입력했어야 했다고 생각합니다.sda바꾸다sda1

dd 명령을 다시 실행하고 변경해야 할 수도 있다는 것을 깨달았습니다.sdb1도착하다심천개발은행게다가.

30초쯤 지나서 명령어를 멈추고 라인을 수정해보았습니다.

라인을 다시 실행하면 분할 오류라는 응답을 받습니다.

그 이후에 입력하는 명령은 모두 이 응답을 제공합니다.

그런 다음 재부팅이 수행되어 EFI 셸 화면으로 이동했는데 지금은 멈춰 있습니다.

이 문제를 해결하기 위해 제가 할 수 있는 일이 있나요?

답변1

이는 시스템을 복제하는 좋은 방법이 아닙니다. /dev/sda1에 복사하는 경우 /dev/sdb1드라이브의 첫 번째 파티션을 sda드라이브의 첫 번째 파티션에 복사합니다 sdb. 부트로더나 다른 어떤 것도 복사하지 않습니다. 또한 sdb드라이브에 실제로 파티션 테이블이 없는 경우 (또는 sdb드라이브의 파티션이 잘못 설정된 경우)에도 올바른 작업이 수행되지 않습니다.

두 드라이브가 동일하고(또는 적어도 정확히 동일한 크기인 경우) 실제로 사용하려면 에 dd복사해야 합니다 ./dev/sda/dev/sdb

두 드라이브가 동일하지 않은 경우 다음과 같은 것을 사용하는 것이 좋습니다.클론속클론 시스템. Clonezilla는 부트로더와 파티션 테이블을 올바르게 처리하고 소스 시스템과 대상 시스템 간의 드라이브 크기 차이를 고려합니다.

또한 외부 드라이브의 내용을 두 번째 시스템(복사하려는 시스템)의 dd시스템 하드 드라이브에 복사하는 방법에 대해서는 언급하지 않았습니다. 실제로 두 번째 시스템을 부팅하고 외부 드라이브의 내용을 시스템의 하드 드라이브에 복사하여 이 작업을 수행하려는 경우(시스템이 실행되는 동안) 설명에 따르면 아마도 이런 일을 했을 수도 있을 것 같습니다. 시스템이 실행되는 동안 두 번째 시스템의 파일 시스템이 손상됩니다. 이 작업을 성공적으로 수행하려면 다른 소스(예: 이동식 미디어의 라이브 Linux 배포 이미지)에서 두 번째 시스템을 부팅하고 dd해당 소스에서 부팅하는 동안 이 작업을 수행해야 합니다.

관련 정보