AIX tarエラー:現在使用可能なメモリーが不足しています。

AIX tarエラー:現在使用可能なメモリーが不足しています。

AIX 5.3を実行するAIX P720サーバーがあります。テープ(IBM TS3100テープ・ライブラリー)から抽出を実行すると、tar -xvf /dev/rmt0次のエラーが発生しますThere is not enough memory available now。ファイルコピーを使用しようとすると、cpこの現象が発生します。ページングスペースを大幅に増やしましたが、問題は依然として続きます。

ベストアンサー1

Unixのテープデバイスは、バイトストリーム指向ではなくレコード指向であるという点で多少ユニークです。したがって、テープに書き込まれる各レコードは、いくつかのブロックサイズ(通常は512バイト)の整数倍でなければならず、単一の呼び出しwriteで完了する必要があります。各テープ装置にはレコードサイズの下限と上限があります。同様に、1回の呼び出しでレコードを読み取り、read少なくとも実際のレコードサイズと同じ大きさのバッファを提供する必要があります。読みたいサイズがレコードサイズより小さい場合、Unixは部分レコードを返さずにENOMEMエラーを返します。

レコードサイズの選択はアプリケーションによって異なります。 Tarにはb電話オプションがありますブロック要因;値20は20 * 512バイトを意味します。以前のオペレーティングシステムではバッファを64KBに制限するため、広く使用されているブロック要素は126ですが、最新の高速テープドライブにはより大きな最小レコードサイズが必要です。 cpioはこのCオプションを使用してバッファサイズを設定します。完全な状態を維持するには、通常、指定されたddブロックサイズ(bs=またはオプションを使用)を使用してテープドライブからデータを読み取り、データibs=の圧縮をフルプログラムにパイプすることをお勧めします。

だからこれを試してみてください:

dd if=/dev/rmt0 bs=1024k | tar xvf -

おすすめ記事