ルート化されたAndroid 4.xで自動拡張tmpfs ramdiskを作成することは可能ですか?はいの場合、どのように?
ルート化されたAndroid 4.xで自動拡張tmpfs ramdiskを作成することは可能ですか?はいの場合、どのように?
回答:
実行すると、tmpfsにcat /proc/filesystems
気付くはずです。したがって、コマンドにアクセスできる場合、次のことができるはずです。mount
mkdir MYDIRECTORY
)mount -t tmpfs tmpfs MYDIRECTROY
)デフォルトでは、tmpfs-mountはシステムで使用可能なRAMのhalvを使用します。したがって、「自動拡張」ではなく、「自動圧縮」と考えることができます。つまり、使用するほど、使用可能なRAMは少なくなります。最悪の場合、システムがスワップを開始する可能性があります(これは望ましくありません)。オプションを使用して、そのマウントに異なるRAMサイズを使用できます。
2017-02-28更新:Androidによる制限のため、すべてのアプリに対して書き込み可能なものより下のマウントポイントを選択する必要があります。SDカードのように。
mount -o size=16M -t tmpfs tmpfs /data/local/tmp
ls -Fal
マウントされたディレクトリ内で発行した場合?
ls -Fal
マウントされたディレクトリでの出力はありません。プロンプトが表示されるだけです。私は親からディレクトリの一覧を表示した場合、私が取得drwxrwxrwt root root 2014-04-06 20:18 tmp
OPが同封したリンキーから、重要な部分はそれを要約しました:
tmpfsは、バージョン2.4以降のLinuxカーネルでサポートされています。[3] tmpfs(以前はshmfsと呼ばれていました)は、起動時に使用されるramfsコードに基づいています
RAMDiskとは、私のものを強調してください!これにより、カーネルは一時的にルートファイルシステムをマウントし、起動時に必要なスクリプトの実行を継続できます。
このAndroidの場合にも同じことが当てはまります。Odin、fastboot、Kies、Sony Update Software、Heimdallなどによってboot.img
、/boot
パーティションにフラッシュされるものすべてに、適切なコードを含むディレクトリ構造を持つ「ramfsコード」が含まれています。含まれています:
/dev
デバイスファイル用/sbin
システムバイナリ用/sys
マウント後 のデバイスファイルとの対話の使用法/proc
起動スクリプトは、ramfsディレクトリ構造を読み取り、/system
起動の非常に早い段階でを正常にマウントした後でマウントします。
質問のOPのキーワードに関連して:
自動成長を作成します...
それ自体は自動拡張せず、ramfs構造と使用可能なRAMの容量によって制限されます。さらに重要なことに、再起動時に表示されなくなります!
混乱は、「RAMDisk」と「RAMDrive」が交互に混在することから生じます。技術的には、RAMDriveは、ネイティブのスワップパーティションのスワップスペースであり、デスクトップLinux で一般的に見られます。RAMDriveが使用されていた古いDOS時代を考えている場合、メモリに常駐するディスクドライブ、およびそのディスクにコピーされ、プログラムが古いMFM / RLLディスクドライブからロードするのではなく、高速にロードされて実行をシミュレートする(これらのドライブでDOSディレクトリのリストが非常にゆっくりスクロールするのを見る) ?)これは、RAMDiskとも呼ばれていました。(さらに悪いことに、当時、さまざまなメーカーがRAMDRIVE.SYSまたはRAMDISK.SYSを作成していました!)
Linuxカーネル(デスクトップとAndroidの両方)の観点から見た場合、RAMDiskはtmpfsですが、カーネル自体による使用のみを目的としているため、通常のユーザーがデータやドキュメントなどを格納することはできません。
以下の@nilのコメントに注意して、はいをマウントできますが、それにはコストがかかり、tmpfs
getsに割り当てられたリソースは半分になり、残っているRAMの残りの半分を使い果たします。現実的に言えば、デバイス上で実行されているAndroidの観点から見ると、これは理想的な道ではありません。
それはここ/sdcard
に、入って来ストア私は再びあなたができるという事実を省略し、なぜそれゆえ、その理由だけユーザーデータ/文書、なぜ?
mount -t tmpfs
。
mount -t tmpfs
後に実行された時点から行われ、それがマウントされると、システムの残りの部分がAndroid環境であるポストブートのように起動します。また、後で実行することで、たとえばadb shell
、メモリとリソースが限られているスマートフォンの場合は特に、システムリソースを削減できます。