dd한 번에 하나의 플로피 디스크에 파일을 사용하거나 쓰십시오 split.

dd한 번에 하나의 플로피 디스크에 파일을 사용하거나 쓰십시오 split.

CDROM 드라이버도 없고 ufs 디스크도 없는 고대 유닉스(at&t 2.1)를 실행하는 가상 머신에 70MB의 대용량 파일을 전송하고 싶습니다. (ufs 43bsd를 사용하여 systemV ufs를 마운트하려고 하면 Linux에서 오류가 발생합니다.) 플로피가 없습니다. 디스크(70MB 플로피 디스크가 존재하지 않습니다..) 그래서 저는 minicom+kermit을 선택합니다. at&t 측면에서는

kermit -g file.tar

리눅스 측에서는 minicom을 엽니다.

ctrl+a+s

kermit을 선택하고, file.tar를 선택하세요. 와... 아무 일도 일어나지 않습니다. AT&T 시리얼 화면에 보니

/usr/local/bin/kermit -g file.tar                                                           
Return to your local Kermit and give a SERVER command.                                                                  

KERMIT READY TO GET...                                                                                                  
3 EToo many retries_N"U1@            

해결책이 있나요?

답변1

나는 사용했다게임+QEmu 모니터dd를 사용하여 플로피 디스크를 마운트하고 원시 데이터를 읽습니다.

dd한 번에 하나의 플로피 디스크에 파일을 사용하거나 쓰십시오 split.

참고: 1474560개의 볼륨으로 분할해야 할 수도 있습니다(/dev/rdsk/f03ht는 다음과 같습니다).

compress시도해 볼 수도 있습니다.

# Archive the files you wish to send using `tar` (supported on SYSV). 
$ ls -la test.tar
----------+ 1 cmihai None 5901312 Dec  2 20:55 test.tar

# Split into 1.44MB volumes
$ split -b 1478656 test.tar test_floppy_

$ ls -la test_floppy*
-rw-r--r--+ 1 cmihai None 1478656 Dec  2 21:10 test_floppy_aa
-rw-r--r--+ 1 cmihai None 1478656 Dec  2 21:10 test_floppy_ab
-rw-r--r--+ 1 cmihai None 1478656 Dec  2 21:10 test_floppy_ac
-rw-r--r--+ 1 cmihai None 1465344 Dec  2 21:10 test_floppy_ad

플로피 디스크를 넣습니다 qemu.

Qemu 모니터를 사용 하려면 Ctrl+ Alt+를 누르세요 .2qemu

change floppy0 test_floppy_aa
info block

Ctrl+ +를 눌러 Alt터미널로 돌아갑니다.1

참고: 테스트하려면 블록 장치 대신 원시 장치 /dev/rdsk/f03ht를 읽어야 할 것입니다.

dd if=/dev/dsk/f03ht of=test_floppy_aa
dd if=/dev/dsk/f03ht of=test_floppy_ab
...

짐 등에서 꺼내다

cat a b c | tar -tvt test_floppy_* # test..
cat a b c | tar -xvt test_floppy_*

다른 아이디어

  • qemu-system-i386 -hda sysv.img -hdb test.tarddfrom을 사용하여 읽습니다 /dev/rdsk/1s1(내 생각엔...0s0이 루트 디스크인 것 같습니다). "fdisk /dev/rdsk/1s1"을 시도해 볼 수도 있습니다.
  • 기존 디스크 이미지 끝에 추가하고 dd:D로 읽습니다. (미친...)
  • /dev/fd 또는 /dev/rdsk 장치를 사용해야 할 수도 있습니다...
  • 번역: RAW( VMDKVMware 및 VirtualBox에서 사용 가능): qemu-img convert -O vmdk sysv.img sysv.vmdk이제 VMware 또는 VirtualBox 네트워크 카드 드라이버가 지원되는지 확인할 수 있습니다...
  • kermit// 일단 찾으면 tip시도해볼게cu플로피 디스크그것들이 포함되어 있고 /dev/무엇을 사용해야하는지 ...

노트:

  • tar는 /dev/dsk/f03ht에서 직접 읽을 수 있습니다. 전임자: tar -tvf /dev/dsk/f03ht. 아마도 다중 볼륨 플로피를 만들고 dd 부분은 잊어버려야 할 것입니다... WIP :-).

답변2

마침내 나는 성공했습니다. 처음에는 kermit 프로그램이 경로에 대한 오류를 제공하지 않았기 때문에 Minicom에 "내장"되어 있다고 생각했습니다("run kermit" 명령을 내리지 않는 한).

빠른 가이드:

클라이언트: Slackware 15 서버: 네트워크가 없는 Unix System V SVR4(qemu는 libvirt에서 WD8003 보드를 지원하지 않기 때문에)

클라이언트에 ckermit 설치

sudo sbopkg -B -i ckermit

서버에서 getty 활성화

vi /etc/inittab

1r:12345:respawn:/etc/getty tty00 19200

q를 초기화하세요

init q

CLIENT에서는 어떤 시퀀스가 ​​오래된 SVR4를 사용하는지 필요합니다.

virsh ttyconsole Unixvm
/dev/pts/7

CLIENT에서는 minicom과 연결됩니다.

minicom -D /dev/pts/7

Unix SERVER에 로그인한 후 minicom에서 minicom 경로를 구성합니다(ctrl+o, 경로 구성 등..).

서버에 kermit 프로그램이 있습니다(인터넷에서 Unix 바이너리 파일 검색).

./KERMIT
C-Kermit, 4F(077) 1 Apr 89, AT&T System III/System V
Type ? for help
C-Kermit>server

C-Kermit server starting.  Return to your local machine by typing
its escape sequence for closing the connection, and issue further
commands from there.  To shut down the C-Kermit server, issue the
FINISH or BYE command and then reconnect.

클라이언트 미니콤에서 ctrl+a를 누른 후 s를 누르고 미니콤을 선택한 후 전송할 파일 경로를 선택하세요.

여기에 이미지 설명을 입력하세요.

느리지만 작동합니다!

SVR4의 기본 파일 제한은 2048KB이므로 2MB를 초과하는 파일 전송은 실패합니다. 해결 방법은 kermit을 시작하기 전에 ulimit를 사용하는 것입니다(bash가 아닌 ksh에 적용됨).

ulimit -f yourvalue

관련 정보