Ubuntu 9.10grub硬盘引导 Ubuntu 9.10 的windows xp下正确menu.lst 写法(千万不要照搬9.04)
http://hi.baidu.com/syb1988013/blog/item/793c888ded217a18b31bbac5.html
Winxp3 + ubuntu8.04 双系统启动问题
http://www.ownlinux.cn/2008/05/13/ubuntu-804-wubi-initranfs/
笔者在装好一些软件的时候,系统提示需要重启才能生效,结果开机的时候,ubuntu系统提示说:
Busybox v1.1.3 (debian1:1.1.3-5 ubuntu12)built-in shell (ash)
enter ‘help’for a list of built-in commands
(initranfs)
这是怎么回事了,笔者也没弄明白,进终端也不行,同样的错误,该怎么办了,难道只有重装,笔者也没办法了,难道配好的系统就这样完了,苦心经营那么 久了,在ubuntu下速度真的是不敢恭维,时间就是这样浪费了?就没有一个可以解决的方案?笔者坚信肯定有,笔者并没有死心,想了很久,也听了一些人的 建议,终于找到了一个方案,下面我就来说说我的解决方案吧。
先说说笔者的环境吧,我是用wubi安装的ubuntu8.04,前面我有写过有关wubi安装的文章,如果还不知道wubi安装的可以去看看《用wubi安装 ubuntu 8.04 只需五步》 , 不过解决这个问题只适合wubi安装的朋友,双系统的可以参照网上的解决方案(WindowsXP+Ubuntu,进去windowsxp系统,把 boot里面的initrd.img-2.6.24-12-generic.bak重命名替换initrd.img-2.6.24-12- generic,这个方法是否可行,笔者没有考证过,笔者的环境不同吗)
好了,进入正题,首先我们开启xp,进入安装ubuntu8.04的盘,笔者的安装在H盘,我们进入H:\ubuntu\disks目录找到我们所需要备份的*.disk 即(swap.disk home.disk usr.disk root.disk)如图:
将这几个文件复制到其他任意盘中,备份完后,我们就要开始用wubi重装ubuntu了,运行wubi.exe,会出现卸载的界面,如图:
我们肯定要把下载的文件备份了,不要把上面的勾去掉,这样等下我们装系统就要快些。
接着点击移除,等卸载完后,就要重复我们的wubi安装了,这就不多说了。
装完后,我们找到刚才备份的那几个*.disk文件,复制到我们的安装目录disks文件夹下,点击全部覆盖,(当然在做这一步之前我们可以在备份 我们刚才装好的系统的几个.*disk文件,以免出错而又要重装,这只是为了安全起见,对于胆小的朋友来说,这一步最好不要省),然后重启看看,可爱的 ubuntu界面是不是又回来了啊,以前的配置都还在吧!祝贺一下!如果以后我们的系统又出了什么问题,我们同样可以用这几个文件将原来的文件覆盖,就像 windows里面的一键还原,爽吧,呵呵!
本文是由OwnLinux.cn 原创团队成员silencer 撰写
http://forum.ubuntu.org.cn/viewtopic.php?t=120157&highlight=busybox
Busybox v1.1.3 (debian1:1.1.3-5 ubuntu12)built-in shell (ash) enter 'help'for a list of built-in commands(initranfs)
在网上找了很多资料终于找到了解决方法:
先说说我的情况,我的是双系统,WindowsXP+Ubuntu,所以我进去windowsxp系统
把boot里面的initrd.img-2.6.24-12-generic.bak重命名替换initrd.img-2.6.24-12-generic
http://www.ibm.com/developerworks/cn/linux/l-busybox/
developerWorks 中国 > Linux > BusyBox 简化嵌入式 Linux 系统为小环境准备的一个小工具包 |
级别: 初级 M. Tim Jones ([email protected] ), 咨询工程师, Emulex 2006 年 9 月 11 日 BusyBox 是很多标准 Linux® 工具的一个单个可执行实现。BusyBox 包含了一些简单的工具,例如 cat 和 echo,还包含了一些更大、更复杂的工具,例如 grep、find、mount 以及 telnet(不过它的选项比传统的版本要少);有些人将 BusyBox 称为 Linux 工具里的瑞士军刀。本文将探索 BusyBox 的目标,它是如何工作的,以及为什么它对于内存有限的环境来说是如此重要。<!----><!----> <!----> BusyBox 最初是由 Bruce Perens 在 1996 年为 Debian GNU/Linux 安装盘编写的。其目标是在一张软盘上创建一个可引导的 GNU/Linux 系统,这可以用作安装盘和急救盘。一张软盘可以保存大约 1.4-1.7MB 的内容,因此这里没有多少空间留给 Linux 内核以及相关的用户应用程序使用。
BusyBox 揭露了这样一个事实:很多标准 Linux 工具都可以共享很多共同的元素。例如,很多基于文件的工具(比如 为了让一个可执行程序看起来就像是很多可执行程序一样,BusyBox 为传递给 C 的 main 函数的参数开发了一个很少使用的特性。回想一下 C 语言的 main 函数的定义如下:
清单 1. C 的 main 函数
在这个定义中, 清单 2 给出的这个简单 C 程序展示了 BusyBox 的调用。它只简单地打印 清单 2. BusyBox 使用 argv[0] 来确定调用哪个应用程序
调用这个程序会显示所调用的第一个参数是该程序的名字。我们可以对这个可执行程序重新进行命名,此时再调用就会得到该程序的新名字。另外,我们可以创建一个到可执行程序的符号链接,在执行这个符号链接时,就可以看到这个符号链接的名字。 清单 3. 在使用新命令更新 BusyBox 之后的命令测试
BusyBox 使用了符号链接以便使一个可执行程序看起来像很多程序一样。对于 BusyBox 中包含的每个工具来说,都会这样创建一个符号链接,这样就可以使用这些符号链接来调用 BusyBox 了。BusyBox 然后可以通过
我们可以从 BusyBox 的 Web 站点上下载最新版本的 BusyBox(请参看 参考资料 一节的内容)。与大部分开放源码程序一样,它是以一个压缩的 tarball 形式发布的,我们可以使用清单 4 给出的命令将其转换成源代码树。(如果我们下载的版本不是 1.1.1,那就请在这个命令中使用适当的版本号以及特定于这个版本号的命令。) 清单 4. 展开 BusyBox
结果会生成一个目录,名为 busybox-1.1.1,其中包含了 BusyBox 的源代码。要编译默认的配置(其中包含了几乎所有的内容,并禁用了调试功能),请使用
清单 5. 编译默认的 BusyBox 配置
结果是一个相当大的 BusyBox 映像,不过这只是开始使用它的最简单的方法。我们可以直接调用这个新映像,这会产生一个简单的 Help 页面,里面包括当前配置的命令。要对这个映像进行测试,我们也可以对一个命令调用 BusyBox 来执行,如清单 6 所示。 清单 6. 展示 BusyBox 命令的执行和 BusyBox 中的 ash shell
在这个例子中,我们调用了
如果您正在构建一个具有特殊需求的嵌入式设备,那就可以手工使用 使用手工配置,我们可以指定在最终的 BusyBox 映像中包含的命令。我们也可以对 BusyBox 环境进行配置,例如包括对 NSA(美国国家安全代理)的安全增强 Linux(SELinux),指定要使用的编译器(用来在嵌入式环境中进行交叉编译)以及 BusyBox 应该静态编译还是动态编译。图 1 给出了 图 1. 使用 menuconfig 配置 BusyBox
要手工配置 BusyBox,请使用下面的命令: 清单 7. 手工配置 BusyBox
这为我们提供了可以调用的 BusyBox 的二进制文件。下一个步骤是围绕 BusyBox 构建一个环境,包括将标准 Linux 命令重定向到 BusyBox 二进制文件的符号链接。我们可以使用下面的命令简单地完成这个过程: 清单 8. 构建 BusyBox 环境
默认情况下,这会创建一个新的本地子目录 _install,其中包含了基本的 Linux 环境。在这个根目录中,您会找到一个链接到 BusyBox 的 清单 9. 将符号链接安装到另外一个目录中
使用 到 BusyBox 的命令行链接也可以使用 BusyBox 在运行时动态创建。 清单 10. 在运行时创建命令链接
BusyBox 包括了几个编译选项,可以帮助为我们编译和调试正确的 BusyBox。 表 1. 为 BusyBox 提供的几个 make 选项
在定义配置时,我们只需要输入 清单 11. 编译 BusyBox 二进制程序
如果您非常关心对 BusyBox 映像的压缩,就需要记住两件事情:
BusyBox 中的命令并不支持所有可用选项,不过这些命令都包含了常用的选项。如果我们需要知道一个命令可以支持哪些选项,可以使用 清单 12. 使用 --help 选项调用命令
这些特定的数据只有在启用了
向 BusyBox 添加一个新命令非常简单,这是因为它具有良好定义的体系结构。第一个步骤是为新命令的源代码选择一个位置。我们要根据命令的类型(网络,shell 等)来选择位置,并与其他命令保持一致。这一点非常重要,因为这个新命令最终会在 menuconfig 的配置菜单中出现(在下面的例子中,是 Miscellaneous Utilities 菜单)。 对于这个例子来说,我将这个新命令称为 清单 13. 集成到 BusyBox 中的新命令的源代码
接下来,我们要将这个新命令的源代码添加到所选子目录中的 清单 14. 将命令添加到 Makefile.in 中
接下来再次更新 ./miscutils 目录中的配置文件,以便让新命令在配置过程中是可见的。这个文件名为 Config.in,新命令是按照字母顺序添加的: 清单 15. 将命令添加到 Config.in 中
这个结构定义了一个新配置项(通过 接下来需要更新 ./include/applets.h 文件,使其包含这个新命令。将下面这行内容添加到这个文件中,记住要按照字母顺序。维护这个次序非常重要,否则我们的命令就会找不到。 清单 16. 将命令添加到 applets.h 中
这定义了命令名( 倒数第二个步骤是向 ./include/usage.h 文件中添加详细的帮助信息。正如您可以从这个文件的例子中看到的一样,使用信息可能非常详细。在本例中,我只添加了一点信息,这样就可以编译这个新命令了: 清单 17. 向 usage.h 添加帮助信息
最后一个步骤是启用新命令(通过 使用新的 BusyBox,我们可以对这个新命令进行测试,如清单 18 所示。 清单 18. 测试新命令
就是这样!BusyBox 开发人员开发了一个优秀但非常容易扩展的工具。
BusyBox 是为构建内存有限的嵌入式系统和基于软盘系统的一个优秀工具。BusyBox 通过将很多必需的工具放入一个可执行程序,并让它们可以共享代码中相同的部分,从而对它们的大小进行了很大程度的缩减,BusyBox 对于嵌入式系统来说是一个非常有用的工具,因此值得我们花一些时间进行探索。 学习
获得产品和技术
讨论
end |