dd一度に1つのフロッピーディスクにファイルを使用または書き込みますsplit。

dd一度に1つのフロッピーディスクにファイルを使用または書き込みますsplit。

CDROMドライバもなく、ufsディスクもない古代Unix(at&t 2.1)を実行している仮想マシンに70MBの大容量ファイルを転送したいと思います。 (ufs 43bsdを使用してsystemV ufsをマウントしようとすると、Linuxでエラーが発生します。)フロッピーはありません。ディスク(70MBフロッピーディスクは存在しません。)だから私はminicom + kermitを選択します。 at&t側では

kermit -g file.tar

Linux側では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一度に1つのフロッピーディスクにファイルを使用または書き込みます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

注:テストするには、ブロックデバイスの代わりにrawデバイス/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デバイスを使用する必要があります。
  • 翻訳:RAWVMDKVMwareおよびVirtualBoxで利用可能):qemu-img convert -O vmdk sysv.img sysv.vmdkVMwareまたは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

関連情報