百度空间 | 百度首页 
               
 
查看文章
 
打造适合eeepc的debian gnu/linux系统(一)
2008-01-18 21:33
摘要:采用asus的linux内核及模块在eeepc上成功安装了debian gnu/linux操作系统,采用unionfs和tmpfs文件系统实现了与linux livecd类似的只读根文件系统,减少了对ssd硬盘的写操作。本方案稍加修改也适合其它的linux发行版,其思路也可用于对采用ssd硬盘的嵌入式linux操作系统的优化过程。


买了eeepc几天了,宝贝的新鲜劲也过去了,好了,让我老人家上手吧。唉,粉色的eeepc啊,那个小巧的小键盘正适合宝贝的小手,我这个粗手大脚的大老爷们到现在还在努力适应这个女性化外壳下的女性化小键盘呢。

eeepc上默认安装的是asus的linux系统,首先看看asuseeepc上的linux操作系统做了哪些调整。

简单地看了并上网查了一下,发现asuseeepc中安装的linux操作系统是一个基于debian的版本。哥哥我对debian当然是轻车熟路了,又看了一下系统的内核、模块还有initrd文件,发现asus编译的内核和模块功能很全,initrd中的init文件也写得很简单,ssd硬盘被分为2个区(sda1sda2),其中sda1只读的,采用ext2文件系统,而sda2是可写的,采用ext3文件系统,并且采用unionfs文件系统把sda1sda2挂在了一起——真是英雄所见略同啊,先前看到说明书中有对硬盘快速复原功能的详细介绍,我就估计asus可能是采用unionfs实现的,因为只有eeepcssd硬盘容量只有4GB,应该不会IBM的小黑一样弄一个隐藏分区。估计也是为了避免对ssd硬盘进行频繁写的写操作,asus没有为linux系统配置swap分区。

eeepclinux操作系统确实很好用,可是对于我来说功能太少了——常用的emacs、各种编译器等等都没有。在网上看到台湾那边有人把eeepc的操作系统限制破解了,然后用debianubuntuapt源升级。想法不错,可非得干嘛用asus的那个界面不可啊,限制那么多,多没劲啊,干脆自己装一个debian吧(ubuntu没用过,据说也是基于debian的,原理应该一样。)在网上看到还有人直接装在eeepc上装ubuntu了,那装debian肯定也没问题了。debian官方的用户讨论区中也有人把debian装在eeepc上了,但只是普通的安装。我在网上看到了有关eeepcssd硬盘的帖子(google或baidu之),感觉ssd硬盘也太娇贵了,普通安装的debian会不会由于频繁的磁盘IO操作缩短ssd硬盘的寿命?有点怕怕。

安装debian是需要网络支持的,于是看了看eeepc的网卡信息,又在debian的安装程序包中找了一下,发现eeepc的网卡很少见,连几乎各种网卡驱动都有的debian标准内核模块中都没有eeepc网卡的驱动(atl2),看来安装还是要稍微麻烦点。

思来想去,定下了这么一个方案:

debian的安装(pxe方式)和使用过程中,都采用asuslinux内核及模块,这样网卡包括无线网卡的驱动程序、acpi的驱动程序等等都不会有问题(asus也提供了这些驱动的源代码,自己编译也行,我嫌麻烦,哈哈,不是说用debian的都是懒人嘛,再说asus的内核和模块的功能可是相当完全的,也没必要自己编译了);

采用unionfs + tmpfs文件系统,使ssd硬盘平时应用中是只读的,只有在安装和维护升级系统时才是可写的,用户数据都保存在SD卡上(现在2GSD卡才RMB100多一点,很便宜),ssdSD卡上的文件系统都采用ext2(与ext3等日志式文件系统相比写入操作能少一些),即平时采用类似于linux livecd的只读模式启动eeepc进入debian,临时数据都保存在tmpfs中,有用的数据保存在SD卡上,系统维护和升级时以正常模式启动eeepc进入debian;

debian的配置文件做尽量少的改动,使之适合eeepc

在这个方案中,需要3initrd文件,其中:

第一个用于启动安装程序;

第二个用于安装好的系统,其作用是将整个根文件系统挂载成只读的,然后用unionfs将只读的根文件系统与一个tmpfs文件系统合成一个可写的根文件系统,只是写入的数据都保存在tmpfs中,重启后就没有了;

第三个也用于安装好的系统,其作用是将根文件系统挂载成正常的可读写的文件系统,但系统中几个经常被写入数据的目录被挂载成tmpfs文件系统,以减少对ssd硬盘的写操作;

安装好的系统还有一个single模式,其功能和通常的debian single模式一样,用于系统恢复等异常情况。当然,single就不需要initrd文件了。

为了减少对ssd硬盘的写操作,我们也不要swap分区了。没有swap分区,uswsusp肯定是不能用了,可惜了,不过eeepc的启动速度很快,也算可以弥补这个缺陷。

2点说明:

1 所谓的initrd文件,其作用是通过建立一个内存文件系统,在整个系统的启动过程中插一脚,为系统的启动带来更多选择性和便利性,比如加载一些模块,更改一些设置等等。当然,如果你的内核中包括了能启动系统的所有必需的功能,而且你又不需要在启动过程中做什么手脚,那么不用initrd文件也是可以的(single模式中就没有采用initrd文件)。

2 unionfs和tmpfs可是好东东啊,google或baidu一下吧。简单说,unionfs可将多个不同的文件系统合成一个文件系统,读写顺序自然随你了,而tmpfs是内存中的临时文件系统,其作用就是为了减少对磁盘的IO操作——windows下哪有这么好的免费的开放源代码的东东啊,还不快用linux?


类别:Eeepc | 添加到搜藏 | 浏览() | 评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu