是否可以從保存在 NTFS 文件系統上的 .iso 中從 RAM 執行任何發行版?
完全從 RAM 執行是在各種發行版上完成的,例如Slax、DamnSmallLinux和更新的 Ubuntu 版本,而且由於我有 8GB,我可以完全從 RAM 執行許多發行版似乎是合理的(只要我選擇一個有能力的發行版)。
我想用
OpenELEC
(或任何發行版)來做這件事,但更複雜的是:我是一名.NET
開發人員,工作並主要使用 Windows,這意味著 NTFS 和 FAT32 是我首選的文件系統。直到有一天,如果 Windows 可以本地讀取/寫入 ext 分區,這將不會改變。Ext2fck 甚至不會安裝在 Windows 8 中,因此無法讓我相信在我的日常操作中使用不可讀格式的驅動器和分區的“優點”。還有諸如
syslinux
,vmlinuz
之extlinux
類的東西可以將.iso
文件載入到 RAM 中並有效地引導載入它們。為了錦上添花,Windows 的引導載入程序將允許我將這些作為選項添加到本機 Windows 引導菜單中,這是我為 UBCD 5.11 所做的,甚至可以用於虛擬文件系統等.vhd
。所以,這是我的夢想:
我想把這三者合二為一。我想要安裝一個已安裝的 ext2/ext3/ext4 分區,在這種情況下是安裝 OpenELEC,將其壓縮為 .iso,然後在我的引導菜單中創建一個條目,該條目將直接執行此操作,或者將其傳遞給 syslinux 或這樣將執行以下操作:
將 .iso 作為 ext2/3/4 分區完全提取到 RAM 中,然後引導到 RAM 中的該作業系統。然後,我將使用 ntfs-3g 為 OpenELEC 安裝的 /STORAGE 部分安裝我的 NTFS 硬碟驅動器。
然後,作為獎勵,在退出時,我會讓系統將自身重新壓縮為 .iso,如果成功替換初始 .iso,從而在引導過程中保持我的更改(前提是關閉成功)。它也不必從記憶體中複製自己:它可以將它想要跟踪的任何文件/更改(如果有些不可用)複製回它啟動的驅動器(如果存在),然後將其壓縮回 .iso .
Slax、DSL和Ubuntu可以啟動到 RAM 並保持更改,所以我知道如果您的作業系統支持它是可能的。我想知道這是否可以成為“適用於您想要的任何發行版的作品”。Slax 將您的更改保存在 ext 目錄 /slax/changes 中(如果它位於 ext 分區上),否則保存為 changes.dat(對於 NTFS/FAT32)。我想這個解決方案也可以工作,但可能需要與託管作業系統進行更多的互動來協調這一點,而不是使用 .iso。
那麼,我能走多遠呢?
是否已經有簡單的解決方案?我是否必須編寫自定義的 ‘SYSLINUX’/‘ISOLINUX’/‘EXTLINUX’/‘VMLINUX?要做到這一點需要什麼,如果已經有可能,我該如何開始?
Puppy Linux有一個 EXE 安裝程序,它使用syslinux從****FAT32、NTFS或 Linux 文件系統(即 ext2/ext3/ext4、xfs 等)上的 .iso 啟動,並使用unionfs / aufs**在 RAM 中執行,**並具有對持久儲存的完全訪問權限(磁碟、SD、快閃記憶體驅動器等)。
當然,可以從命令行或腳本安裝其他 ISO,也可以在包含的 ROX-Filer 文件管理器中點擊它們。一個方便的用途是選擇性地從舊版本訪問或恢復文件,而不必回滾所有內容。
最初的 Puppy Linux 發行版 ISO,它本身通常是一個 ext3/4 文件系統,保存在 aufs 堆棧的最低層。更改記錄在最頂層並定期(可配置)刷新到磁碟到“保存文件”。在啟動時,原始 ISO 被載入到 RAM 並以只讀方式掛載,然後保存文件被載入並以只讀方式掛載以覆蓋它,並為任何新更改掛載一個空的讀寫層。要保留更改歷史記錄,只需將保存文件 ISO 設置為自動或手動複製到存檔目錄即可。
unionfs/aufs 的 O/S “分層”以及文件系統的多掛載是這里工作的核心技術,所以如果 Puppy Linux 不適合您,請尋找使用它們的其他發行版。
Puppy Linux有很多可用的安裝選項,包括Windows EXE 安裝程序,它是一個單獨的包,用於設置 Windows 引導載入程序以進行雙引導。