
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)했다표준을 따르므로 시스템 간에 텍스트 파일을 이동할 때 때로는 번역 작업을 수행해야 하는 경우가 있습니다.