Ubuntu 14.04本番サーバーを継承し、20.04にアップグレードする必要があり、サンドボックスのバージョンを試してみたいので、MacOSまたは他の14.04 virtualboxインスタンスからネットワーク経由でファイルシステムをdump
接続しようとしています。restore
この質問の以前のバージョンは次の場所にあります。https://askubuntu.com/q/1314747/963。
サーバーは自分のコンピュータを「見る」ことができないため、簡単にダンプを実行し、結果を自分のコンピュータにリモートでプッシュすることはできませんが、ダンプを実行するには自分のコンピュータでsshを呼び出す必要があります。
ssh -t me@there "echo MYPASSWORD | sudo -S dump -y -f - /boot 2>/dev/null " > boot.dump
\r
問題は、このコマンドを実行すると、文字の前に多数の文字が挿入され、\n
ダンプファイルが破損してrestore
使用できなくなることです。私はこれがおそらくドライバが改行を印刷に必要な文字に変換するためであることを知っていますが、これがどこで起こるのかわかりません。
正しいバイナリダンプファイルを取得するにはどうすればよいですか?
答え1
ONLCR
.c_oflag
これは、リモートシステムに割り当てられた擬似端末\n
(sshオプションのため)によって改行()がキャリッジリターン/改行()に変換されるようにするtermios設定です。\r\n
ssh
-t
オフにするには、次のコマンドを使用しますstty -onlcr
。
ssh -t me@there 'stty -onlcr; ...' > output
答え2
公式のASCII行末は次のとおりです(つまり、CではCR LF
行の先頭に戻って次の行に移動します)。\r\n
各行を1バイトに減らすために(メモリがKiBで測定され、ディスクが数百MiBの場合は非常に重要です)、Unixは行の\n
終わりのみを表示します。一部のシステム(特にMicrosoft)した標準に準拠しているため、システム間でテキストファイルを移動するときに、翻訳作業を行う必要がある場合があります。