web-dev-qa-db-ja.com

非永続的なライブシステム上のプログラムとファイルは正確にどこに保存されますか?

最近、ライブシステムでさまざまなカーネルブートオプションをテストする必要があり、ブートごとにシステム情報をチェックするプログラムをインストールする必要がありました(利用可能なUSBドライブがなく、その時点でCDがより信頼できる選択肢でした)。

CDには永続的な領域がなく、USBドライブを作成せずにUSBドライブを作成することもできるため、いくつかのインストールを行った後、プログラムが実際に「保存」されている場所を知り始めました。また、非永続的なライブシステムでファイルをダウンロードしたり、スクリーンショットを作成して、ユーザーディレクトリに一時的に保存することもできます。

これらのファイルは実際にどこに保存されますか?それらはRAMにロードされているので、ライブシステムで使用可能な最大メモリは実際にはマシンのRAM容量ですか?インストールされたプログラムはCPUキャッシュまたは他のどこかに完全に保存されていますか?または、その情報はおそらくCDメディアの空きスペースに書き込まれていますか?ライブシステムは完全に暗号化された状態でも動作し、ハードドライブがインストールされていなくても動作するため、明らかに未割り当てのハードドライブ領域にはなりません。

8
Prototype700

それは非永続的だと言います。そのため、リブート間で「持続」しません(存在し続けます)。起こることは、RAMの一部がRAMディスクとして使用されることです。基本的に、RAMの一部はディスクのシミュレーションに使用されます。これですべてです。そのため、LiveCDセッション中に/ home/ubuntuにファイルを作成できます。再起動後、それらは生き残りません(= persist)。

便利なLiveCDはありませんが、次回ターミナルでdf -hと入力して、/マウントポイントを探してみてください。デバイスを見てください。ほとんどの場合、tmpfsのようなものになります。 (この1つのライナーにより、興味のある行が表示されます:df -h | grep \/$

RAMディスク についての読み物。

10
jawtheshark

Ubuntu ISOに付属のライブシステムは、filesystem.squashfsという圧縮ファイルにインストールされたUbuntuです。このファイルのファイルシステムは SquashFS です1 これは、マウントして使用できるCDおよびDVDのISOファイルシステムに匹敵します。2

このファイルは、CDの/casper/ディレクトリにあります。 ISOファイルをマウントできるのと同じ方法で、このファイルをマウントすることもできます。

このファイルは、起動中にマウントされ、メモリにロードされて、ライブシステムとして使用されます。ただし、完全なファイルは一度にロードされるのではなく、必要な部分/プログラムのみがオンデマンドでロードされます。

Live Systemは、Persistent Fileを使用してメディアのファイルを作成/変更できます。 Ubuntuで使用される永続ファイルの名前はcasper-rwで、ext3ext4などの書き込み可能なファイルシステムが含まれています。起動可能なUSBでは、これはドライブのルートにあります。

このcasper-rw永続ファイルは、オーバーレイファイルシステムとして ユニオンマウント です。つまり、読み取り専用filesystem.squashfsと読み取り/書き込み可能casper-rwの両方が/にマウントされます。変更または作成されたファイルは、casper-rwのこの書き込み可能なファイルシステムに保存されます。したがって、Live CDは書き込み可能であるが、実際には書き込み可能ではないという錯覚を効果的に作り出します。

だから、あなたの質問に答える-

これらのファイルは実際にどこに保存されますか?

上記の回答。

それらはRAMにロードされているので、実際のシステムで使用可能な最大メモリは実際にはマシンのRAM容量ですか?

memoryによって、スペースを参照していると思います。あなたの質問は、「稼働中のシステムの最大利用可能スペースは、実際にマシンのRAM容量です」ですか?

いいえ。ライブシステムで使用可能な最大ストレージは、永続ファイルのサイズ(ある場合)+スワップスペース(既に存在する場合)+ RAM(再起動までストレージとして使用する必要があります) )

インストールされたプログラムはCPUキャッシュまたは他のどこかに完全に保存されていますか?

Persistent FileなしでLiveシステムにプログラムをインストールする場合、それらはメモリに保存されます。再起動すると、すべてが失われます。ただし、casper-rw永続ファイルを使用している場合、それらはそのファイルに保存され、次の再起動後に使用可能になります(そのファイルを削除しなかった場合

または、その情報はおそらくCDメディアの空きスペースに書き込まれていますか?

いいえ、CDメディアには書き込みません。前の回答で説明したように。

答えが得られることを願っています。


ノート:

  1. SquashFS-ファイルシステム全体または単一のディレクトリを圧縮し、他のデバイス/パーティションまたは通常のファイルに書き込み、それらを直接(デバイスの場合)またはループバックデバイス(ifファイルです)。 ソース

  2. Sudo mount ./filesystem.squashfs /mnt -o loopのようなコマンドを使用してマウントできます

  3. ユニオンマウントは、複数のディレクトリを結合した内容が含まれているように見えるディレクトリに結合する方法です。 ソース

10
Anwar