自分のローカルコンピュータで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サーバーの物理ハードドライブを複製しました。
仮想マシンでrootとして次のコマンドを実行しました。
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
)