自己动手 打造RAM OS系统
liebian365 2025-01-03 17:09 18 浏览 0 评论
通过上面的描述我们知道RAM OS的很多优点,那么在自己老机上该怎么安装RAM OS?下面我们以安装精简Windows 7系统为例。由于RAM OS制作有些复杂,这里我们制作一张流程图供大家参考(图1)。
图1 RAM OS制作流程图
制作VHD系统
首先准备好Windows 7精简系统安装文件(需要专业版以上版本),将其加载到资源管理器虚拟光驱中备用。这里要注意精简版本的选择,过于精简的版本会缺少很多组件,给日常使用带来不便如无法安装QQ,精简不足版本则体积过大,无法直接装入内存,建议安装后系统体积一般大于1G,不要超过2GB。可以在安装好的VHD系统中试用满意后再将其制作为RAMOS。
接着启动“VHD_OneKey”,点击“创建VHD”,设置好放置VHD文件位置,大小建议设置为2.5GB(4GB内存用户),格式选择为“固定大小”,装入VHD的WIM位置选择虚拟光驱中的“install.wim”,映像号选择“专业版以上版本”,其他参数默认,点击“确定”即可将系统安装文件释放到VHD磁盘(图2)。
图2 安装VHD系统
完成文件的释放后,返回程序主界面切换到“挂载/卸载VHD”,将上述安装完系统的VHD文件加载,点击“向BCD中添加VHD项目”,这样即可在BCD中添加“Windows [WIN7_V.VHD]”启动菜单(图3)。
图3 添加VHD启动
由于RAMOS启动是通过虚拟磁盘的BOOTMGR加载,还要将必需的启动文件复制到VHD磁盘中。打开装载Windows 7精简系统安装文件窗口,将其中的“bootmgr”文件和“boot”目录复制到VHD磁盘根目录下备用。
VHD系统设置
重启选择“Windows [WIN7_V.VHD]”,按屏幕提示完成VHD系统的安装。进入VHD系统,在VHD系统安装好本机驱动、平时使用的软件(建议均安装绿色精简软件,这样占用的空间不会过大)。完成上述操作后根据自己需要进行优化,建议关闭虚拟内存、休眠、系统还原等占用空间等操作。如果经过上述优化后体积仍然过大,还可以借助Dism++进行一步优化,启动程序后切换到“常用工具→空间回收”,勾选右侧窗格的所有项目(特别是CompactOS,压缩后可以大幅减少系统体积),点击“扫描”后在清理即可(图4)。
小提示:
Dism++清理可能会造成VHD系统无法启动,因此在执行优化操作前建议备份一份VHD文件,如果优化后出现问题,使用备份VHD替换错误文件即可恢复。
图4 使用Dism++优化系统
到http://955.cc/mb7QT下载“Primo Ramdisk Server Edition”,启动程序后单击主窗口左下角的“设置”图标,在打开的窗口勾选“支持系统未识别内存休眠”,这样可以充分利用32位系统无法识别的内存(图5)。
图5 启用系统未识别内存休眠
返回程序主窗口点击“+”,新建一个虚拟磁盘,在弹出向导提示选择“使用全新设置创建虚拟磁盘”,硬盘大小设置为“2700MB”,类别选择“SCSI硬盘”,盘符为R,剩余操作按照屏幕提示完成操作即可。这里要注意的是虚拟硬盘大小要根据自己内存容量设置,最大可设置数是在当前VHD新特性下可用内存,比如4GB用户(开启支持系统未识别内存休眠后总可以用容量为3.75GB),因此建议设置为2700MB,这样进入RAMOS还可以使用900MB左右的内存。因此要设置更大的内存盘,当前系统就必须尽可能占用少的内存,如果当前VHD系统内存占用过大,可以进入占用内存更小的WinPE系统里设置。(图6)
图6 设置虚拟磁盘
返回程序主窗口,点击“保存硬盘内容”,然后将当前创建的虚拟磁盘保存到D:\ramos.vdf,这个就是用来加载RAMOS的载体。这个操作会将在当前虚拟磁盘的操作保存,因此以后进入RAMOS后如果要保存在其中的操作(如新装的驱动、软件等),同上进行保存即可在重启后继续进入RAMOS中使用(图7)。
图7 保存硬盘内容
转化为RAMOS
完成上述操作后关闭VHD系统进入老机原来的系统,到http://grub4dos.chenall.net/下载Grub引导文件,下载后将其中的grldr和grldr.mbr复制到C:\备用。
启动Diskgenius,点击“硬盘→打开虚拟磁盘文件”,然后依次打开上述制作的VHD磁盘、Ramos.vdf(加载vdf文件时需要选择“全部文件类型”才可以选择),将两个虚拟磁盘全部加载(图8)。
图8 加载虚拟磁盘
点击“工具→克隆分区”,源分区选择上述加载的VHD分区,目标分区选择加载的vdi虚拟磁盘,点击“开始”,将VHD系统克隆到VDI分区中(图9)。
图9 克隆分区
返回程序主界面,选中加载VDI分区切换到“浏览文件”,依次展开“windows\system32\config”,选中“system”右击选择“复制到桌面”,将其复制到桌面备用。同上,展开“boot”,将其中“BCD”文件也复制到桌面备用。
启动注册表编辑器,定位到[HKEY_LOCAL_MACHINE],点击“文件→加载配置单元”,加载上述提取到桌面的“system”文件,为配置单元设置名称为“Cfan”。展开[HKEY_LOCAL_MACHINE\cfan\ControlSet001\Control\PnP],将其右侧PollBootPartitionTimeout的值更为十进制的“30000”,否则启动后会蓝屏(图10)。
图10 更改键值
继续展开[HKEY_LOCAL_MACHINE\cfan\MountedDevices],选中右侧窗格“\DosDevices\C:”,将其重命名为“\DosDevices\R:”,同上将“\DosDevices\R:”更改为““\DosDevices\C:”即互换C:和R:的盘符,使得启动RAMOS后虚拟磁盘分区为C:。最后点击“文件→卸载配置单元”,并将修改过的数据保存。
启动bootice.exe,切换到BCD编辑,点击“添加→新建实模式启动项”,设备类为“partition”,启动磁盘和分区选择当前硬盘和C:,启动文件选择“\grldr”,菜单名称为“启动RAMOS系统”,勾选“禁用数字签名”,其他设置默认,然后依次点击“保存当前设置”和“保存全局设置”(图11)。
图11 设置GRUB启动
同上,打开上述导出到桌面上的BCD(即RAMOS的BCD配置文件),删除默认启动项,点击“添加→Win7/8/8.1启动项”,设备类为“partition”,启动磁盘为“boot(wim)和locate(vhd)”,其他选择默认,最后保存。
返回Diskginus的VDI磁盘文件浏览窗口,展开“windows\system32\config”,右击选择“复制文件到当前分区”,将修改过的“system”文件复制并替换同名文件,同上将修改过的“BCD”也复制到“boot”下替换同名文件。
启动记事本新建一个menu.lst文件,代码如下:
color blue/green yellow/red white/magenta white/magenta
timeout 30
default /default
title RAMOS
find --set-root /ramos.vdf
map (hd0) (hd1)
map --read-only /ramos.vdf (hd0)
map --hook
chainloader (hd0,0)/BOOTMGR
完成后点击“文件→保存”,保存类型选择“所有文件”,编码选择“Unicode”,保存在C:\即可(图12)。
图12 保存menu.lst
完成上述操作后重启系统,以后在多重启动菜单选择“启动RAMOS”即可进入内存操作系统了。如果要对RAMOS做更改,同上在“Primo Ramdisk Server Edition”执行“保存硬盘”操作即可,否则重启后会自动删除所有在RAMOS中的读写操作。
相关推荐
- 几句代码实现搜索内存、解密数据库
-
本文只分享编程技术,不涉及具体软件。涉及具体软件的文章或工具出现很多年了,到处都是。头条上也有很多,这里我们不讨论。有用户问我:登录后才能解密,输入密码后才能备份出数据库,这些本来就是我自己可以查看的...
- JDK 11 新特性总结(jdk最新特性)
-
一、语言特性增强局部变量类型推断升级支持在Lambda表达式参数中使用var关键字,编译器自动推断类型,简化代码编写并保持类型安全。...
- 和爷爷一起学Arduino:四位七段数码显示(学习面向对象编程)
-
2018年,我们买了个七段四位数码显示LED组件,如下图。经试验,它是与TM1637兼容的。右侧的引脚从上到下依次是,G(GND)、D(Data,数据)、C(Clock,时钟)、V(Vcc)。有两种,...
- Linux 技巧:重定向 stderr 和 stdout 输出到 gdb 窗口
-
简介本文介绍了一个实用gdb调试技巧。它结合实际例子,一步一步示意如何重定向stderr和stdout到gdb窗口,使得查看应用程序的输出信息更为方便,从而提高调试者的工作效率。问题为...
- CLion 1.0发布,C/C++跨平台集成开发环境
-
日前,知名开发者工具厂商JetBrains(捷克的一家软件开发公司)正式发布了一款跨平台的C/C++集成开发环境CLion1.0。这款强大的IDE旨在让你基于Linux、OSX、Windows系...
- 「运维经」第25章——gdb最实用的那几条命令
-
实用调试操作1setscheduler-lockingoff|on...
- XV6操作系统入门系列-02-详解启动过程
-
第零步-心理上的准备工作任何事物都有其关键的窍门,当我们抓住了关键,事情会变得简单起来;当我们没有抓住要领,事情就会变得异常困难。...
- GDB德国格德宝|OEM|奔驰车厂认证(德宝格机械)
-
MBMercedes油规格MB规范的名称源自奔驰蓝皮书计划,除以编号的段落和页面。经销商使用它来识别制造商认证的产品及其在发动机上的正确应用。...
- o1已不是聊天模型了!SpaceX前工程师公开全新使用秘籍
-
梦晨发自凹非寺量子位|公众号QbitAI苹果&SpaceX前工程师分享o1使用心得,奥特曼、Brockman都转发了。...
- ARM平台如何玩转GDB远程调试?(arm gdbserver)
-
前言关于GDB工具GDB工具是GNU项目调试器,基于命令行使用。和其他的调试器一样,可使用GDB工具单步运行程序、单步执行、跳入/跳出函数、设置断点、查看变量等等,它是UNIX/LINUX操作系统下...
- GDB高级技巧:边Debug边修复BUG,无需修改代码,无需重新编译
-
友情提醒:本文介绍的调试技巧非常实用,但为了讲解清楚,篇幅较长,请耐心看完,我保证你定会有收获!引言程序调试时,你是否遇到过下面几种情况:1、经过定位,终于找到了程序中的一个BUG,满心欢喜地以为找到...
- 实现多态必须满足什么条件(实现多态的两种方式)
-
虚函数机制virtualmechanism先看代码:classA{public:virtualvoidprint(){cout<<"A.."<<endl;}...
- gdb查看寄存器及内存数据与函数调用栈分析
-
在分析kdump生成的vmcore文件时,有时会需要分析函数调用栈及函数参数与局部变量的情况,这里以使用gdb为例调试分析一下函数调用的栈帧创建与销毁。操作系统:centos73.10.0-862...
- C++语言求数组元素最大值及其下标例程(指针学习与运用)
-
C++语言编写求数组元素最大值及其下标例程(指针学习与运用)文章logo#include"stdafx.h"...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- wireshark怎么抓包 (75)
- qt sleep (64)
- cs1.6指令代码大全 (55)
- factory-method (60)
- sqlite3_bind_blob (52)
- hibernate update (63)
- c++ base64 (70)
- nc 命令 (52)
- wm_close (51)
- epollin (51)
- sqlca.sqlcode (57)
- lua ipairs (60)
- tv_usec (64)
- 命令行进入文件夹 (53)
- postgresql array (57)
- statfs函数 (57)
- .project文件 (54)
- lua require (56)
- for_each (67)
- c#工厂模式 (57)
- wxsqlite3 (66)
- dmesg -c (58)
- fopen参数 (53)
- tar -zxvf -c (55)
- 速递查询 (52)