로컬 컴퓨터에서 SSH를 사용하여 원격 디스크를 추가하고 로컬 디스크에 저장하는 방법

로컬 컴퓨터에서 SSH를 사용하여 원격 디스크를 추가하고 로컬 디스크에 저장하는 방법

내 로컬 컴퓨터에서 SSH를 사용하여 원격 디스크의 백업을 생성하고 이를 내 로컬 디스크에 저장하려면 어떻게 해야 합니까?


나는 다음을 시도했습니다 :

ssh [email protected] "sudo dd if=/dev/sdX " | \
  dd of=/home/username/Documents/filename.image`

그러나 다음과 같은 오류가 발생합니다.

tty가 존재하지 않으며 Askpass 프로그램이 지정되지 않았습니다.

답변1

원격 컴퓨터를 백업하는 것이 목적인 경우하드 디스크 드라이브SSH를 통해 로컬 컴퓨터 HDD의 단일 파일에 연결하면 다음 중 하나를 수행할 수 있습니다.

원격 컴퓨터에서 실행

$ dd if=/dev/sda | gzip -1 - | ssh user@local dd of=image.gz

로컬 컴퓨터에서 실행

$ ssh user@remote "dd if=/dev/sda | gzip -1 -" | dd of=image.gz

$ ssh skinner "dd if=/dev/sda5 | gzip -1 -" | dd of=image.gz
208782+0 records in
208782+0 records out
106896384 bytes (107 MB) copied, 22.7608 seconds, 4.7 MB/s
116749+1 records in
116749+1 records out
59775805 bytes (60 MB) copied, 23.9154 s, 2.5 MB/s

$ ll | grep image.gz
-rw-rw-r--.   1 saml saml  59775805 May 31 01:03 image.gz

모니터링 방법?

  1. ssh다른 터미널을 통해 로그인하여 ls -l파일 크기를 확인하십시오.

  2. 이를 사용하여 pv대규모 dd 작업의 진행 상황을 모니터링할 수 있습니다. 예를 들어 위의 원격 예에서는 다음을 수행할 수 있습니다.

     $ dd if=/dev/sda | gzip -1 - | pv | ssh user@local dd of=image.gz
    
  3. "SIGUSR1" 신호를 보내면 dd통계가 인쇄됩니다. 그것은 다음과 같습니다:

     $ pkill -USR1 dd
    
  4. dd진행 스위치를 사용하세요 .status=progress

인용하다

위에서 언급한 모니터링 방법은 원래 댓글로 남겨두었던 내용입니다.@라이언&@애새끼그리고 나 자신. 나는 그것들을 더 명확하게 만들기 위해 답변으로 옮겼습니다.

답변2

발생하는 오류는 원격으로 sudo를 사용하기 때문에 발생합니다(비밀번호를 묻는 메시지가 표시되지만 이를 입력할 tty가 없습니다). 반면에 일반 사용자는 일반적으로 dd다른 답변에서 제안한 대로 간단히 사용할 수 없습니다(기기에 필요한 권한이 없습니다). dd비밀번호 없이 sudo로 실행할 수 있는 권한을 부여하여 이 문제를 해결할 수 있습니다 . sudoers 파일을 편집하여 이 작업을 수행할 수 있습니다(리모컨에서!):

sudo visudo

다음 줄을 추가합니다.

userfoo ALL=(ALL) NOPASSWD: /bin/dd if=/dev/sdX

이제 다음을 발행할 수 있습니다:

ssh userfoo@host "sudo /bin/dd if=/dev/sdX" | dd of=test.dd

작동해야합니다. sudoers에서 어떤 매개변수로도 실행할 수 있는 보다 일반적인 항목을 만들 수 있지만 dd이 무료 권한을 필요한 최소한으로 유지하는 것이 더 현명합니다.

답변3

방금 가상 Linux Mint 상자의 수정된 버전을 사용하여 노후화된 RedHat 서버의 물리적 하드 드라이브를 복제했습니다.

가상 머신에서 루트로 다음 명령을 실행했습니다.

ssh [email protected] "dd if=/dev/cciss/c0d0" | dd of=/dev/sdb
  • 192.168.1.5는 물리적 Red Hat Enterprise Linux 2.1 시스템입니다.
  • /dev/sdb는 일단 복제되면 오래되고 죽어가는 물리적 상자의 가상 버전에 대한 기반이 될 새로운 가상 디스크입니다.

답변4

최근에 비슷한 상황이 발생했습니다. 나에게 차이점은

  • 보안 조치로 인해 root ssh액세스가 비활성화되었습니다.
  • sudo설치되지 않음(의도적)

그래서 내가 한 일은 다음과 같습니다.

  1. 장치 파일 권한 확인(적절한 블록 장치 명명 체계(,, hd등)에 대한 grep)sdnvme
user@machine:~$ ls -la /dev/ |grep sd
brw-rw----  1 root disk      8,   0 Nov 22 13:36 sda
brw-rw----  1 root disk      8,   1 Nov 22 13:36 sda1
brw-rw----  1 root disk      8,   2 Nov 22 13:36 sda2
brw-rw----  1 root disk      8,   5 Nov 22 13:36 sda5
  1. disk그룹 에 사용자 추가
root@machine:~$ usermod -aG user disk
  1. 그런 다음 이미 시도한 것과 동일한 방식으로 실행하십시오 dd(그러나 수행하지 않음 sudo).
ssh [email protected] "dd if=/dev/sdX " |  dd of=/home/username/Documents/filename.image

(또는 다른 사람들이 제안한 대로 링크 gzip)

관련 정보