把操作系统(Linux)运行在内存上


0. 写在前面

笔者把Linux装在了USB3.0的U盘上。但运行速度还是很慢。于是想更改Linux的Boot Loader,让它在每次启动时,把整个操作系统加载到内存。这样Linux的运行速度将有极大的提升。()此外,为了保存系统更改,作者把U盘上的一个分区挂载到/home位置。这样用户的数据(音乐、文档、应用程序等)就会在关机后得到保存。但是,系统数据(安装的Package,设置等)在重启后还是会被还原,文末给出了一个解决办法。

本文章翻译自:Making Ubuntu Fast using RAM (Updated and Simplified)Making Ubuntu Insanely Fast using RAM 。笔者适当地修改了原文的流程,并增添了一些终端命令的解释,使之更适合大陆用户和Linux初学者。

谨向原文作者terminator14和GNU开源社区的贡献者们致敬。

1. 适用人群

觉得Linux运行较慢,电脑内存较大(最少2G,推荐4G或更多),爱折腾的同学。

2. 总体流程

a. 将系统文件拷贝到临时文件夹;

b. 将临时文件夹中的文件制作成内存可载入的映像;

c. 更改Boot Loader,新增启动项,并将其指向我们制作的映像;

d. 重启,享受飞一般的感觉(insanely fast)。

3. 操作步骤

3.1 原料

一份Linux内核的操作系统。文章以Ubuntu 14.04为例,其他发行版本与之类似。

注:Linux是一些操作系统的内核(Kernel)。Linux是开源的(免费且公开),很多发行商将Linux打包,并添加了自己开发的系统程序和图形界面(GUI),于是便有了各种不同的发行版本(Distribution)。常见的发行版本有Ubuntu,Red Hat,Debian,CentOS等,但他们的内核都是Linux。

举个例子:Android的内核是开源的,很多手机厂商(如三星,HTC)把Android的内核做修改优化,添加了自己的系统程序和图形界面封装成ROM,或继续开发硬件,制作成手机发售。但他们本质上都是Android机。

这里,Android内核就相当于Linux,而三星,HTC发行的ROM就相当于Ubuntu,Red Hat

3.2检查磁盘容量

在Ubuntu命令行中输入:

sudo du -hcs --one-file-system / --exclude=/dev/* --exclude=/tmp/* \
             --exclude=/sys/* --exclude=/proc/* --exclude=/home/*

显示我们将需要的磁盘容量。由于我们之后要使用复制后的临时文件压缩成映像文件,所以请确保磁盘上至少有一半以上的未使用空间。

一般来说,1.5G的临时文件会生成500M的映像文件。所以如果你的临时文件是1.5G的话,请确认你的内存要大于500M,为了操作系统能更平稳流畅的运行,建议内存为2G或更多。

命令解释:

sudo: superuser do. 在Linux中,有一些系统关键指令只能由拥有最高权限的超级用户(superuser)来执行,sudo就是暂时将当前用户的权限提升成超级用户,执行完毕后再转换回当前用户。

du:

-hcs

–one-file-system

/:转义字符(escape)。将回车转义掉,把下一行命令和当前行合并。

–exclude:不包含后面的文件夹。在本命令中,我们不计算/proc, /sys的文件夹大小。因为他们是操作系统虚拟出来的文件夹,实际文件存放在内存中。

3.2 安装必要的软件包

 

http://ubuntuforums.org/showthread.php?t=1594694

 

未完待续

Leave a comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.