以前のsysV unixでフロッピーディスクをフォーマットするときに発生する数学的問題

以前のsysV unixでフロッピーディスクをフォーマットするときに発生する数学的問題

以前のsysVR4では、フロッピーをこのようにフォーマットしました。

1.44MBフロッピーディスク

mkfs -F ufs /dev/dsk/f03ht 2560  

1.2MBフロッピーディスク

mkfs -F ufs /dev/dsk/f13dt 2440

2440と2560は512 * 4と512 * 5を使用して計算されます。 2.88MB フロッピーディスクの正しい値はどのように計算されますか?ありがとう

マニュアルで報告されたブロックは5760で、UnixバージョンはInteractive Unix 4.1です。提供されるエラーは次のとおりです。

mkfs -L  -f /dev/rdsk/f0q36dt  5760:900  1 72
bytes per logical block = 1024
total logical blocks = 2880
total inodes = 896
gap (physical blocks) = 1
cylinder size (physical blocks) = 72 
mkfs: write error: 9

答え1

あなたの体型は確実ですか? 1.44MBフロッピーディスクは80トラックのディスクであると思います。各トラックは18,512バイトのセクタを含み、両面に書き込むことができます。 1.2MBには15トラックしかありません。したがって、このロジックによれば、(80 * 18 * 2) == 28801.44MBフロッピーディスクと1.2MBフロッピーディスク(80 * 15 * 2) == 2400の両方にセクタがあります。 UFSファイルシステム(ブートセクタ、スーパーブロック...)によって発生したオーバーヘッドを直接計算する必要があるのか​​、mkfsが代わりに計算を実行しますが、このロジックに基づいているのかはわかりません。 2.88MBフロッピーが作られているようです。最大80トラック、各トラックには36セクタがあり、両面に書き込むことができ、(80 * 36 * 2) == 5760512バイトのブロックを形成できます。作成するファイルシステムの合計サイズ(使用可能なサイズだけでなく)をmkfsに提供する必要があると仮定する場合は、次のようにします。

mkfs -F ufs /dev/yourdisk 5760

関連情報