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.tar
dd
fromを使って読みます/dev/rdsk/1s1
(私の考えでは... 0s0がルートディスクのようです)。 「fdisk /dev/rdsk/1s1」を試してみることもできます。- 既存のディスクイメージの最後に追加し、
dd
:Dとして読み込みます。 (クレイジー...) - /dev/fdまたは/dev/rdskデバイスを使用する必要があります。
- 翻訳:
RAW
(VMDK
VMwareおよび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