내 로컬 컴퓨터에서 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
모니터링 방법?
ssh
다른 터미널을 통해 로그인하여ls -l
파일 크기를 확인하십시오.이를 사용하여
pv
대규모 dd 작업의 진행 상황을 모니터링할 수 있습니다. 예를 들어 위의 원격 예에서는 다음을 수행할 수 있습니다.$ dd if=/dev/sda | gzip -1 - | pv | ssh user@local dd of=image.gz
"SIGUSR1" 신호를 보내면
dd
통계가 인쇄됩니다. 그것은 다음과 같습니다:$ pkill -USR1 dd
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
설치되지 않음(의도적)
그래서 내가 한 일은 다음과 같습니다.
- 장치 파일 권한 확인(적절한 블록 장치 명명 체계(,,
hd
등)에 대한 grep)sd
nvme
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
disk
그룹 에 사용자 추가
root@machine:~$ usermod -aG user disk
- 그런 다음 이미 시도한 것과 동일한 방식으로 실행하십시오
dd
(그러나 수행하지 않음sudo
).
ssh [email protected] "dd if=/dev/sdX " | dd of=/home/username/Documents/filename.image
(또는 다른 사람들이 제안한 대로 링크 gzip
)