Oracle Solaris カーネルのチューンアップ・リファレンスマニュアル

nfs:nfs_allow_preepoch_time

備考欄

タイムスタンプが正しくなかったり「負」であるファイルをクライアントから表示できるようにするかどうかを制御します。

従来、NFS クライアントも NFS サーバーも、返されるファイルの時間範囲を確認していませんでした。伝送されるタイムスタンプ値は符号なしの 32 ビット long です。したがって、あらゆる値が有効でした。

しかし、32 ビットの Solaris カーネルが動作しているシステムでは、タイムスタンプの値は符号付きの 32 ビット long です。このため、タイムスタンプが 1970 年 1 月 1 日より前の表示 (つまり「昔」の) になっていることがあります。

64 ビットの Solaris カーネルが動作しているシステムでの問題は、これとは多少異なります。64 ビットの Solaris カーネルでは、タイムスタンプ値は符号付きの 64 ビット long です。時刻フィールドがフルの 32 ビットの時刻を表しているのか、時刻フィールドが負の時刻、つまり、1970 年 1 月 1 日より前を表しているのかを判別できません。

32 ビットから 64 ビットに変換するときに、時刻に符号を付けるかどうかを決定することはできません。時刻値が本当に負数の場合は、値に符号を付けるべきです。しかし、時刻値がフルの 32 ビット時刻値を本当に表している場合は、時刻値に符号を付けるべきではありません。この問題は、フルの 32 ビット時刻値を無効にすることによって解決できます。

データ型

整数 (32 ビット)

デフォルト

0 (32 ビットのタイムスタンプを無効にする)

範囲

0 (32 ビットのタイムスタンプを無効にする) または 1 (32 ビットのタイムスタンプを有効にする)

単位

ブール値

動的か

はい

検査

なし

どのような場合に変更するか

正常な操作が行われていても、ファイルによっては、タイムスタンプ値がはるかに離れた将来や過去の日付に設定されることがあります。NFS でマウントされたファイルシステムを使用してこれらのファイルにアクセスすることが望ましい場合は、このパラメータを 1 にすれば、タイムスタンプ値をチェックなしで受け取ることができます。

コミットレベル

変更の可能性あり